++ earlyoom https://github.com/rfjakob/earlyoomПростой, лёгкий, стабильный. VmRSS меньше мегабайта, нагрузка на процессор околонулевая. С релиза 1.3 стал очень надёжен (исправлено возможное убийство невиновных). Лучший выбор для домохозяек, которым не нужны лишние настройки, а нужна хорошая работа из коробки. Поддержка PSI обсуждается (https://github.com/rfjakob/earlyoom/issues/100 - автор давно собирался добавить поддержку PSI, но в последнее время засомневался в целесообразности этого. Проводятся работы по убеждению сенсея в необходимости добавления поддержки PSI).
Присутствует в репозиториях Ubuntu 18.04+ и Debian 10+. Начиная с версии 1.3 могу смело рекомендовать его в качестве дефолтного киллера для десктопа. Буду лоббировать его в качестве дефолтного киллера для Федоры (zram они уже собрались включать по дефолту, для полного счястья не хватает earlyoom, обсуждение тут: https://pagure.io/fedora-workstation/issue/98 ).
++ 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).
Минусы: мало документации. Хочу релизнуться, но лень писать документацию. Можно рекомендовать тем, кому не хватает возможностей 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#issuecom... ). Модульная архитектура, но издержки описаны выше.
++ low-memory-monitor https://gitlab.freedesktop.org/hadess/low-memory-monitor/
Рано делать выводы. Идея просить процессы умерить аппетиты самостоятельно вызывает скепсис. В остальном этот киллер примитивен и не содержит других киллер-фич.
++ Итог
Если у вас CentOS 6, или слабое железо, или не нужно ничего лишнего, или хочется «быстро поставить и забыть» - ставьте earlyoom. Nohang имеет дополнительные возможности, полезные как для десктопа, так и для сервера. oomd лучше не трогать, если сам не из Фейсбука.
URL: https://www.opennet.me/openforum/vsluhforumID3/118253.html#94
Обсуждается: http://www.opennet.me/tips/info/3116.shtml