Configurações do Preachek do Apache, de acordo com as diretrizes de ajuste de desempenho do apache
citação:
The single biggest hardware issue affecting webserver performance is RAM.
A webserver should never ever have to swap, as swapping increases the latency
of each request beyond a point that users consider "fast enough".
This causes users to hit stop and reload, further increasing the load.
You can, and should, control the MaxClients setting so that your server does
not spawn so many children it starts swapping. This procedure for doing this
is simple: determine the size of your average Apache process, by looking at
your process list via a tool such as top, and divide this into your total
available memory, leaving some room for other processes.
você deve configurá-lo assim com base em sua entrada para:
- Memória total: 128 GB
- -10% de memória para tudo, exceto o apache: 115 GB
- Agora precisamos descobrir o quanto o processo de apache único está usando.
Para calcular isso, você pode usar o seguinte script:
pgrep apache2 | xargs -n1 -I{} cat /proc/{}/smaps | \
awk '{if ($0 ~ /stack/) {pids+=1} else if ($0 ~/^Shared_/)
{shared+=$2} else if ($0 ~ /^Pss:/) {priv+=$2}} END {
printf "%.2f MB\n",(priv+shared/(pids*pids))/1024}'
Esta é a melhor estimativa de quanto um único processo apache está usando memória ao tentar dividir proporcionalmente o uso compartilhado por número de processos apache ativos e adicioná-lo ao topo de Pss (tamanho do conjunto proporcional)
Por fim, você divide 115 GB com essa figura e obtém MaxClients/ServerLimit
. A partir daqui, você pode calcular relativamente outros números como
-
StartServers
30% de MaxClients -
MinSpareServers
5% de MaxClients -
MaxSpareServers
10% de MaxClients -
ServerLimit
== MaxClients -
MaxConnectionsPerChild
10000 (como alternativa conservadora para resolver possíveis problemas com aplicativos com vazamento de memória)