O Apache MaxMemFree não funciona?

2

Eu tenho o MaxMemFree 150 do apache definido no httpd.conf. No entanto, quando eu uso o htop / top para ver o processo do apache, ele ainda come 648M mostrado abaixo. Eu senti falta de alguma coisa?

16514 apache     20   0 1157M  648M  7884 S  0.0  8.2  0:00.00 /usr/sbin/httpd
16546 apache     20   0 1157M  648M  7884 S  0.0  8.2  0:00.00 /usr/sbin/httpd
16513 apache     20   0 1157M  648M  7884 S  0.0  8.2  0:19.78 /usr/sbin/httpd
16524 apache     20   0 1124M  613M  7956 S  0.0  7.8  0:00.00 /usr/sbin/httpd
16544 apache     20   0 1124M  613M  7956 S  0.0  7.8  0:00.00 /usr/sbin/httpd
16520 apache     20   0 1124M  613M  7956 S  0.0  7.8  0:20.32 /usr/sbin/httpd
16524 apache     20   0 1122M  609M  7956 S  0.0  7.7  0:00.00 /usr/sbin/httpd
16544 apache     20   0 1122M  609M  7956 S  0.0  7.7  0:00.00 /usr/sbin/httpd

PS: Estou tentando solucionar um aplicativo mod_perl que pode ter algum vazamento de memória. No entanto, não posso alterar o código. Eu estou pensando em ter apache matar o processo depois de um tempo para liberar a memória.

    
por compass 27.09.2013 / 02:53

1 resposta

3

O Linux comeu sua RAM - dê uma olhada nesta página sobre como o Linux aloca memória.

Atualizar :

Fora da óbvia descoberta da origem do vazamento de memória no aplicativo e na correção, tente o seguinte:

  • Reinicie o httpd em intervalos regulares usando cron ou scripts para verificar o consumo de recursos. Analise a saída de um script do Nagios ou algo parecido com [check_httpd_limits][2] e use-o como uma verificação. Esta não é uma boa opção a longo prazo.

  • Ajuste sua instância do httpd do apache. A saída de check_httpd_limits pode ser útil nesse sentido.

  • Veja Grupos de controle para ver se você pode limitar o consumo de recursos. Esteja preparado para a possibilidade de que seu aplicativo e outros componentes em seu servidor possam reagir "aversamente" a ele.

Você pode estar olhando para uma combinação de coisas.

    
por 27.09.2013 / 04:24