TToolBox
💻
💻 dev
11 апреля 2026 г.7 мин чтения

Как оптимизировать PHP-FPM для Laravel: воркеры, память, процессы

Как оптимизировать PHP-FPM для Laravel: воркеры, память, процессы
В этой статье

Для ускорения Laravel нужно правильно задать количество воркеров, лимит памяти и параметры управления процессами в php‑fpm.conf — это повышает пропускную способность до 30 % и снижает расходы на серверы.

Оптимизировать PHP‑FPM для Laravel можно, задав правильное количество воркеров, лимит памяти и параметры процесса в конфигурации php‑fpm.conf — это повышает производительность, экономит ресурсы и позволяет обслуживать до 30 % больше запросов без дополнительных расходов.

Как определить оптимальное количество воркеров в PHP‑FPM для Laravel?

Оптимальное число воркеров рассчитывается исходя из количества CPU‑ядер и характера нагрузки; простая формула workers = (CPU cores × 2) + 1 дает хороший старт.

  • Шаг 1. Узнайте количество ядер: nproc в Linux возвращает, например, 8 ядер.
  • Шаг 2. Подставьте в формулу: (8 × 2) + 1 = 17 воркеров.
  • Шаг 3. Откройте /etc/php/8.2/fpm/pool.d/www.conf и установите pm.max_children = 17.
  • Шаг 4. Перезапустите сервис: systemctl restart php8.2-fpm.
  • Шаг 5. Проверьте нагрузку через htop — если процессор загружен > 80 % при 100 % запросов, уменьшите pm.max_children на 10‑15 %.

Почему важен лимит памяти (memory_limit) и как его настроить?

Лимит памяти защищает от «утечек» и падения воркеров; правильный memory_limit гарантирует, что каждый процесс Laravel будет иметь достаточно RAM для обработки запросов без перерасхода.

  • Рекомендация 2026 года: установить memory_limit = 256M для типовых API‑приложений и 512M для тяжёлых админ‑панелей.
  • Проверьте текущий расход: ps -o rss,cmd -C php-fpm — средний RSS 180 MB, значит 256 M — безопасный запас.
  • Измените в php.ini или в пуле www.conf параметр php_admin_value[memory_limit] = 256M.
  • Перезапустите FPM и наблюдайте за slowlog — падения из‑за OOM исчезнут.

Что делать, если приложение Laravel падает из‑за переполнения очереди запросов?

Если запросы откладываются в очередь, первым делом проверьте pm.max_children и pm.max_requests — они отвечают за количество обслуживаемых запросов и перезапуск воркеров.

  • Установите pm.max_requests = 500 — воркер будет перезапускаться после 500 запросов, очищая память.
  • Добавьте request_terminate_timeout = 30s для принудительного завершения «зависших» процессов.
  • Настройте очередь Laravel (Redis, Beanstalkd) с лимитом retry_after = 90 секунд, чтобы запросы не «залипали» в PHP‑FPM.
  • В случае постоянных падений увеличьте pm.max_children на 20 % и проверьте нагрузку CPU.

Как настроить процессное управление (pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers) в PHP‑FPM?

Эти параметры задают динамику создания и уничтожения воркеров; правильные значения позволяют быстро реагировать на всплески трафика.

  • pm = dynamic — режим, когда FPM сам регулирует количество процессов.
  • pm.max_children — максимум воркеров, рассчитывается как в формуле выше.
  • pm.start_servers — стартовое количество, обычно ceil(pm.max_children / 3). Для 17 воркеров: 6.
  • pm.min_spare_servers — минимум свободных воркеров, обычно 2‑3.
  • pm.max_spare_servers — максимум свободных, обычно 5‑7.
  • Пример конфигурации:
    pm = dynamic
    pm.max_children = 17
    pm.start_servers = 6
    pm.min_spare_servers = 3
    pm.max_spare_servers = 7
    pm.max_requests = 500

Какие дополнительные параметры ускоряют Laravel в 2026 году?

Современные версии PHP 8.2 и Laravel 10 поддерживают ускорители, которые стоит включать вместе с настройкой FPM.

  • Включите OPcache: opcache.enable=1, opcache.memory_consumption=256, opcache.max_accelerated_files=20000.
  • Настройте realpath_cache_size до 4096k — ускоряет разрешение путей в Laravel.
  • Для API‑приложений установите fastcgi.logging = 0 — уменьшает логирование на уровне FastCGI.
  • Используйте HTTP/2 на Nginx, комбинируя с keepalive_timeout 65 и keepalive_requests 1000.
  • Экономьте: при правильных настройках можно сократить расходы на облачный сервер до 1 500 руб. в месяц вместо 3 200 руб.
Воспользуйтесь бесплатным инструментом PHP‑FPM Tuner на toolbox-online.ru — работает онлайн, без регистрации.
Поделиться:

Теги

#php-fpm#laravel#оптимизация#сервер#devops

Похожие статьи

Материалы, которые могут вас заинтересовать