spamd: prefork: server reached –max-children setting, consider raising it
En el log del spamassassin (spamd) en ocasiones podemos encontrarnos con un mensaje indicandonos que debemos aumentar el parámetro “max-children“. Vamos a ver el significado de este mensaje y si debemos realmente aumentar el parámetro.
El error completo sería similar a este:
spamd[7318]: prefork: server reached --max-children setting, consider raising it
Para considerar elevar el número de procesos primero debemos ver la evolución de estos. Por ejemplo:
Apr 30 07:50:15 carlit spamd[7318]: prefork: child states: II Apr 30 07:56:27 carlit spamd[7318]: prefork: child states: BB Apr 30 07:56:27 carlit spamd[7318]: spamd: server successfully spawned child process, pid 25910 Apr 30 07:56:27 carlit spamd[7318]: prefork: child states: BBB Apr 30 07:56:27 carlit spamd[7318]: spamd: server successfully spawned child process, pid 25911 Apr 30 07:56:27 carlit spamd[7318]: prefork: child states: BBBB Apr 30 07:56:27 carlit spamd[7318]: spamd: server successfully spawned child process, pid 25918 Apr 30 07:56:27 carlit spamd[7318]: prefork: child states: BBBBB Apr 30 07:56:27 carlit spamd[7318]: spamd: server successfully spawned child process, pid 25919 Apr 30 07:56:27 carlit spamd[7318]: prefork: child states: BBBBBB Apr 30 07:56:27 carlit spamd[7318]: prefork: server reached --max-children setting, consider raising it
El significado de los estados es el siguiente:
- I: Idle, el proceso esta a la espera
- S: Starting, el proceso esta arrancando, por lo que aún no esta listo
- K: Killed, el proceso se ha matado
- B: Busy, el proceso esta analizando un mensaje
En el log anterior vemos como en un punto en el tiempo pasa de 2 a 6 procesos. Si seguimos el log veremos como después van bajando:
Apr 30 07:56:41 carlit spamd[7318]: prefork: child states: BIBBBB Apr 30 07:56:42 carlit spamd[7318]: prefork: child states: BIBBIB Apr 30 07:56:47 carlit spamd[7318]: prefork: child states: BIBIIB Apr 30 07:56:47 carlit spamd[7318]: prefork: child states: BIBIKB Apr 30 07:56:47 carlit spamd[7318]: spamd: handled cleanup of child pid 25918 due to SIGCHLD Apr 30 07:56:48 carlit spamd[7318]: prefork: child states: IIBIB Apr 30 07:56:48 carlit spamd[7318]: prefork: child states: IIBKB Apr 30 07:56:48 carlit spamd[7318]: spamd: handled cleanup of child pid 25911 due to SIGCHLD Apr 30 07:56:49 carlit spamd[7318]: prefork: child states: IIIB Apr 30 07:56:49 carlit spamd[7318]: prefork: child states: IIKB Apr 30 07:56:49 carlit spamd[7318]: spamd: handled cleanup of child pid 25910 due to SIGCHLD Apr 30 07:56:49 carlit spamd[7318]: prefork: child states: III Apr 30 07:56:49 carlit spamd[7318]: prefork: child states: IIK Apr 30 07:56:49 carlit spamd[7318]: spamd: handled cleanup of child pid 25919 due to SIGCHLD Apr 30 07:57:36 carlit spamd[7318]: prefork: child states: II
En este caso vemos como es un problema puntual, por lo que de momento no es necesario aumentar el número de procesos de spamassassin.
En el caso que viéramos que se trata de algo sostenido en el tiempo por la carga del servidor deberemos augmentar el parámetro –max-children. Por ejemplo, suponiendo que usamos daemontools, deberemos editar el fichero /service/spamd/run para cambiar el parámetro:
#!/bin/bash exec /usr/bin/spamd -x -u spamd -H /home/spamd -r /var/run/spamd.pid --min-children=1 --min-spare=1 --max-spare=2 --max-children=7
Relacionados
Imprimir
7. May 2009 at 4:01 pm :
¿Qué es eso de augmentar?
7. May 2009 at 4:06 pm :
Un error corregido
Muchas gracias!