Estou executando um servidor apache (configuração padrão, mod_php) em uma VM amazon linux com apenas 1G de RAM.
Existem dois tipos de aplicações php em execução: memória pesada, que são executadas não com tanta frequência (os processos httpd recebem 50 MB de tamanho cada) e os de memória leves, que são executados frequentemente.
Quando eu reinicio o apache e vejo o tamanho dos processos do httpd, é assim:
sudo service httpd restart
ps aux | grep 'httpd' | awk '{print $6/1024 " MB";}'
24.7266 MB
14.9805 MB
14.9805 MB
14.9805 MB
14.9805 MB
14.9805 MB
2.00391 MB
Quando eu https: // apenas alguns dos aplicativos php de memória pesada (uma instalação do drupal 7) o mesmo comando gera isto:
24.7266 MB
14.9805 MB
47.0195 MB
18.6133 MB
18.5781 MB
18.582 MB
14.9805 MB
14.9805 MB
14.9805 MB
14.9805 MB
14.9805 MB
14.9805 MB
14.9805 MB
2.05078 MB
O problema é que, mesmo quando o servidor fica ocioso, ele mantém alguns desses grandes processos de 50MB criados para atender às solicitações drupal de memória pesada. Eventualmente, quando eu obtenho muitos desses, ele usa quase toda a memória do servidor, então não posso usar o servidor para mais nada. Eu poderia estabelecer um limite mais estrito na quantidade de processos que o httpd pode criar para que houvesse menos processos de 50MB, mas isso puniria os aplicativos leves, pois agora há menos processos para lidar com suas solicitações:
- Como posso criar mais memória de memória livre do apache?
- Ou existe uma ferramenta melhor do que o apache?