Eu tenho servidor com FreeBSD (16 núcleos com HT, SSD, 32Gb RAM) que está recebendo cerca de 40 milhões de solicitações http diariamente. Todas as solicitações são atendidas por nginx
+ php-fpm
.
Nestes gráficos, vemos que temos problemas durante o pico do tráfego. Eu não sou sysadmin, por favor, me explique o que é "Conexões ativas", "Escrevendo", "Aguardando", "Lendo" e porque "Escrever" aumenta quando o servidor não pode atender solicitações rapidamente?
Aqui estão mais alguns gráficos com CPU, memória e carga média.
Comovocêpodever,nadadeestranhoacontececomCPUememória,masoLoadAveragetambémtemumpico.
Duranteessepicodamédiadecarga,noteiqueháumafilanãoatendidanophp-fpm.sock
netstat-Lan|grepphp-fpmunix2525/0/32246/tmp/php-fpm.sock
Onúmerodemembrosnafilavariade0a12000.Quandoovaloré0-estátudobemeestourecebendorespostahttpem60-100ms.Quandoovaloré5000-12000,podelevarde3a10segundos.
Tambémverifiqueiseháalgumprocessoincomumemtop
,masnãoconseguiencontrarnada.
Aquiestáacapturadetelatop
tiradaháalgunsminutos(agoraestátudook,sempicodetráfego):
Minha conclusão: de acordo com gráficos de CPU e memória, posso dizer que esse servidor pode atender a mais e mais solicitações, mas por causa do trabalho não ideal de php-fpm é impossível durante picos de tráfego.
Alguma sugestão sobre como este problema pode ser resolvido?