Limita o uso total de memória do PHP-FPM

2

Estou executando o PHP-FPM em meus servidores Debian. Minha pergunta é sobre o uso da memória. Eu só posso definir o memory_limit dentro do PHP, e isso não deve ser muito baixo para alguns pedidos. Eu também só posso definir o número de processos no PHP-FPM e isso, também, não deve ser muito baixo, já que estou executando muitas requisições php.

Na maioria dos casos, os processos usam apenas cerca de 2-20mb. O limite do processo é 512, ou seja, aproximadamente 5-10GB de RAM. Mas como alguns scripts php podem usar muito mais memória, a memória máxima permitida é de cerca de 1TB (512 processos * 2048mb). E se algo der errado, o Debian OOM Killer irá matar aleatoriamente processos.

Existe alguma maneira de limitar o uso total de memória para o php-fpm? Como um limite rígido em que o php-fpm não gera mais processos porque está fora do total de RAM.

    
por Jochen Niebuhr 27.02.2015 / 08:12

1 resposta

0

Alguns dias atrás eu tive um problema parecido, quando alguns mestres do php5-fpm geravam muitos processos. OOM Killer ajudou muito ao matar o nginx.

Como solução, encontrei o mecanismo cgroup com subsistema de memória . Permite colocar todos os processos de FPM num grupo, o qual está limitado a, e. 60% da RAM do sistema.

Ótima documentação: link

    
por 27.02.2015 / 13:20