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
ServerLimit
será 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:
ServerLimit
está directamente relacionado conMaxRequestWorkers
.- Si
MaxRequestWorkers
supera 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
MaxRequestWorkers
sean respetados. - Eficiencia: Sin
ServerLimit
, Apache podría usar valores predeterminados que no están optimizados para tus necesidades. - Evitar errores: Eliminar
ServerLimit
puede 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.