Ejecutamos un sitio de tamaño mediano que obtiene unos pocos cientos de miles de vistas de página por día. Hasta el último fin de semana corrimos con una carga generalmente inferior a 0.2 en una máquina virtual. El sistema operativo es Ubuntu.Apache usa una CPU excesiva
Al implementar la última versión de nuestra aplicación, también hicimos un apt-get dist-upgrade antes de implementarlo. Después de desplegarnos, notamos que la carga en la CPU había aumentado drásticamente (a veces llegando a 10 y deteniéndose para responder a las solicitudes de página).
Intentamos eliminar un minuto completo de los datos de perfilado de Xdebug desde PHP, pero al examinarlo se revelaron solo algunas partes algo lentas, pero nada que explicara el gran salto.
Ahora estamos bastante seguros de que nada en la nueva versión de nuestro sitio web está desencadenando el problema, pero no tenemos manera de estar seguros. Hemos revertido muchos de los cambios, pero el problema aún persiste.
Cuando miramos los procesos, vemos que los procesos de Apache solo utilizan bastante CPU durante un período de tiempo más largo que estrictamente necesario. Sin embargo, cuando se utiliza strace en el proceso afectado, nunca vemos nada, pero
accept(3,
y se cuelga por un tiempo antes de recibir una nueva conexión, por lo que no podemos ver realmente lo que está causando el problema.
La pila es PHP 5, Apache 2 (prefork), MySQL 5.1. La mayoría de las cosas pasan por Memcached. Hemos probado APC y eAccelerator.
Entonces, ¿cuál debería ser nuestro siguiente paso? ¿Hay algún método de creación de perfiles que ignoramos/desconocemos?
¿De qué versiones a qué versiones actualizaste el sistema? Me refiero a a) PHP, b) Apache yc) memcached. – Georgi
No tengo un registro de eso, desafortunadamente. Por lo que sé, no hay ningún registro apt-get/aptitude. –