Después de rascarme la cabeza tratando de averiguar por qué mi sitio respondía tan lentamente a pesar de que los recursos del servidor están bien, finalmente verifiqué el estado de Apache y descubrí:
78 requests/sec - 0.7 MB/second - 8.5 kB/request
256 requests currently being processed, 0 idle workers
Parece que mi apache está literalmente lleno con conexiones. Cualquier persona que intente visitar mi sitio se pone en una "lista de espera" hasta que Apache vuelva a estar libre.
Parece que tengo dos opciones.
A) Eleve el límite máximo de conexiones por encima de 256. Aunque según este artículo no es tan fácil:
De manera predeterminada, el parámetro MaxClients tiene un límite duro compilado de 256. Sin embargo, esto se puede cambiar volviendo a compilar Apache. Algunas distribuciones, o empresas de alojamiento, elevan este límite a un valor muy alto, como 512 o incluso 1024 para hacer frente a grandes cargas.
B) Localice los scripts que están ocupando demasiado tiempo. Esto me parece mucho más complicado, ya que la mayoría de los procesos de apache simplemente aparecen y luego desaparecen nuevamente. Además, los scripts PHP de mis sitios están optimizados bastante bien ... y una vez más, los recursos del servidor están bien:
Server load 2.69 (8 CPUs)
Memory Used 25.33% (2,039,108 of 8,048,804)
Swap Used 1.32% (54,156 of 4,095,992)
¿Qué opción (si alguna de ellas) debo elegir y cómo debo hacerlo?
EDITAR
Más información: Versión del servidor: Apache / 2.2.23 (Unix) mod_ssl / 2.2.23 OpenSSL / 1.0.0-fips DAV / 2 mod_auth_passthrough / 2.1 mod_bwlimited / 1.4 FrontPage / 5.0.2.2635
Conf HTTP: http://pastebin.com/yBeLt6mP
Ejemplo de solicitud parital: http://pastebin.com/vzUVDMPR
Alterne Text-Wrap si los bins de pasta aparecen raros.