В этой статье описывается установка и настройка EarlyOOM (Out of Memory) для предотвращения полного исчерпания памяти в Debian.
EarlyOOM отслеживает доступную память и свободный swap, убивая самые «прожорливые» процессы до того, как система станет неотзывчивой.
1. Установка EarlyOOM
В Debian 10+ и Ubuntu 18.04+ пакет earlyoom доступен в официальных репозиториях:
srv@unlix.ru:~# sudo apt update srv@unlix.ru:~# sudo apt install earlyoom -y
2. Настройка автозапуска
Служба автоматически включается после установки, но можно явно убедиться:
srv@unlix.ru:~# sudo systemctl enable earlyoom srv@unlix.ru:~# sudo systemctl start earlyoom
3. Настройка параметров EarlyOOM
Параметры запуска задаются в файле /etc/default/earlyoom. Откройте его в текстовом редакторе:
srv@unlix.ru:~# sudo nano /etc/default/earlyoom
Добавьте или измените строку с аргументами, например:
EARLYOOM_ARGS="-m 10 -s 75 -r 3600 --avoid '(^|/)(init|ssh|chromium|firefox|gnome|gnome-shell|Xorg|Telegram)$'"
Разъяснение ключевых опций:
-m 10— отправлятьSIGTERM, когда доступная память опустится ниже 10 % от общей.-s 75— активировать защиту, только если свободный swap также ниже 75 % (по умолчанию 10 %).-r 3600— выводить отчёт о состоянии памяти раз в час (в секундах).--avoid '...'— исключить из убийства критические процессы.
Сохраните файл и закройте редактор (Ctrl+O, Enter, Ctrl+X в nano).
4. Применение настроек
Убедитесь, что права на файл корректны:
srv@unlix.ru:~# sudo chown root:root /etc/default/earlyoom srv@unlix.ru:~# sudo chmod 0644 /etc/default/earlyoom
Перезапустите службу, чтобы применить изменения:
srv@unlix.ru:~# sudo systemctl restart earlyoom
5. Проверка работы
Посмотреть текущий статус службы:
srv@unlix.ru:~# systemctl status earlyoom
Для тестирования можно искусственно создать потребление памяти:
srv@unlix.ru:~# tail /dev/zero
Если EarlyOOM сработает, в логах будет запись вида:
Feb 20 10:59:34 unlix.ru earlyoom[10231]: sending SIGTERM to process 7378 uid 1000 "tail": oom_score 156, VmRSS 4962 MiB

