@wtfowned

Оптимизация Apache. Как увеличить максимальное количество Apache Connects?

Добрый день! Есть север нагруженый, не могу разобраться с оптимизацией, подскажите пожалуйста. Просьба не советовать убить индейца, индеец нужен из за специфики сайтов!

5d930ff30a41e464626519.png
упираются коннекты регулярно в потолок 300, хотя стоит 400 в конфиге.

Почему так и что поменять? UPD - вроде понял, надо ServerLimit поставить больше, хотя я сколько не пытался разобраться так и не понял что означают эти значения все ниже, не понятно что значит ServerLimit в частности и почему так много процессов апача создается (иногда видел по 300+, подвисших, помогал только рестарт апача).

Конфиг такой (апач в режиме префорка):
<IfModule mpm_prefork_module>
    StartServers          8
    MinSpareServers       5
    MaxSpareServers      20
    ServerLimit         256
    MaxClients          400
    MaxRequestsPerChild 10000
</IfModule>


1. Теоритически, если я правильно понимаю у меня может быть с текущим конфигом MaxSpareServers
20 параллельно работающих серверов (процессов апача), при этом каждый из них держать до ServerLimit 256 коннектов, но максимально MaxClients 400? А MaxRequestsPerChild это количество запросов к одному из серверов после чего он будет убит, и запущен новый? Правильно ли я разобрался?

2. Как различить ApacheServer те что указаны в конфиге как StartServers от Child потока этого сервера?

3. У меня большая нагрузка на HDD диски идет, из-за этого как я понимаю CPU сильно загружен, но есть 20 GB свободных (40 из 64 забирает MYSQL).
График Zabbix
5d93133daa847032873701.png
Но 1 процесс апача может кушать до 200 мб оперативки. Это связано с тем чт оу меня около 2 гб кода PHP (wordpress много сайтов), и стоит php opcache, соответственно начинает очень быстро расти потребляемая память на процесс.
Память на процесс Apache = 53МБ, всего 6500МБ
root@95:~# ps -ylC apache2 | awk '{x += $8;y += 1} END {print "Apache Memory Usage (MB): "x/1024; print "Average Process Size (MB): "x/((y-1)*1024)}'
Apache Memory Usage (MB): 6487.27
Average Process Size (MB): 53.1743

При этом пользователи у меня как правило совершают штучные запросы, а сайтов сотни. Как правильно сделать:
3.1 Сделать MaxRequestsPerChild= 100000+ , тогда будет всего MaxSpareServers ~ 100 максимум т.к. каждый будет занимать по 200Мб
3.2 Сделать MaxRequestsPerChild= 1000 и MaxSpareServers = 1000 которые при старте занимают всего 20МБ, тогда теряется смысл Opcache или нет? Почему нужен OPcache потому чт ос ним сайты работают очень быстро, но я не понимаю процесса хранения скомпилированного кода (где он хранится, когда убивается?) и как это лучше оптимизировать.

Контакты ваши приветствуются в Телеграм, отблагодарю и возможно под ключ работу, если сможете мне все объяснить и сделать.
  • Вопрос задан
  • 2391 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Meinl
Первым делом желательно убедиться что модуль MPM вообще включен.
А дальше по https://oxpedia.org/wiki/index.php?title=Tune_apac...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы