Пришла заявка на то, что один из Nginx серверов недоступен. Сама виртуальная машина работает, однако, замечаю, что она светится красным по CPU. В событиях есть ошибка: Alarm 'Virtual machine CPU usage' changed from Green to Red Проблема возникла вчера в 18:13. Смотрим исторические значения CPU в Zabbix. Проблема явно есть, здесь получаем более точное время проблемы. Это 18:04. Открываю консоль KVM и вижу, что в STDERR есть записи о том, что nginx убит по OOM, и прочие сервисы типа redis тоже убиты по OOM. Удаётся зайти на машину по SSH. Смотрим htop. Память свободна, но все процессы nginx в 100%. Берем PID одного процесса и смотрим что он делает. # strace -p 753985 -f -e trace=file,network
strace: Process 753985 attached Ждём 10 минут, в терминале тишина. Значит процесс не делает никаких системных вызовов (файловых операций и сетевых), но при этом показывает 100% CPU в htop. Это классический признак бесконечного цикла в пользовательском пространстве — процесс крутится внутри кода nginx