Воркеры php-fpm неожиданно начинают потреблять значительно больше CPU?



@Jsty

Есть сервис, который с периодичностью в 30 минут запускает большое кол-во запросов в отношении php приложения.

$ php-fpm7.3 --version
PHP 7.3.19-1~deb10u1 (fpm-fcgi) (built: Jul  5 2020 06:46:45)
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.19, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.19-1~deb10u1, Copyright (c) 1999-2018, by Zend Technologies

$ php --version
PHP 7.3.19-1~deb10u1 (cli) (built: Jul  5 2020 06:46:45) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.19, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.19-1~deb10u1, Copyright (c) 1999-2018, by Zend Technologies

Время от времени по неясным причинам эти запросы начинают создавать нагрузку сильно больше, чем было.
60709c378e358989642950.png

Затем выполняется `systemctl restart php7.3-fpm.service` и все приходит в норму.
60709c5b3e86a737875830.png

Рестарт каждый раз выполняется через разные промежутки времени и всегда помогает решить эту проблему до следующего проявления. Может пройти 5-15 дней.

$ grep -v '^;' /etc/php/7.3/fpm/pool.d/www.conf | grep -v '^$'
[www]
user = www-data
group = www-data
listen = /run/php/php7.3-fpm.sock
listen.backlog = 1024
listen.owner = www-data
listen.group = www-data
pm = static
pm.max_children = 50
pm.max_requests = 50
pm.status_path = /status
ping.path = /ping
rlimit_files = 8192

Кол-во воркеров 50 выведено эмпирическим путем.
На сервере больше ничего не крутится, только php-fpm. БД и другие необходимые части приложения на других серверах.


Решения вопроса 0


Ответы на вопрос 2



@SilenceOfWinter

вполне вероятно что параллельно идет какая-нибудь проверка обновлений или индексирование запускается..



@AUser0

Смотрите логи, отслеживайте запуск программ. Отчетливо видно, что у вас каждые 10 минут что-то запускается (маленькие короткие всплески), ну и каждые 30 минут — уже известный вам php-fpm. Но в какой-то момент что-то происходит, что поднимает нагрузку на CPU на заметный уровень. Если нагрузка снимается перезапуском php-fpm — тогда что вам стоит перед перезапуском проверить нагрузку системы (вывод top/htop/iotop/ps axf…)? Ну и логирование работы php-скриптов, которые работают под php-fpm, разумеется.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *