Sites no PHP-FPM estão indisponíveis ou carregando lentamente: "server reached max_children setting" ou "pool seems busy"
imprimir- Webserver
- 0
Aplicável a:
Plesk para Linux
Sintomas
Os sites que têm o manipulador PHP definido como aplicativo FPM servido pelo aplicativo Apache ou FPM servido pelo nginx em Domínios > example.com > Configurações PHP enfrentam um dos seguintes problemas:
carregar lentamente
não acessível (permanente ou periodicamente) com um erro de 50x em um navegador da web:
502 Bad Gateway |
503 Service Temporarily Unavailable |
504 Gateway Time-out |
A seguinte mensagem aparece no arquivo de log de erros do PHP-FPM (onde XX é uma versão do PHP usada pelos sites): /var/log/plesk-phpXX-fpm/error.log
WARNING: [pool example.com] server reached max_children setting (*), consider raising it |
A mensagem acima geralmente é acompanhada com este erro:
unable to read what child say: Bad file descriptor (9)
Se o nginx estiver habilitado no servidor, uma das seguintes mensagens de erro pode aparecer no arquivo de log de erros do domínio:/var/www/vhosts/system/example.com/logs/proxy_error_log
[error] 11456#0: *118348 connect() to unix:///var/www/vhosts/system/example.com/php-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 203.0.113.2, server: example.com, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:///var/www/vhosts/system/example.com/php-fpm.sock:", host: "example.com" |
[error] 20058#0: *4725139 upstream prematurely closed connection while reading response header from upstream, client: 203.0.113.2, server: example.com, request: "POST /path/to/some/file HTTP/2.0", upstream: |
Causa
O PHP-FPM foi acessado pelo(s) site(s).pm.max_children
Solução
Aumente o limite para os domínios afetados:pm.max_children
Conecte-se ao servidor Plesk via SSH.
Encontre os domínios afetados usando o comando abaixo:
Note: O número à esquerda indica quantas vezes o limite pm.max_children foi atingido pelo site.
Se um domínio estiver usando um aplicativo FPM dedicado e tiver um local de vhosts personalizado, altere o caminho /var/www/vhosts/system/ no comando abaixo:
# grep -r "server reached max_children setting" /var/log/*php*-fpm/error.log /var/www/vhosts/system/*/logs/php-fpm_error.log | cut -d' ' -f5 | tr -d ']' | sort | uniq -c | sort -nr 100 example.com 50 example.net 25 example.org <...> |
Faça login no Plesk.
Vá para Domains > example.com > PHP Settings > PHP-FPM Settings.
Aumente o valor do domínio e aplique as alterações. Aumente esse valor para todos os domínios listados na etapa 2.pm.max_children