Установка и настройка EarlyOOM в Debian

Установка и настройка EarlyOOM в Debian

В этой статье описывается установка и настройка 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

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

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


Unlix.ru © Все права защищены 2015 - 2026

Копирование материалов с сайта Unlix.ru без указания полной ссылки на источник ЗАПРЕЩЕНО!