optimizar el servidor proxy

Optimizar el servidor Proxy

Hasta ahora todo muy bien, nuestro servidor Proxy responde perfecto a una red menor a 50 usuarios. Sin embargo, la red de datos se nos puede crecer, los servicios aumentar y el servidor podría flaquear. De manera que para soportar el crecimiento de equipos y servicios se debe optimizar el servidor Proxy. Básicamente se trata de aumentar el valor de un parámetro llamado File Descriptor.

Un File Descriptor no es más que un número que representa un archivo o un socket. Cada vez que un proceso abre un archivo o un socket, se asigna un nuevo File Descriptor. En general, un File Descriptor puede ser un una conexión TCP, un archivo abierto o sockets de comunicaciones entre procesos. Por ejemplo, una conexión con un cliente requiere tres Files Descriptors: uno para la conexión, otro para la escritura de logs y otro para la lectura de configuración.

 

Puede ampliar más sobre File Descriptor, aquí

 

Optimización técnica del servidor Proxy


Para aumentar el número de File Descriptors en el sistema operativo, debemos realizar los siguientes pasos:

 

A. Verificar como usuario normal la configuración del número de Files Descriptors

_$ ulimit -a | grep ‘open files’

Generalmente da como salida 1024

 

B. Agregar las siguientes líneas en /etc/security/limits.conf

* soft nofile 8192
* hard nofile 8192

 

C. Luego, adicionamos la siguiente linea en el archivo /etc/pam.d/common-session

session required pam_limits.so

 

D. Aplicar el cambio:

_$ sysctl -p

 

Una vez aplicados los pasos anteriores debemos cerrar sesión, volver a entrar y verificar de otra vez el nuevo límite:

_$ ulimit -a | grep ‘open files’

 

E. El comando anterior debe mostrar el número 8192. Luego, se debemos adicionar la siguiente directiva en el archivo de configuración de Squid:

max_filedesc 8192

Normalmente el número de File Descriptors por default en el sistema operativo es de 1024, y con ese número el Squid trabaja bien con 40 clientes (relación de 25). De manera que optimizar el servidor Proxy para que soporte más de 300 clientes, es aumentar el número de File Descriptors a un valor mayor de 7500. De ahí que se haya configurado un tope de 8192.

 

Opciones adicionales para optimizar el servidor Proxy


Continuando con los ajustes para optimizar el servidor Proxy, podemos adicionar las siguientes líneas al /etc/sysctl.conf del sistema operativo:

net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_max_syn_backlog = 4096

 

Aplicamos:

_# sysctl -p

 

Agregamos las siguienest líneas al squid.conf:

maximum_object_size 512 KB
maximum_object_size_in_memory 256 KB

 

Si el servidor cuenta con una cantidad generosa de memoria RAM, digamos, 20 GB, podemos configurar

maximum_object_size_in_memory en 64 MB

 

Limpieza de la caché y rotación de logs para Squid Proxy


Una actividad periódica que suele exigir esta solución, es su mantenimiento, es decir, limpieza de logs y reconstrucción de la caché. Entonces, podemos emplear un par de scripts sencillos para esas dos labores.

Llamaremos al de la reconstrucción de la caché «cache_squid.sh» y al encargado de la rotación de logs «rotalog_squid.sh«. Ambos con permiso de ejecución

El primer archivo contiene la siguiente secuencia de comandos:

#!/bin/bash
#
#
#
#
echo "Parando Squid"
/opt/squid/sbin/squid -k interrupt
echo "Borrando cache de Squid"
rm -rf /opt/squid/var/cache/squid/*
echo "cache borrada"
sleep 1
echo "Iniciando la cache de Squid"
/opt/squid/sbin/squid -f /etc/squid/squid.conf -z
sleep 1
/opt/squid/sbin/squid &
echo "Squid iniciado"
exit 0

 

El segundo armalo con esta secuencia de comandos:

#!/bin/bash
#
#
#
#
echo "Rotando logs de Squid"
/opt/squid/sbin/squid -k rotate
sleep 1
echo "Logs rotados"
sleep 1

exit 0

 

Puede colocarlos en el directorio /root/ y programarlos con crontab para que se ejecuten todos los domingos a las 4 y 4:30 PM

00 16 * * 7 root /root/cache_squid.sh
30 16 * * 7 root /root/rotalog_squid.sh

Squid con Máxima Prioridad


Podemos decirle al kernel que nos ejecute  a Squid Proxy con la mayor prioridad posible en el planificador de tareas. Solo basta con iniciar Squid con el comando nice, así:

Hasta aquí podemos decir que tenemos ya un servidor Proxy funcional, algo básico para una red de no más 50 equipos de cómputo. A partir de la siguiente entrega verémos configuraciones un poco más avanzadas para redes más grandes.

En la siguiente parte de este tutorial vamos a ampliar la optimización de este servidor, afinando el tratamiento de paquetes a nivel de kernel.

 

< Quinta Parte   Séptima Parte >

 

 

Comparte esto en
Publicado en Servidor Proxy.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *