optimización so gnu/linux con cache squid
Publicado por Carlos García en miércoles, diciembre 14, 2011
En este articulo vamos a tratar las configuraciones avanzadas del servidor gnu/linux usando la herramienta squid. Utilizaremos las tecnicas para aumentar la performance tanto del sistema operativo, lectura en el disco y configuraciones avanzadas de herramientas
Utilizaremos las siguientes herramientas disponibles para descargar:
[color=red][url=http://cdimage.debian.org/debian-cd/6.0.2.1/amd64/iso-cd/debian-6.0.2.1-amd64-netinst.iso]Debian 6 64 bits (Recomendado)[/url][/color][b][/b]
Obs.: Se puede utilizar cualquier distribución tales como Fedora, Ubuntu etc.
[url=http://www.squid-cache.org/Versions/v3/3.1/squid-3.1.14.tar.gz][b]Squid 3.1[/b][color=red][/color]
[/url]
[b]Preparando el servidor:[/b][color=red][size=18][/size][/color]
Se recomienda la instalacion del build-essential para Linux una vez para compilar el squid 3.1 vamos a necesitar de esa herramienta.
[b]Actualizamos el apt-get:[/b][color=red][/color]
[b]en la consola escribimos:[/b]
# apt-get update
Instale los compiladores:
# apt-get install build-essential
[b]Instalando el Squid[/b][color=red][size=18][/size][/color]
[b]Descargamos el squid:[/b][color=blue][/color]
# wget http://www.squid-cache.org/Versions/v3/3.1/squid-3.1.14.tar.gz
Descompactamos el archivo:
# tar -xvzf squid-3.1.14.tar.gz
# cd /squid-3.1.14.tar.gz
Ahora iremos a compilar el squid, aqui comienza las sugerencias de optimización. Compilamos el squid con los ficheros descriptores, el estandar es de 1024. Para una empresa que posee una gran demanda de acesso a internet, ese valor llega ser bajo y muchas veces donde se encuentra el cuello de botella del sistema
Vamos a compilar usando 16000 filedescriptors:
# ./configure --bindir=/bin --sbindir=/sbin --sysconfdir=/etc/squid --enable-underscores --enable-storeio="diskd ufs aufs" --enable-removal-policies="heap lru" --enable-snmp --enable-delay-pools --enable-linux-netfilter --enable-useragent-log --enable-referer-log --disable-dependency-tracking --enable-cachemgr-hostname=localhost --enable-truncate --disable-ident-lookups --enable-pool --with-maxfd=16000
[b]Despues escriba:[/b]
# make
# make install
Squid Instalado.
[b]Optimizaciones y acceso a discos[/b][color=blue][size=18][/size][/color]
Despues de muchas investigaciones se descubrio que el acceso al cache cuando es utilizado o reiserfs llega a ser 20% más rapido que otros filesystem, por ejemplo ext3, ext2.
Se aconseja a todos que cuando efectuen la instalación del SO dejen una partición solamente para el cache, eso agiliza la lectura d elos datos
Supon que cuando estas instalando Debia creo la partición "/cache" vamos a instalar el reiserfs y formatear la unidad con la herramienta.
# apt-get install reiserfsprogs
Depues de tener instalado el reiserfs vamos a formatear la unidad "/cache" que para mi es "/dev/sda5":
# mkfs.reiserfs /dev/sda5
Hecho esto ya tenemos "/cache" con reiserfs trabajando.
Otro consejos para montar el filesystem "/cache" añadir notail, noatime (eso agiliza mucho a la hora de lectura y escritura una vez que el squid tenga su propio tiempo, usando estas funciones usted evita que el sistema al guardar un archivo lo haga 2 veces).
Entre al directorio "/etc/fstab" y agregue:
/dev/sda5 /cache reiserfs defaults,notail,noatime 1 2
[b]Optimización del SO[/b][color=red][size=18][/size][/color]
Vamos a ir mostrando como optimizar el sistema para que el mismo acepte que varias conexiones sean realizadas en varios archivos utilizando los file descriptors. Muchas personas que instalan el squid terminan pasando por ese problema, el sistema bloque para que el maximo 1024 instancias de archivos sean abiertas.
Para comprobar cuántos archivos pueden ser abiertos por el sistema operativo, sólo tienes que escribir en la consola:
# ulimit -n
# ulimit -a
Vamos a comenzar con la optimización:
acceda a "/etc/sysctl.conf", y agregue la siguiente linea:
fs.file-max = 65535
Despues escribimos en la consola:
# sysctl -p
Despues accedemos en "/etc/security/limits.conf", adicionamos las siguientes linas al final del archivo;
root soft nofile 16384
root hard nofile 32768
* soft nofile 16384
* hard nofile 32768
Mucha gente pregunta que despues de hacer esas modificaciones el sistema aplica las configuraciones, pero una vez que le damos reboot al SO el limite vuele para 1024. Para resolver ese problema solo agregamos la siguiente linea de comando en"/etc/pam.d/common-account":
session required pam_limits.so
Hecho esto cuando el sistema operativo inicia el cambio sera puesto a punto"startado" y todo el sistema estará optimizado para recibir las solicitudes.
[b]Finalizando la verificación de las optimizaciones[/b][color=blue][size=18][/size][/color]
Al final de estas guias vamos a confirmar si el sistema arranco con todas las optimizaciones y si el servidor esta listo para recibir altas tasas de conexiones simultaneas.
En primer lugar vamos a la consola y vemos lo siguiente:
# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 16382
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 16384
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) unlimited
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
Vemos que el SO ahora está permitieneo que 16384 archivos sean abiertos a lo que anteriormente solo eran 1024.
Despues en el archivo "cache.log" del squid:
# cat cache.log
2011/07/11 14:19:08| Starting Squid Cache version 3.1.14 for x86_64-unknown-linux-gnu...
2011/07/11 14:19:08| Process ID 31325
2011/07/11 14:19:08| With 16000 file descriptors available
Meu próximo artigo será otimização do arquivo "squid.conf".
Espero que le pueda a ayudar a mas de uno este articulo aclarando que el articulo fue una copilación de algunas páginas tube que traducir parte de la guia asi que mis disculpas correspondiente si hubo alguna equivocación en la traducción del documento.
Imprimir
Suscribirse a:
Enviar comentarios (Atom)
0 comentarios:
Publicar un comentario