Eu encontrei processos do apache inchando (vazando memória) quando eles são reutilizados indefinidamente, vale a pena definir um MaxRequestsPerChild 200
no seu httpd.conf e reiniciar.
Eu tenho um servidor web Apache 2.4 que é executado em uma instância micro da AWS com o CentOS.
O apache está executando o PHP com um módulo MPM prefork.
O servidor é acessado por meio de um balanceador de carga da Amazon que tem uma verificação de integridade que tenta acessar a página da Web index.php do servidor a cada 60 segundos.
O problema é que após 1-2 dias, o Apache atinge de alguma forma 256 processos abertos com a página index.php e apresenta o seguinte erro:
[Sun Sep 08 02:13:00.356051 2013] [mpm_prefork:error] [pid 1201] (12)Cannot allocate memory: AH00159: fork: Unable to fork new process
[Sun Sep 08 02:13:13.656694 2013] [mpm_prefork:error] [pid 1201] AH00161: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting
Geralmente, quando isso acontece, novas conexões http não são mais aceitas.
O Apache provavelmente não fecha todas as conexões do balanceador de carga.
Nós temos outro servidor com Apache 2.2, que não tem esse problema, então provavelmente o problema é com a versão 2.4 que é muito diferente de 2.2 (Nós não alteramos nenhuma configuração padrão do Apache).
mod_status está ativado e aqui está a saída que poderíamos obter quando isso acontecesse uma vez: link
Alguém sabe como podemos abordar esse problema?
Obrigado antecipadamente!
Eu encontrei processos do apache inchando (vazando memória) quando eles são reutilizados indefinidamente, vale a pena definir um MaxRequestsPerChild 200
no seu httpd.conf e reiniciar.