Apache макс. При 1000 подключений, ожидающих PHP - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть сервер под управлением 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 Максимальное количество открытых файлов

...