Eu tenho Nginx + php5-fpm . Várias vezes por hora meu site trava e no arquivo de log vejo o seguinte:
AVISO: o servidor [pool www] atingiu a configuração pm.max_children (5), considere aumentá-lo.
O arquivo /etc/php5/fpm/pool.d/www.conf contém a seguinte configuração:
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
Servidor: AMD Opteron™ 3280, Octo-Core, 8x 2,4 GHz, DIMM de 16 GB (DDR3).
Não tenho ideia de quais números devo colocar no arquivo www.conf para este servidor. Posso ajudar alguém? Obrigado
Existem muitas razões possíveis pelas quais seu PHP-FPM alcançaria o
max_children
. Os mais comuns são:max_children
Olhando para as especificações da sua máquina, supondo que não haja nada mais do que PHP + Nginx em execução, acho que você pode definir muito mais que 5. Você diz que tem 8 núcleos, geralmente o Nginx precisa de muito menos CPU que o PHP, então com 5 filhos você provavelmente nunca será capaz de usar todos eles. Normalmente, configuro para algo como o número de núcleos x 2 ou o número de núcleos x 4 , dependendo do consumo de memória de seus scripts PHP.
Descobri que definir o valor pm.max_requests (que é comentado por padrão) ajudou a corrigir esses erros. Essa configuração força as solicitações filhas a reaparecerem após a execução de um certo número de solicitações e pode ser útil se houver vazamentos de memória em algum lugar em seu código ou em bibliotecas de terceiros.
Em /etc/php-fpm.d/www.conf :