Tengo un sitio web que se ejecuta usando httpd en Centos 7.
Tengo 8 cpus y 32 GB de ram.
Cuando tenemos más de 500-600 usuarios al mismo tiempo en el sitio web, la respuesta del servidor es cada vez mayor. Aun así, la carga de la CPU es de aproximadamente el 20-25% y tampoco se utiliza la RAM.
¿Qué podemos configurar para aumentar el rendimiento o qué me falta? Nuestras páginas están 100% almacenadas en caché y no ejecutamos consultas a bases de datos ni nada por el estilo.
httpd.conf
HostnameLookups Off
KeepAlive On
MaxKeepAliveRequests 1500
KeepAliveTimeout 5
<IfModule prefork.c>
StartServers 30
MinSpareServers 30
MaxSpareServers 50
ServerLimit 512
MaxClients 512
MaxRequestsPerChild 10000
</IfModule>
arriba:
%Cpu(s): 1.9 us, 2.6 sy, 0.0 ni, 95.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 32779548 total, 3268520 free, 12679060 used, 16831968 buff/cache
Respuesta1
Apache es bastante eficiente. Aunque técnicamente debería calificar mi respuesta, es casi seguro que es otra cosa lo que te está molestando y no el servidor en sí... probablemente el CGI que estás ejecutando o algo completamente diferente.
Probablemente desee comenzar ejecutando top
para ver qué programas realmente están consumiendo los recursos y luego continuar desde allí, tal vez haciendo más preguntas mientras publica lo que ve.
Los únicos ejemplos vagamente probables que se me ocurren en los que Apache realmente se estancará son:
Si de alguna manera estás haciendo que sea recursivo, ya sabes, haciendo redirecciones desde una URL a la misma URL y luego una y otra y otra vez...
Si está utilizando nombres de dominio en su configuración que no se resuelven. Tal vez estén mal escritos, hayan caducado o su DNS esté en mal estado. Los errores menores están bien, pero algunas configuraciones podrían intentar muchas búsquedas de DNS fallidas en cada acceso.
Parece que su CPU todavía está bastante inactiva, por lo que probablemente esté esperando algún DNS o un problema del sistema o lo que sea.
"kdump" realmente puede profundizar en el meollo de la cuestión y ver qué está pasando, pero comience mirando el resto de "top" (o ps -axww) para ver qué programas realmente están consumiendo los recursos de su sistema en lugar de simplemente asumir que es apache. porque puede que sea o no el propio Apache, ese es el problema.