earlyoom https://github.com/rfjakob/earlyoom
Простой, лёгкий, стабильный. VmRSS меньше мегабайта, нагрузка на процессор
околонулевая. С релиза 1.3 стал очень надёжен (исправлено возможное убийство
невиновных). Лучший выбор для домохозяек, которым не нужны лишние настройки, а
нужна хорошая работа из коробки. Поддержка PSI обсуждается
(https://github.com/rfjakob/earlyoom/issues/100 - автор давно собирался
добавить поддержку PSI, но в последнее время засомневался в целесообразности
этого. Проводятся работы по убеждению сенсея в необходимости добавления
поддержки PSI).
Присутствует в репозиториях Fedora, Ubuntu 18.04+ и Debian 10+. Начиная с
версии 1.3 могу смело рекомендовать его в качестве дефолтного киллера для
десктопа. Начиная с
версии 1.3 могу смело рекомендовать его в качестве применяемого по умолчанию
oom-killer для десктопа. Будет [[https://pagure.io/fedora-workstation/issue/119 включён[[ в Fedora 32 Workstation по умолчанию.
nohang https://github.com/hakavlad/nohang
Явная и очень гибкая конфигурация. Десятки параметров настройки в конфиге.
Подробная печать свойств завершаемого процесса. Печать таблицы процессов со
свойствами всех процессов перед корректирующим действием. Возможность реакции
на PSI (pressure stall information, https://lwn.net/Articles/759658/) с выбором
произвольной метрики и сигруппы для мониторинга. Возможность кастомизации
корректирующих действий: отправка жертве любого сигнала (помимо
SIGTERM/SIGKILL) или выполнение произвольной команды. Возможность тонкого
влияния на badness процесса путем сопоставления его name, cmdline, cgroup, exe
realpath c заданным регулярным выражением. Уведомления о низком уровне памяти
(произвольной командой или через notify-send). Подготовлены пакеты для Fedora
и CentOS 7.
Минусы: мало документации. Хочу релизнуться, но лень писать документацию. Можно
рекомендовать тем, кому не хватает возможностей earlyoom (у последнего нет
поддержки PSI и уведомлений о нехватке памяти).
oomd https://github.com/facebookincubator/oomd
Работает только с сигруппами - минимальным объектом для корректирующего
действия является сигруппа. Это означает, что при применении на десктопе oomd
убъёт всю сессию посредством SIGKILL. В связи с этим рекомендуется только для
крупных высоконагруженных серверов. Плюс требования: работает только с systemd,
cgroup2 должна быть единственной иерархией, иерархия cgroup_v1 должна быть
отключена + требуется ядро с поддержкой PSI + своп должен быть включен (без
свопа oomd бесполезен). Плюс oomd заметно грузит CPU - нагрузка в 4.5% в
порядке вещей (We see this internally too. Something like 4.5% of a core all
the time. -
https://github.com/facebookincubator/oomd/issues/79#issuecomment-520615498 ).
Модульная архитектура, но издержки описаны выше. Пакеты сформированы только для Fedora.
low-memory-monitor https://gitlab.freedesktop.org/hadess/low-memory-monitor/
Рано делать выводы. Идея просить процессы умерить аппетиты самостоятельно
вызывает скепсис. В остальном этот киллер примитивен и не содержит других киллер-фич.
Итог
Если у вас CentOS 6, или слабое железо, или не нужно ничего лишнего, или
хочется "быстро поставить и забыть" - ставьте earlyoom. Nohang имеет
дополнительные возможности, полезные как для десктопа, так и для сервера. oomd
лучше не трогать, если сам не из Фейсбука.
|