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.