El módulo MPM (Multi-Processing Module) en Apache gestiona cómo maneja las solicitudes simultáneas. Según tus necesidades (1000 solicitudes simultáneas), la elección del módulo MPM adecuado dependerá de los recursos del servidor (CPU, RAM, etc.) y el tipo de carga. A continuación, se explica cada opción:
Opciones de MPM:
- MPM Prefork:
- Usa procesos en lugar de hilos.
- Apto para aplicaciones que no son seguras con hilos, como algunos módulos de PHP antiguos.
- Menos eficiente en recursos, pero estable.
- MPM Worker:
- Usa una combinación de procesos e hilos.
- Es más eficiente que Prefork.
- Adecuado para aplicaciones que manejan múltiples solicitudes de manera eficiente con hilos.
- MPM Event:
- Similar a Worker, pero con mejor manejo de conexiones keep-alive.
- Ideal para cargas modernas y escalables.
Para manejar 1000 solicitudes simultáneas, generalmente se recomienda MPM Event o MPM Worker si las aplicaciones son seguras para hilos.
Configuración de MPM para 1000 solicitudes simultáneas
Un ejemplo de configuración en el archivo mpm_event.conf
o mpm_worker.conf
:
<IfModule mpm_event_module>
StartServers 4
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 50
MaxRequestWorkers 1000
ServerLimit 20
</IfModule>
Parámetros explicados:
- StartServers: Número inicial de procesos del servidor.
- MinSpareThreads / MaxSpareThreads: Número mínimo y máximo de hilos en espera.
- ThreadsPerChild: Número de hilos por proceso.
- MaxRequestWorkers: Límite total de solicitudes simultáneas.
- ServerLimit: Número máximo de procesos.
Recomendaciones adicionales:
- Ajuste de límites del sistema:
- Asegúrate de que el sistema operativo permita suficientes descriptores de archivo y conexiones simultáneas.
- Edita
/etc/security/limits.conf
:* soft nofile 65535
* hard nofile 65535
- Asegúrate de que el sistema operativo permita suficientes descriptores de archivo y conexiones simultáneas.
- Pruebas de carga:
- Usa herramientas como
ab
(ApacheBench) owrk
para simular 1000 solicitudes y ajustar los parámetros según el desempeño.
- Usa herramientas como
- Monitoreo:
- Usa herramientas como
htop
,top
, omod_status
para monitorear los recursos durante pruebas de carga.
- Usa herramientas como