¿Qué Sucede si Eliminamos ServerLimit en Apache?

Artículos Guías Manuales Sistemas Linux Windows Binario 0

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:

  1. 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 por ServerLimit. 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.
  2. En MPM Prefork:
    • ServerLimit está directamente relacionado con MaxRequestWorkers.
    • Si MaxRequestWorkers supera el límite predeterminado (256), Apache no se iniciará sin aumentar explícitamente ServerLimit.

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.