Tuve la suerte de que mi sitio web se volviera viral y, por supuesto, el servidor no estaba preparado para ello.
Lamentablemente mi configuración es bastante mala, un solo servidor con Apache, PHP (Laravel), Mongodb y redis.
El backend (laravel) sirve principalmente una API REST. Actualmente tengo más de 1000 usuarios simultáneos que intentan utilizar el sitio web y todo se carga muy lentamente. MongoDB parece estar funcionando bien, ya que puedo acceder a él a través de la terminal y las consultas se resuelven de inmediato. Lo que me preocupa es la configuración de Apache/PHP FPM.
Mi servidor: 8 núcleos, 16 GB de RAM
Intenté jugar con configuraciones PHP FPM pero no mejoré mucho. Por ahora lo tengo puesto static
en 300 max_children
.
En Apache estoy usando el evento MPM con esta configuración:
<IfModule mpm_event_module>
ServerLimit 40
StartServers 2
MinSpareThreads 50
MaxSpareThreads 100
ThreadLimit 64
ThreadsPerChild 50
MaxRequestWorkers 1000
MaxConnectionsPerChild 0
</IfModule>
Usando top
tengo esto, que me parece bien:
¿Alguien puede indicarme la dirección correcta?