Estou executando um servidor de hobby em um antigo G3 / 300 Blue & White G3 / 300 executando o Debian PPC Squeeze 2.6.30. O desempenho é bom por um tempo após uma reinicialização, mas acaba ficando cada vez mais atolado. No momento, ele tem 76 dias de atividade, e o principal culpado parece ser o uso de memória de mais de 10 processos apache2.
Acho que preciso para diminuir os valores para StartServers
, MinSpareServers
e / ou MaxSpareServers
, mas não tenho certeza qual deles para ajustar, e há três seções para cada dependendo de qual módulo MPM está em uso.
Como posso saber qual das seções a seguir preciso alterar e quais são alguns valores razoáveis, uma vez que a caixa possui 448 MB de memória física (histórico de atualização estranho de um a cada 64, 128 e 256 sticks)?
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_event_module>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
Não existem outras instâncias do StartServers no meu apache2.conf, mas nenhum desses módulos mpm aparece em mods-available
ou mods-enabled
. Ideias?
Obrigado!
fonte
Respostas:
Atualmente, 400 MB não são muito para um servidor Web - você pode considerar substituir a caixa :)
Dito isso, se o uso da memória está aumentando, você provavelmente tem um vazamento de memória em algum lugar - para um teste rápido, verifique o tamanho dos processos httpd agora, pare / inicie o Apache e veja se eles são muito menores. Se eles estiverem assistindo por alguns dias e ver se eles crescem.
Se for um vazamento de memória, a solução real é encontrar e corrigir o vazamento de memória, mas como isso geralmente é um problema, você também pode se ajustar
MaxRequestsPerChild
a algo diferente de 0 (ilimitado). Isso matará os funcionários do Apache quando eles atenderem a um número fixo de solicitações (forçando-os a abrir mão da memória vazada no processo.Comece com valores maiores (mais ou menos aos milhares) e desça às centenas. Se você receber menos de 100 solicitações por filho, seu vazamento de memória é grande o suficiente para justificá- lo, pois o desempenho atingido ao matar constantemente e gerar novamente trabalhadores apache será significativo.
Re: qual mpm para ajustar, a resposta é quase certamente
prefork
.Você pode correr
httpd -V
e procurar aServer MPM:
linha que lhe dirá com certeza.fonte
Para definir o uso de memória do processo apache, você deseja ajustar os MaxClients.
A regra geral é: (Máxima memória desejada) / (Uso de memória de 1 processo Apache) = # Máximo de clientes
No final, você também precisa ajustar seu MaxSpareServers <= Max Clients .
O uso da memória de um processo depende fortemente dos módulos que você carregou (php e assim por diante), portanto, você pode definir um número menor de clientes Max.
fonte