Tengo un pequeño VPS Debian alojado en Rackspace que ejecuta mi servidor web personal. En las últimas semanas, ha habido varias ocasiones en las que Apache (estoy ejecutando 2.2.16) parece estar colgado indefinidamente. Reiniciar Apache /etc/init.d/apache2 restart
resuelve el problema hasta que vuelva a suceder. Debido a esto, estoy bastante seguro de que no es un problema con el DNS o la configuración del directorio virtual (ninguno de los cuales ha cambiado desde mucho antes de que esto comenzara a suceder).
A veces, sólo se ven afectadas las páginas dinámicas que involucran PHP y MySQL, y las páginas HTML estáticas simplemente tardan en cargarse; otras veces, todas las páginas se cuelgan indefinidamente hasta que reinicio Apache. Si tengo una pestaña abierta en Chrome, después de un tiempo de colgarla, es posible que se produzca un error con ERR_CONNECTION_ABORTED; si reinicio Apache, deja de cargarse con ERR_CONNECTION_RESET.
No hay nada /var/log/apache2/error.log
más que rastreadores web que buscan archivos que no existen. Al principio pensé que era un problema de RAM (256 MB, soy barato, pero el tráfico es del orden de unos cientos de visitas por día, en su mayoría rastreadores web), pero el intercambio no está ni cerca de estar completo, los procesos de Apache están inactivos. y aunque hay muy poca memoria libre, es más o menos lo mismo después de cargar algunas páginas después de reiniciar Apache. El rendimiento es aceptable cuando está funcionando, sólo necesito descubrir qué causa que se cuelgue después de unos días de funcionamiento.
Intenté reducir MaxClients y aumentar MaxRequestsPerChild, pero eso no ayudó:
<IfModule mpm_prefork_module>
StartServers 2
- MinSpareServers 2
- MaxSpareServers 4
- MaxClients 10
- MaxRequestsPerChild 200
+ MinSpareServers 1
+ MaxSpareServers 2
+ MaxClients 4
+ MaxRequestsPerChild 2000
</IfModule>
(Estas configuraciones, tanto antiguas como nuevas, y basadas en buscar en Google, hay un montón de información contradictoria sobre lo que constituye una configuración razonable).
¿Alguna idea de cómo puedo averiguar qué está pasando? ¿Cuáles son buenos lugares para buscar un posible punto muerto?
Pregunta paralela: dado que el VPS en sí está bien, ¿hay algún cronjob que pueda ejecutar localmente y que me avise cuando Apache comience a comportarse mal? (No necesito un servicio de monitoreo externo pesado como Pingdom).