Sobrecarga en sistemas plesk por culpa del correo

En ocasiones en algunas versiones de plesk LINUX a partir de la 8.0.1 nos encontramos con maquinas con la siguiente problematica:

1. La carga sube sin causa aparente hasta niveles muy exagerados llegando a colapsar el sistema. Se utiliza el 100% de la CPU. Se llega a mediciones de “load average” superiores a 100
2.- En el análisis del maillog se detectan muchos procesos “relaylock”
3.- Observamos procesos com el siguiente:

/var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth /var/qmail/bin/true /var/qmail/Bin/cmd5checkpw /var/qmail/bin/true

Haremos lo siguiente:

cd /var/qmail/control

ls -la

si aparecen los archivos dhparam512.pem y dhparam1024.pem, proceder así:

cp dhparam512.pem dhparam512.pem.copia (lo copiamos por si acaso)
mv dhparam512.pem dh512.pem (lo renombramos)

cp dhparam1024.pem dhparam1024.pem.copia (lo copiamos por si acaso)
mv dhparam1024.pem dh1024.pem (lo renombramos)

Reinicamos xinetd y luego qmail:

service xinetd restart
service qmail restart

Una vez arrancado correctamente, verificar en el maillog (/usr/local/psa/var/log/mailllog) que el correo funciona correctamente. Observaremos que la carga del sistema se ha reducido de forma considerable.

¿Por qué pasa esto?
———–
los archivos .pem son los certificados que utiliza qmail-smtpd para las sesiones TLS. Qmail intenta abrirlos para cada una de las conexiones entrantes. Si no están disponibles, los genera “on the fly”, generando una carga muy alta de CPU (de hecho puede llegar a consumir toda la CPU incluso en sistemas con 8 cores y varios GB de RAM).

Originalmente los archivos de los certificados son “dh512.pem” y “dh1024.pem”, pero en algunas versiones de plesk han sido substituidos por “dhparam512.pem” y “dhparam1024.pem”, que no son identificados por qmail como archivos de certificado. Cambiándoles el nombre y rearrancando el qmail solucionamos el problema.

This entry was posted in plesk and tagged , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *