De http://httpd.apache.org/docs/2.2/misc/perf-tuning.html
O maior problema de hardware que afeta o desempenho do servidor web é a RAM. Um servidor da web nunca deve ter que trocar, pois a troca aumenta a latência de cada solicitação além de um ponto que os usuários consideram "rápido o suficiente". Isso faz com que os usuários pressionem parar e recarregar, aumentando ainda mais a carga. Você pode e deve controlar a configuração do MaxClients para que seu servidor não gere tantos filhos que comece a trocar. Este procedimento para fazer isso é simples: determine o tamanho do seu processo Apache médio, examinando sua lista de processos por meio de uma ferramenta como top e divida-o em sua memória total disponível, deixando espaço para outros processos.
A questão principal é que não consigo entender como saber o tamanho, porque, bem, eu tenho o tamanho do httpd no máximo 3888
Mas, se precisarmos determinar o número do MaxClients e eu tiver 4 GB de RAM, recebo: 972, então devo usar como 900 no MaxClients?
fonte
Respostas:
Primeiro, determine o PID de um dos seus processos Apache.
Então você pode fazer algo assim:
cat /proc/PIDHERE/status | grep VmRSS
Isso produzirá o tamanho (atual) do conjunto de residentes desse processo específico, semelhante a:
VmRSS: 304456 kB
Esse valor é o que parece, é o tamanho do processo residente na RAM.
Em seguida, normalize sua unidade de medida (
4GB * 1024 * 1024 = 4,194,304 KB
). Dividir:4194304 KB / 304456 KB = 13.77 processes
Considere que você provavelmente possui outros processos em execução no seu sistema que também consumirão memória e, idealmente, deseja minimizar a troca, portanto, provavelmente não deseja que seja configurado (usando meus números), você deseja uma quantia menor (a seu critério) )
Esta é uma estimativa grosseira; o tamanho dos processos do Apache pode aumentar com o tempo, dependendo da carga.
fonte
Prever os maxClients a partir de cenários de teste é um ponto de partida - mas para resolver o problema corretamente, você precisa começar a avaliar como seu aplicativo está se comportando com tráfego real.
Supondo que seu apache esteja executando o pré-fork ....
Configure um trabalho cron para contar o número de processos httpd e a saída de 'free'. Observe que, se o servidor da web estiver fornecendo conteúdo de arquivos locais (e em muitos casos, mesmo quando não estiver), a quantidade de memória disponível para cache / buffers terá um grande impacto no desempenho. ou seja, se você chegar ao ponto de trocar, seu desempenho na web provavelmente será horrível!
Depois de obter alguns dados, plote-os em um gráfico e faça uma regressão de mínimos quadrados - extrapole para encontrar o número de clientes nos quais você atinge seu limite de destino para o uso da memória httpd. Um ponto de partida para o destino da memória seria o menor de 80% da memória física / 80% do tamanho do conteúdo.
(observe que se o MinSpareServers está definido com um valor muito alto, os resultados podem não ser precisos)
Em um mundo ideal, você também mede o tempo de resposta da URL no mesmo arquivo de log - mas isso está ficando muito mais complexo.
fonte