El servidor de alumnos tiene una carga alta de procesamiento, entre consultas LDAP, IMAP, SMTP y HTTP. A partir de un problema ocurrido con rebotes de mensajes, me dediqué a leer un poco más de documentación y descubrí algunos comandos y opciones útiles para el desempeño y administración de los servicios.
Cambios en postfix
Postfix puede dar prioridad al envío a ciertos dominios, los cuales se efectúan con los parámetros fast_flush. Para ver los valores actuales:
# postconf | grep fast_flush
Por el momento he redefinido flash_flush_domains, indicándole cuales son todos los dominios locales (para los cuales siempre hay buen acceso).
Con postsuper es posible comunicarse con las colas de postfix. Me resultó bastante útil ver con mailq una cantidad enorme de correos sin poder entregarse por diversos motivos a sitios de spammers. Lo que hice, fue agregarlos a la lista de correos a rechazar para evitarlos en el futuro.
Pero lo que deseaba es que rechazar todos esos mensajes. Una alternativa es borrarlos de la cola con:
# postsuper -d id
donde id se obtiene con mailq. Otra alternativa es que postfix reprocese toda la cola, lo cual sirve para verificar los filtros:
# postsuper -r ALL
Algunos enlaces de interés
-
El manual del administrador de la cola es útil para conocer las estrategias de postfix respecto al curso de los mensajes.
-
Afinamiento de los parámetros en /proc/sys/net. Aún no lo he probado, pero puede ser útil no sólo para SMTP.
Cambios en cyrus imapd
En cyrus sólo he modicado la cantidad de procesos que se deben iniciar. En /etc/cyrus.conf
SERVICES {
imap cmd="imapd" listen="imap" prefork=50
...
}
Cambios en Apache
Los cambios efectuado en /etc/apache/httpd.conf principalmente son:
MaxKeepAliveRequests 100
KeepAliveTimeout 60
MinSpareServers 20
MaxSpareServers 40
StartServers 20
MaxClients 150
MaxRequestsPerChild 300
También es necesario evitar cargar módulos innecesarios. No mejorará en velocidad, pero cada proceso apache requerirá menos memoria, lo cual es importante si se lanzarán muchos procesos.
Cambios en PHP
En /etc/php/apache/php.ini
output_handler = ob_gzhlandler
Lo cual comprimirá con gzip la salida, ahorrando ancho de banda. Esto debiera mejorar el rendimiento para los usuarios que usan módems tradicionales.
Además, instale el paquete php4-apc, el cual es un caché de páginas PHP.
Luego explicaré con mayor detalle... tengo que irme :-)