Skip to content

Runbook: Усунення інцидентів Nginx OOM-Kill

1. Огляд інциденту

Сервіс Nginx періодично припиняв роботу через втручання системного механізму OOM Killer (Out of Memory Killer). Система примусово завершувала процес веб-сервера, щоб запобігти повному зависанню ядра Linux через брак оперативної пам'яті.

Хронологія та симптоми:

  • 18 Лютого: Перші зафіксовані збої (status=9/KILL).
  • 18 Березня, 19:38: Повторний критичний збій. Nginx було вбито під час виконання системних завдань.
  • Лог помилки: nginx.service: A process of this unit has been killed by the OOM killer. nginx.service: Failed with result 'oom-kill'.

2. Аналіз кореневої причини (Чому це сталося)

Проблема не в самому Nginx, а у вичерпанні ресурсів сервера сторонніми процесами.

"Cron-бомба":

Під час аудиту планувальника завдань (crontab) користувача se3u25r9 було виявлено 661 дублікат наступного завдання: 13 38 * * * /usr/local/bin/mogwai backup:plan

Механізм збою: О 19:38 система намагається одночасно запустити понад 600 важких процесів резервного копіювання. Це спричиняє миттєвий сплеск споживання RAM та CPU. Оскільки пам'ять закінчується миттєво, OOM Killer обирає Nginx як "жертву", оскільки він часто має багато відкритих з'єднань і споживає значний об'єм пам'яті в цей момент.

Важливий контекст: Ці бекапи є "спадком минулого". Раніше вони були потрібні, але зараз хостинг забезпечує нативне резервне копіювання.


3. Інструкція з вирішення (Як виправити)

Крок 1: Повне видалення застарілих завдань

Оскільки ці бекапи більше не потрібні, їх слід видалити повністю(через панель!).

  1. Створення резервної копії кронтабу (про всяк випадок): ```bash crontab -u se3u25r9 -l > /root/se3u25r9_cron_backup.txt