optimizacija_nastroek_mpm_prefork
Оптимизация настроек mpm_prefork
При настройке необходимо учитывать следующие факторы:
- Количество ОЗУ на сервере
- Сколько памяти в процентах мы готовы пожертвовать Apache
- Сколько кушает в среднем один httpd
- Сколько мы можем запустить параллельно httpd чтобы не превысить пункт (2)
Формула расчёта максимального количества пользователей Apache выглядит примерно так:
(“вся память”-“25%”)/(“вся память использованная для всех процессов httpd”/“количество httpd процессов”)
Скрипт для расчёта оптимальных значений
- Создание файла скрипта
cat > apache_prefork.sh <<EOF #!/bin/bash TotalMem=\$(free -m | grep Mem | awk '{ print \$2 }') HttpMem=\$(ps aux | egrep 'httpd|apache2' | grep -v grep | awk '{sum +=\$6}; END {print sum}') HttpCount=\$(ps aux | egrep 'httpd|apache2' | grep -v grep | wc -l) Http1tread=\$(echo "\$HttpMem/\$HttpCount/1024" | bc) HttpMaxTreads=\$(echo "\$TotalMem/100*75/\$Http1tread" | bc) StartServers=\$(echo "\$HttpMaxTreads/5" | bc) MinSpareServers=\$StartServers MaxSpareServers=\$(echo "\$MinSpareServers*2" | bc) ServerLimit=\$HttpMaxTreads MaxClients=\$HttpMaxTreads MaxRequestsPerChild=\$(echo "\$MaxClients*\$MinSpareServers" | bc) echo -e " <IfModule prefork.c> StartServers\t \$StartServers MinSpareServers\t \$MinSpareServers MaxSpareServers\t \$MaxSpareServers ServerLimit\t \$ServerLimit MaxClients\t \$MaxClients MaxRequestsPerChild\t \$MaxRequestsPerChild </IfModule> " EOF
Или
nano apache_prefork.sh
#!/bin/bash TotalMem=$(free -m | grep Mem | awk '{ print $2 }') HttpMem=$(ps aux | egrep 'httpd|apache2' | grep -v grep | awk '{sum +=$6}; END {print sum}') HttpCount=$(ps aux | egrep 'httpd|apache2' | grep -v grep | wc -l) Http1tread=$(echo "$HttpMem/$HttpCount/1024" | bc) HttpMaxTreads=$(echo "$TotalMem/100*75/$Http1tread" | bc) StartServers=$(echo "$HttpMaxTreads/5" | bc) MinSpareServers=$StartServers MaxSpareServers=$(echo "$MinSpareServers*2" | bc) ServerLimit=$HttpMaxTreads MaxClients=$HttpMaxTreads MaxRequestsPerChild=$(echo "$MaxClients*$MinSpareServers" | bc) echo -e " <IfModule prefork.c> StartServers\t $StartServers MinSpareServers\t $MinSpareServers MaxSpareServers\t $MaxSpareServers ServerLimit\t $ServerLimit MaxClients\t $MaxClients MaxRequestsPerChild\t $MaxRequestsPerChild </IfModule> "
- Выполнение скрипта
bash ./apache_prefork.sh
На выходе получаем результат:
<IfModule prefork.c> StartServers 23 MinSpareServers 23 MaxSpareServers 46 ServerLimit 116 MaxClients 116 MaxRequestsPerChild 2668 </IfModule>
Копируем и заменяем текущие настройки в конфигурационном файле apache.
optimizacija_nastroek_mpm_prefork.txt · Последнее изменение: 2015/09/24 00:00 (внешнее изменение)