Почему выполнение php5-fpm замедляется только при активном множестве сайтов WordPress?

Я использую стек LEMP с отдельными пулами php5-fpm для двух страниц wp. Файлы конфигурации пула nginx и php5-fpm идентичны, за исключением имен сайтов и сокетов. Я делаю статические бассейны с 2 работниками в каждом.

Наблюдаемые явления следующие:

  • Если у меня активен только один сайт, он очень быстро загружает ответ <<1s.
  • Если у меня активны два сайта, первый отклик сайта переходит к 1s, а второй >10s - часто достигая тайм-аута 504.
  • Если я не использую разные пулы для разных сайтов, то оба замедляются до 2-10 времени ожидания ответа.
  • Замедление происходит только на запросах php, статические запросы файлов не затронуты.
  • Подобное явление произошло, когда я попробовал стек LAMP.

Что здесь идет не так? Где может быть проблема? Как я мог отследить это? Я не мог понять, какие параметры ведения журнала/отладки/статистики у меня есть... :(

Edit:

Это этап разработки, сайт с очень низким трафиком, поэтому проблема не может заключаться в том, что у меня заканчиваются работники. У меня есть одна просьба.

0
задан 29 August 2016 в 16:17
1 ответ

Если у вас есть статические пулы с двумя воркерами в каждом, у вас в основном заканчиваются воркеры для сценариев PHP все время.

Если два запроса поступают в одно и то же время, нужно дождаться завершения запроса, пока не будет обработан следующий запрос. Если одновременно поступают десятки запросов (например, index.php и любые сценарии, обслуживающие контент AJAX), для загрузки одной страницы потребуется несколько одновременных рабочих процессов. Если количество воркеров ограничено двумя, один запрос должен завершить загрузку до тех пор, пока не будет обработан следующий.

Итак, я рекомендую использовать динамические пулы минимум с десятью воркерами и максимум с 20 для начала. Следите за своим php5-fpm.log на предмет сообщений, которые рекомендуют добавить больше рабочих, и увеличивайте максимальное количество рабочих в соответствии с этим.

Если ваш сервер не может обрабатывать большее количество рабочих, вам необходимо получить больше ресурсов.

1
ответ дан 4 December 2019 в 16:30

Теги

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