Tendo alguns problemas com o uso de memória httpd
( Apache/2.2.29
).
Com o passar do tempo, o uso de memória nos processos httpd
aumenta até chegar a 100%.
A última vez que reiniciei httpd
foi há cerca de 24 horas. A saída de free -m
é:
[ec2-user@www ~]$ free -m
total used free shared buffers cached
Mem: 1655 1415 239 0 202 424
-/+ buffers/cache: 788 866
Swap: 1023 4 1019
Para provar que é definitivamente httpd
, reiniciei httpd
e executei free -m
novamente:
[ec2-user@www ~]$ sudo service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
[ec2-user@www ~]$ free -m
total used free shared buffers cached
Mem: 1655 760 894 0 202 360
-/+ buffers/cache: 197 1457
Swap: 1023 4 1019
Assim, reiniciar o Apache leva a memória livre de 239 Mb para 894 Mb - o que parece ser um salto grande .
Eu tenho passado pela lista de módulos Apache atualmente habilitados (há bastante) e desabilitado / removido mod_wsgi
e mod_perl
(nenhum dos quais são necessários para este servidor, que está executando um baseado em PHP aplicação web - Magento, especificamente).
Com base no link , executei ps aux | grep 'httpd' | awk '{print $6/1024 " MB";}'
e obtive o seguinte saída:
[root@www ~]# ps aux | grep 'httpd' | awk '{print $6/1024 " MB";}'
15.1328 MB
118.09 MB
127.449 MB
129.059 MB
117.734 MB
113.824 MB
125.062 MB
123.922 MB
119.855 MB
108.066 MB
136.23 MB
114.031 MB
113.27 MB
110.695 MB
102.113 MB
113.234 MB
186.816 MB
118.602 MB
0.835938 MB
A execução da outra ferramenta de diagnóstico sugerida para MaxClients
, que é ps aux | grep 'httpd' | awk '{print $6/1024;}' | awk '{avg += ($1 - avg) / NR;} END {print avg " MB";}'
, retorna o seguinte:
[root@www ~]# ps aux | grep 'httpd' | awk '{print $6/1024;}' | awk '{avg += ($1 - avg) / NR;} END {print avg " MB";}'
110.212 MB
Este servidor (Amazon AWS m1.small
instance) tem 1.7 Gb
de RAM. Então, portanto:
Quaisquer outras sugestões / sugestões sobre a melhor forma de ajustar as configurações de httpd
ou como diagnosticar o que exatamente pode estar causando isso?