Estou executando PHP-FPM em meus servidores Debian. Minha pergunta é sobre o uso de memória. Só posso definir o memory_limit dentro do PHP, e isso não deve ser muito baixo para algumas solicitações. Também só consigo definir o número de processos no PHP-FPM e isso, também, não deve ser muito baixo já que estou executando muitas solicitações php.
Na maioria dos casos, os processos usarão apenas cerca de 2 a 20 MB. O limite do processo é 512, ou seja, cerca de 5 a 10 GB de RAM. Mas como alguns scripts php podem usar muito mais memória, a memória máxima permitida é em torno de 1 TB (512 processos * 2.048 MB). E se algo der errado, o Debian OOM Killer irá matar processos aleatoriamente.
Existe alguma maneira de limitar o uso total de memória para php-fpm? Como um limite rígido onde o php-fpm não gerará mais processos porque está sem RAM total.
Responder1
Alguns dias atrás eu tive um problema semelhante, quando alguns mestres php5-fpm geraram muitos processos. OOM Killer ajudou muito matando o nginx.
Como solução que encontreicgrupomecanismo comsubsistema de memória. Permite colocar todos os processos FPM em 1 grupo que é limitado, por exemplo, a 60% da RAM do sistema.
Ótima documentação: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch-Using_Control_Groups.html