Apache 2.4 não fecha conexões

7

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!

    
por Edi 14.09.2013 / 23:19

1 resposta

1

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.

    
por 31.08.2016 / 13:43