++ 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.ru/openforum/vsluhforumID3/118253.html#94
Обсуждается: http://www.opennet.ru/tips/info/3116.shtml
а зачем вы вставляли перевод каретки в конце каждой строки? на телефоне читать то еще удовольствие, когда у тебя каждаястрока - как абзац.
"киллер примитивен и не содержит других киллер-фич" - фраза дня!
Киллер-фраза же!
`
> Проводятся работы по убеждению сенсея в необходимости добавления поддержки PSIтеперь всё про эти ваши киллеры ясно
Лишь бы cgroups не изучать.
пассивное ограничение ресурсов и активный отстрел одуревших программ - немного разные вещи
писать системный тул такого плана на питоне - просто верх ламерства.
У нас за плечами был двухнедельный курс питона на курсере, мы обрабатывали нехватку памяти как могли.
dnf, Portage, fail2ban на питоне. Брат жив, зависимость есть.
Спасибо за обзор!
Для ООМирования эластика, наверное, лучше будет nohang. Когда обычный ООМ покоцает ему пару нитей, надо рестартовать весь сервис. А nohang сможет этот рестарт запустить.
Разве через системд юнит рестарт не настраивается?Restart=always