OOM убивает мой PHP FPM после обновления версии LTS Ubuntu
Вчера я выполнил обновление выпуска, которое включало обновление PHP 7.4 до 8.2.
Сначала я подумал, что проблема может быть в версии PHP (т.к.php8.2-fpm
сервис, который продолжал умирать), поэтому я вернулся кphp7.4-fpm
, но это не решило проблему.
php7.4-fpm.service: A process of this unit has been killed by the OOM killer.
php7.4-fpm.service: Failed with result 'oom-kill'.
php7.4-fpm.service: Consumed 12min 18.367s CPU time.
У меня есть сокеты сайта, организованные по пулам.
У всех такая конфигурация:
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
Обслуживание прекращается примерно через 1 час. Поэтому я решил представитьmax_requests
ограничение
pm.max_requests = 1000
А потом все стало намного стабильнее, но закончилось падением примерно через 12 часов. Так что теперь я боюсь, что простая настройка и дальнейшее уменьшение этого числа приведет к тому, что сервер просто упадет позже, но упадет в какой-то момент, что не идеально. Самое странное здесь то, что до обновления (Ubuntu 20.04 LTS) он был на 100% стабильным и никогда не падал, а после обновления до Ubuntu 22.04 LTS все пошло не так.
После повторного рассмотрения многих других вопросов в Server Fault и Super User, касающихся OOM, у меня заканчиваются идеи для тестирования дополнительных вариантов, поэтому мне интересно, может ли кто-нибудь предложить мне другие новые возможности для тестирования.
1 ответ
Произошла утечка памяти из-за плагина Wordpress (WP-Rocket).
Я смог определить это благодаря этому ответу в другом вопросе:
https://stackoverflow.com/a/20590805/4442122
Это указывало на точное место, где произошла утечка. Спустившись вниз, я нашел причину. Это было совсем не просто, особенно потому, что за ним стояла массивная система (WP), поэтому проблема могла возникнуть откуда угодно (особенно потому, что в WP все загружается из домашнего index.php).