Tive a sorte de meu site se tornar viral e o servidor, claro, não estar pronto para isso.
Infelizmente minha configuração é bastante ruim, um único servidor com Apache, PHP (Laravel), Mongodb e redis.
O backend (laravel) serve principalmente uma API REST. Atualmente, tenho mais de 1.000 usuários simultâneos tentando usar o site e tudo carrega muito lentamente. O MongoDB parece estar funcionando bem, pois posso acessá-lo através do terminal e as dúvidas são resolvidas imediatamente. O que me preocupa é a configuração do Apache/PHP FPM.
Meu servidor: 8 núcleos, 16 GB de RAM
Tentei brincar com as configurações do PHP FPM mas não melhorei muito. Por enquanto estou static
com 300 max_children
.
No Apache estou usando o evento MPM com esta configuração:
<IfModule mpm_event_module>
ServerLimit 40
StartServers 2
MinSpareThreads 50
MaxSpareThreads 100
ThreadLimit 64
ThreadsPerChild 50
MaxRequestWorkers 1000
MaxConnectionsPerChild 0
</IfModule>
Usando top
eu tenho isso, o que me parece bom:
Alguém pode me apontar na direção certa?