WordPress: PHP-FPM pool (pm dynamic) — без перегруза CPU
Настройка пула www в PHP-FPM для WordPress: pm = dynamic, max_children по RAM, max_requests. Файл pool.d/www.conf, проверка потребления памяти.
Как использовать
- Файл: /etc/php/8.2/fpm/pool.d/www.conf. Подставьте блок [php-fpm pool] и перезапустите php8.2-fpm.
- max_children ориентируйте по RAM: примерно RAM / 60MB на процесс.
- Проверка памяти: ps --no-headers -o rss,cmd -C php-fpm8.2 | awk '{sum+=$1} END {print sum/1024 " MB"}'
При малом числе воркеров PHP-FPM под нагрузкой создаёт очереди; при избытке — CPU и память перегружаются. Для WordPress на VPS обычно используют pm = dynamic и считают max_children по доступной RAM.
Блок для pool.d/www.conf
Файл: /etc/php/8.2/fpm/pool.d/www.conf.
pm = dynamic
pm.max_children = 20
pm.start_servers = 4
pm.min_spare_servers = 4
pm.max_spare_servers = 8
pm.max_requests = 500
pm = dynamic— число воркеров меняется в заданных пределах. Не используйтеondemandна проде под нагрузку — задержки при старте процессов.max_children— максимум одновременных процессов. Ориентир: RAM / 60MB (например, 2 GB → около 30).pm.max_requests— после скольких запросов воркер перезапускается; снижает риск утечек памяти. 500–1000 нормально для WordPress.
Проверка потребления памяти
ps --no-headers -o "rss,cmd" -C php-fpm8.2 | awk '{ sum+=$1 } END { print sum/1024 " MB" }'
Подробнее: WordPress: ускоряем Nginx + PHP-FPM до TTFB меньше 300 мс.