Estoy ejecutando un servidor web hobby fuera de un antiguo Blue & White G3 / 300 con Debian PPC Squeeze 2.6.30. El rendimiento está bien durante un tiempo después de un reinicio, pero finalmente se empantana cada vez más. En este momento es a 76 días de tiempo de actividad, y el principal culpable parece ser el uso de memoria de más de 10 procesos apache2.
Creo que necesito para bajar los valores de StartServers
, MinSpareServers
y / o MaxSpareServers
, pero no estoy seguro de cuál de ajustar, y hay tres secciones para cada función de que el módulo MPM está en uso.
¿Cómo puedo saber cuál de las siguientes secciones necesito cambiar y cuáles son algunos valores razonables dado que la caja tiene 448 MB de memoria física (un extraño historial de actualizaciones de una cada 64, 128 y 256 unidades)?
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_event_module>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
No hay otras instancias de StartServers en mi apache2.conf, pero ninguno de esos módulos mpm aparece en mods-available
o mods-enabled
. Ideas?
¡Gracias!
fuente
Respuestas:
400 MB no es mucho para un servidor web en estos días, es posible que desee considerar reemplazar la caja :)
Dicho esto, si su uso de memoria se está disparando, probablemente tenga una pérdida de memoria en alguna parte: para una prueba rápida, observe el tamaño de los procesos httpd ahora, luego detenga / inicie Apache y vea si son mucho más pequeños. Si los están observando durante unos días y ver si crecen.
Si se trata de una pérdida de memoria, la solución real para eso es encontrar y corregir la pérdida de memoria, pero dado que eso suele ser un fastidio, también puede ajustarse
MaxRequestsPerChild
a algo distinto de 0 (ilimitado). Esto matará a los trabajadores de Apache cuando hayan atendido un número fijo de solicitudes (forzándolos a renunciar a su memoria perdida en el proceso.Comience con valores más grandes (en miles más o menos) y avance hasta los cientos. Si obtiene menos de 100 solicitudes por niño, su pérdida de memoria es lo suficientemente grande como para justificar su reparación, ya que el rendimiento golpeará constantemente al matar y volver a generar trabajadores de apache será significativo.
Re: qué mpm ajustar, la respuesta es casi segura
prefork
.Puedes correr
httpd -V
y buscar laServer MPM:
línea que te dirá con seguridad.fuente
Para determinar el uso de memoria del proceso de apache, querrá ajustar los MaxClients.
La regla general es: (Memoria máxima deseada) / (Uso de memoria de 1 proceso Apache) = # Clientes máximos
Al final, también debe ajustar su para ser MaxSpareServers <= Max Clients .
El uso de la memoria de un proceso depende en gran medida de los módulos que haya cargado (php, etc.), por lo que es posible que desee configurar los Clientes máximos un poco más bajos.
fuente