При настройке необходимо учитывать следующие факторы:
Формула расчёта максимального количества пользователей 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.