PHP-FPM Linux

PHP-FPM: server reached pm.max_children и ответы 503/504

  • Обновлено
  • Чтение ≈ 2 минуты

Краткий ответ

Предупреждение значит, что все процессы заняты. Найдите медленные запросы, увеличьте max_children при наличии памяти и включите кэширование.

В этой статье
  1. Что означает ошибка
  2. Причины и признаки
  3. Пошаговое решение
  4. Проверка результата

#Что означает ошибка

Сообщение
server reached pm.max_children

Предупреждение значит, что все процессы заняты. Найдите медленные запросы, увеличьте max_children при наличии памяти и включите кэширование.

#Причины и признаки

Возможная причинаКак узнатьЧто делать
Все процессы занятыПрочитайте относящуюся к этому компоненту запись в журнале до изменения конфигурации.Увеличьте.
Медленные запросыПрочитайте относящуюся к этому компоненту запись в журнале до изменения конфигурации.Оптимизируйте.
Ботов многоПрочитайте относящуюся к этому компоненту запись в журнале до изменения конфигурации.Ограничьте.
Утечки памятиПроверьте фактическое потребление памяти и наличие места для временных файлов в момент сбоя.pm.max_requests.

#Пошаговое решение

  1. Читайте логОткройте журнал соответствующего пула PHP-FPM и найдите строку server reached pm.max_children setting со временем. Запишите, сколько процессов было занято и какие страницы тогда запрашивались. В панели хостинга уточните, какая версия PHP и какой пул действительно обслуживают домен; имя php8.3-fpm в примерах не универсально.
  2. Найдите медленные запросыЧерез SSH посмотрите параметры реального пула: pm, pm.max_children, pm.max_requests, pm.status_path и журнал медленных запросов. Сравните доступную память free -h и фактический расход PHP-процессов. Если каждый процесс занимает много памяти, простое увеличение pm.max_children может вызвать убийство процессов ядром.
  3. Настройте пулЕсли рост числа занятых процессов вызван конкретным SQL-запросом, внешним API или зависшим скриптом, исправляйте его или включите временный slowlog с ограниченным доступом. Проверьте журнал MySQL и приложение; системное замедление не устраняется бесконечным увеличением параллелизма.
  4. Проверьте альтернативу: утечки памятиПри достаточном запасе памяти рассчитайте разумный новый лимит, сохраните копию файла пула, проверьте синтаксис PHP-FPM командой для установленной версии и перезагрузите только этот пул в окно обслуживания. Затем повторите нагрузку, измерьте очередь, ошибки 503/504 и свободную память; если стало хуже, верните прежний лимит.

#Проверка результата

Для «PHP-FPM: server reached pm.max_children и ответы 503/504» выполните штатную проверку конфигурации, затем один контрольный запрос к сервису. Сверьте его результат с журналом и убедитесь, что пользователи не получили новых ответов 4xx или 5xx после изменения.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.