Сравнение работающих в пространстве пользователя обработчиков нехватки памяти |
[исправить] |
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
лучше не трогать, если сам не из Фейсбука.
|
|
|
|
Раздел: Корень / Администратору / Система / Linux специфика / Оптимизация и тюнинг в Linux |
1.1, Аноним (1), 15:31, 28/08/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
а зачем вы вставляли перевод каретки в конце каждой строки? на телефоне читать то еще удовольствие, когда у тебя каждаястрока - как абзац.
| |
1.5, X4asd (ok), 22:29, 21/10/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> Проводятся работы по убеждению сенсея в необходимости добавления поддержки PSI
теперь всё про эти ваши киллеры ясно
| |
|
2.10, Аноним (-), 14:56, 03/12/2019 [^] [^^] [^^^] [ответить]
| +/– |
пассивное ограничение ресурсов и активный отстрел одуревших программ - немного разные вещи
| |
|
|
2.11, kek (??), 08:21, 11/12/2019 [^] [^^] [^^^] [ответить]
| +/– |
У нас за плечами был двухнедельный курс питона на курсере, мы обрабатывали нехватку памяти как могли.
| |
2.17, tr (?), 21:44, 09/05/2020 [^] [^^] [^^^] [ответить]
| +/– |
dnf, Portage, fail2ban на питоне. Брат жив, зависимость есть.
| |
|
1.12, InuYasha (?), 11:48, 14/12/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Спасибо за обзор!
Для ООМирования эластика, наверное, лучше будет nohang. Когда обычный ООМ покоцает ему пару нитей, надо рестартовать весь сервис. А nohang сможет этот рестарт запустить.
| |
|
2.13, кек (?), 08:38, 17/12/2019 [^] [^^] [^^^] [ответить]
| +/– |
Разве через системд юнит рестарт не настраивается?
Restart=always
| |
|
|