viernes, 1 de julio de 2011

Optimiza tu servidor proxy creando un ramdisk! acelera las consultas al cache

Por cada petición de página web que realizan los clientes al servidor proxy, éste tiene que buscar en el disco duro a ver si tiene el contenido de la página y leerlo para enviarlo al cliente.

Cuando aumenta el número de consultas, el acceso al disco se dispara creando un cuello de botella entre la velocidad de procesamiento del servidor y la capacidad de lectura del disco.

La solución más óptima es eliminar ese cuello de botella y crear un disco duro virtual en la memoria ram y colocar allí la cache del proxy. De esta manera las páginas se incrementará la velocidad de respuesta del servidor y no se degradará tan rápido el disco duro del servidor.

La recomendación es tener al menos 16 GB de memoria RAM para poner a trabajar el servidor proxy con ramdisk. Considerando que squid consume gran parte de la memoria RAM del servidor, con 16GB es posible utilizar 8GB para el ramdisk y el resto para la operatividad del servidor.

Para realizar esta optimización debes seguir los siguientes pasos:

1. Creación del ramdisk
Se crea la carpeta donde vamos a apuntar ese disco duro virtual que puede ser en /cache y luego se procede a reasignar el espacio de memoria RAM a esa carpeta

En la terminal en modo superusuario se ejecutan los siguientes comandos:

#mkdir /cache
#mount -t tmpfs -o size=8G tmpfs /cache/

2. Modificación de las opciones del squid.conf

Y se modifican las opciones en el archivo de configuración squid.conf


################## squid.conf #################################
cache_log /cache/var/log/squid/cache.log
access_log /cache/var/log/squid/access.log
cache_store_log /cache/var/log/squid/store.log
cache_swap_log /cache/var/log/squid/swap.log

cache_dir ufs /cache 7500 16 256
coredump_dir /cache

###############################################################

No olvide crear las rutas para los logs dentro del directorio /cache y asignarle los permisos respectivos

mkdir /cache/var/log/squid

3. Creación de la estructura de directorios de cache y puesta en marcha

Para crear la estructura de directorios de la cache se invoca al squid con la opción -z. Debe estar detenido el servicio para ejecutar este comando.

Ejemplo:
/opt/squid/sbin/squid -z

Por último iniciamos el servicio de squid y ya queda lista la optimización
/opt/squid/sbin/squid

La única desventaja de este tipo de discos es que al momento de reiniciar el servidor se borra toda la cache y la estructura de directorios que tenemos creada, es por ello que se debe crear un script que al iniciar el servidor cree el ramdisk y la estructura de directorios.

En próximos post explicaré como crear este script de inicio.