Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero
En Apache, el parámetro ServerLimit establece el número máximo de procesos que el servidor puede generar. Si ServerLimit se omite o se elimina, Apache usará un valor predeterminado, pero esto puede generar problemas en ciertas configuraciones, especialmente para altas cargas como 1000 solicitudes simultáneas. Veamos los posibles escenarios:
Qué sucede si quitas ServerLimit:
- En MPM Worker o Event:
- El valor predeterminado de
ServerLimitserá 16. - Si configuras un valor alto de
MaxRequestWorkers, Apache generará un error si supera el límite permitido porServerLimit. Por ejemplo:AH00534: MaxRequestWorkers of 1000 is not allowed, increasing ServerLimit to 20. - Esto puede causar un ajuste automático no deseado o errores de inicio si no se respeta el límite.
- El valor predeterminado de
- En MPM Prefork:
ServerLimitestá directamente relacionado conMaxRequestWorkers.- Si
MaxRequestWorkerssupera el límite predeterminado (256), Apache no se iniciará sin aumentar explícitamenteServerLimit.
Por qué deberías mantener ServerLimit:
- Control explícito: Te permite configurar el límite máximo de procesos, asegurando que los valores de
MaxRequestWorkerssean respetados. - Eficiencia: Sin
ServerLimit, Apache podría usar valores predeterminados que no están optimizados para tus necesidades. - Evitar errores: Eliminar
ServerLimitpuede causar que Apache rechace configuraciones válidas o no inicie correctamente.
Configuración recomendada para 1000 solicitudes:
Si no quieres depender de valores predeterminados, mantén ServerLimit. Una configuración optimizada podría ser:
<IfModule mpm_event_module>
StartServers 10
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 50
MaxRequestWorkers 1000
ServerLimit 20
</IfModule>
Aquí:
- ServerLimit 20 asegura que hasta 20 procesos puedan manejar los hilos necesarios.
- ThreadsPerChild 50 × ServerLimit 20 = 1000 solicitudes simultáneas.
¿Qué pasa si eliminas ServerLimit?
Si lo quitas y el valor predeterminado no es suficiente, Apache intentará ajustarlo automáticamente, lo cual puede ser impredecible. Es mejor mantener ServerLimit para tener control total.