Resulta que el otro día no era capaz de acceder al correo ni de poder verlo vía web ya que el apache también parecía caido. Pero lo peor es que ni siquiera podía acceder por ssh para ver que estaba pasando e intentar arreglarlo, así que no me quedó más remedio que ponerme en contacto con el soporte del vps donde tengo instalados todos los servicios.
El problema resultó ser que había sobrepasado el número máximo de procesos/hilos permitidos (lo tienen fijado en 200), así que hice un pequeño script que mande un correo cuando la máquina se acerque al límite para ver que está suciendo:
#!/bin/bash
MAIL_SUBJECT="<subject del correo>"
MAIL_TO="<direccion del destinatario>"
MAIL_TEXT="<texto del correo>"
MAIL_FROM="From: <direccion del remitente>"
# fichero donde volcar el listado con los procesos
PS_LOG="/var/log/ps_alert.log"
MAX_PS=170
ps_count=`grep Threads /proc/*/status | gawk '{ SUM+=$NF } END { print SUM }'`
echo ${ps_count}" procesos"
if [ "$ps_count" -gt "$MAX_PS" ]; then
# se manda un correo
MAIL_TEXT=${MAIL_TEXT}${ps_count}" / "${MAX_PS}
echo $MAIL_TEXT | mail -a "$MAIL_FROM" -s "$MAIL_SUBJECT" "$MAIL_TO"
# se vuelca un listado con los procesos a un fichero
ps aux > ${PS_LOG} && wc -l ${PS_LOG}
echo `date +"%d/%m/%y %H:%M:%S"` >> ${PS_LOG}
fi
Al principio para comprobar el número de procesos usaba el comando 'ps auxw | wc -l', pero consulté a la gente de RoseHosting cómo lo hacían ellos y usan el comando que puse en el script.
En condiciones normales hay unos 80-85 procesos, así que en caso de que me vuelva a suceder, espero así poder comprobar qué es lo que provocó todo el desaguisado.
(También he de comentar que apenas transcurrieron 10 minutos hasta que obtuve la primera respuesta por parte de los administradores, lo cual es de agradecer)