Estou usando o apache2 com o mod_fastcgi para executar o PHP em um servidor compartilhado privado. Combinei isso com o suexec para poder executar cada host virtual como seu próprio usuário do UNIX, mantendo os proprietários do Wordpress felizes.
Um site ocasionalmente recebe uma onda de tráfego devido a scrapers no Twitter, o que gera mais de 10 processos php-cgi usando 50MB cada. Isso gera muitos erros OOM em um dos meus servidores escravos de 512MB.
Eu gostaria de limitar cada usuário a 4 processos PHP, mantendo os processos maxmimum globais usados para um limite de 8. No arquivo de configuração que carrega mod_fastcgi.so
, eu defini o seguinte
FastCgiConfig -maxClassProcesses 4 -maxProcesses 8
No meu arquivo cgi-bin / php.fcgi para cada host virtual, eu também configurei o seguinte:
#!/bin/bash
### Set PATH ###
PHP_CGI=/usr/bin/php-cgi
PHP_FCGI_CHILDREN=0
PHP_FCGI_MAX_REQUESTS=1000
### no editing below ###
export PHP_FCGI_CHILDREN
export PHP_FCGI_MAX_REQUESTS
exec $PHP_CGI
Infelizmente, isso não fez muito pelo meu ambiente e, quando testamos os servidores, ainda encontramos mais de quatro processos php-cgi para um usuário em execução, resultando em mais problemas de OOM. O que estou fazendo errado aqui?
Tags apache-2.2 mod-fastcgi php-cgi