Estou curioso sobre como o Apache manipula como a memória é alocada para cada um dos processos que ela cria. Atualmente estou executando um servidor Debian.
Neste momento, o meu servidor tem 8GB de memória e está ativo há cerca de 7 dias. No momento, isso mostra que meu servidor tem cerca de 50 MB de memória disponível.
Quando executo "top -u www-data", vejo todos os processos do Apache atualmente em execução. Na coluna VIRT, vejo que cada processo está em 354m e a coluna RES varia entre 9254 e 60m.
O que eu acho estranho é que quando eu reinicio o Apache, os IDs do processo mudam, mas eles automaticamente voltam a ocupar a mesma quantidade de memória.
Basicamente, minha preocupação é que o Apache esteja ocupando muita memória. Agora eu tenho MaxKeepAliveRequests definido como 100 e KeepAliveTimeout definido como 3. Eu também tenho as seguintes diretrizes definidas:
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 200
</IfModule>
<IfModule mpm_worker_module>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
Agora, quando eu acesso o servidor, não vejo nenhum problema de desempenho. A carga média geralmente permanece muito longa, parece que eu tenho uma quantidade muito pequena de memória disponível. Não vai trocar nada (760k é o mais alto que já vi).
Eu apenas pareço estar preocupado que o Apache esteja tendo muita memória. Se isso é normal e não fará com que o servidor se mate, eu posso aprender a viver com isso. Isso simplesmente não parece certo.
Qualquer entrada seria muito apreciada. Obrigado
Josh Pennington