Pentru a optimiza Apache-ul, trebuie sa tinem cont de memoria RAM totala disponibila pe server. Astfel putem decide cata memorie vom permite Apache-ului sa folosesca - mai exact nr de procese x consumul de memorie per process

Putem sa aflam cata memorie consuma un proces apache folosind comenzile de mai jos.

Verificare utilizare memorie proces apache

ps aux | grep 'httpd' | awk '{print $6/1024 " MB";}'

Aceeasi comanda, insa acum calculeaza utilizarea memoriei in medie per proces.

ps aux | grep 'httpd' | awk '{print $6/1024;}' | awk '{avg += ($1 - avg) / NR;} END {print avg " MB";}'

Pentru optimizarea apache, se poate folosi scriptul Apache2Buddy, care ofera detalii amanuntite despre situatia apache-ului pe server in momentul testarii.

curl -sL https://raw.githubusercontent.com/richardforth/apache2buddy/master/apache2buddy.pl | perl

Optimizare apache

Ca si formula de calcul impartim totalul de RAM (minus 10% - lasam 10% ram liber pentru sistem si alte procese) la consumul mediu de memorie a proceselor apache. Astfel obtinem valorile MaxClients/ServerLimit.

Mai departe, calculam restul valorilor dupa cum urmeaza:

StartServers 30% din MaxClients
MinSpareServers 5% din MaxClients
MaxSpareServers 10% din MaxClients
ServerLimit == MaxClients
MaxConnectionsPerChild 2000