У меня есть сервер под управлением Plesk / nginx / Apache / PHP. Он имеет сотни доменов, указывающих на один экземпляр Drupal.
Проблема Если в одном домене наблюдается большой всплеск трафика c, он достигает PHP pm.max_children. установка. Когда это происходит, похоже, что многие Apache рабочих связывают в ожидании PHP. В других доменах производительность снижается, предположительно из-за того, что используются все рабочие Apache.
Apache соединений
Apache рабочих и Apache соединений иметь предел 1000. Я не могу понять, почему он не выше, основываясь на нашей конфигурации Apache (ниже).
Увеличение PHP pm.max_children для этого домена уменьшило проблему, и ничто не мешает мне поднять его до действительно высокого уровня во всех областях. На сервере достаточно свободного ОЗУ.
Однако я думаю, что для решения проблемы root требуется больше.
Вопросы
Можете ли вы вспомнить, почему Apache соединений будет ограничено до 1000?
Есть идеи по решению этой проблемы? Должен ли я увеличить pm.max_children до действительно высоких значений во всех доменах и добавить глобальное ограничение для PHP children?
Apache Config
ServerLimit 250
StartServers 8
MaxClients 6000
MaxRequestWorkers 6000
MinSpareThreads 100
MaxSpareThreads 500
ThreadsPerChild 50
ThreadLimit 50
MaxRequestsPerChild 20000
Для Apache процессов в / proc / [processid] / limit 16384 Максимальное количество открытых файлов