исчерпание ОЗУ, система колом, как остановить\кильнуть?

Aivar
но работает ли оно сейчас?
давно с ним экспериментировал, но честно говоря мне не понравилась настройка и какие то там были нюнсы, что меня не устраивало (вроде бы должного эффекта я так и не достиг) - хотя конкретно не влазил, возможно что то и не совсем понял.

Пробовал много всяких утилит - остановился на nohang (в принципе там можно настроить даже zram) - один минус - AUR. Если есть близкая альтернатива AUR в репах, то ставлю из реп. Так что выбор сделан в пользу earlyoom, но БЕЗ SWAP - пробовал сейчас разные проценты swap - не понравилось. Часто экспериментирую, а потому мне важно без тормозов и быстрое уничтожение жрущего процесса, а это хорошо работает только без swap. ... да в принципе с использованием oom_kill swap особо и не нужен.
Ошибки не исчезают с опытом - они просто умнеют
vasek
вроде бы должного эффекта я так и не достиг
По крайней мере лимитирование процессорного времени, выделенной памяти, скорости ввода-вывода для указанного процесса работало отлично.
Aivar
для указанного процесса
... для указанного - то есть должен указать его заранее ... но не всегда же знаешь, а если начинаешь экпериментировать, то должен предугадать данный процесс и прописать его, но это все морока - можно, конечно, и ограничить юзера (но уже другими утилитами), но опять же муторно, так что oom_kill лучший выход - убиваем самого жрущего.
Ошибки не исчезают с опытом - они просто умнеют
vasek
то есть должен указать его заранее
Нет. Изменения применяются налету. У меня все было автоматически на уровне скрипта, но не могу его найти. Может удалил за ненадобностью...
grayich
Иногда процесс выедает всё озу уходит в свап, начинаются жуткие лаги всей системы.. невозможно добраться до консоли и кильнуть жруна.

Какое лекарство существует по этому поводу, кроме увеличения озу) ?

Alt+SysRq+F пробовал когда-то, но оно не понятно работает или нет и какие ему критерии нужны

История успеха с объяснением: https://forum.manjaro.org/t/solved-display-warning-message-or-kill-program-before-system-runs-out-of-memory/147635

nohang умеет реагировать на нехватку ресурсов во время активного своппинга в том числе. Пример настройки также по ссылке выше. Спрашивайте ответы, автор в треде.
ForumLiker
redix, Есть другая новость, более свежая, что уже Fedora занимается этим вопросом, но я не нашел ее.

Смотри:

Наиболее заметные улучшения в Fedora 32:

В сборках для рабочих станций по умолчанию активирован фоновый процесс earlyoom, который позволит более оперативно реагировать на нехватку памяти, не доходя до вызова обработчика OOM (Out Of Memory) в ядре, который срабатывает, когда ситуация становится критичной и система, как правило, уже не реагирует на действия пользователя. Если объём доступной памяти меньше меньше 4%, но не более 400 MiB, earlyoom принудительно завершит работу процесса, наиболее активно потребляющего память (имеющего самое большое значение /proc/*/oom_score), не доводя состояние системы до очистки системных буферов. В качестве наиболее приоритетных кандидатов на удаление отмечены процессы Web Content от Firefox. Снижен приоритет при выборе претендента на удаление для различных системных сервисов, таких как dnf, gnome-shell, kwin, Xorg, Xwayland, systemd, dbus-daemon и т.п.
-- https://www.opennet.ru/opennews/art.shtml?num=52828

Если появится в Fedora, значит вскоре появится и в других дистрибутивах.
В Manjaro обсуждалось: https://forum.manjaro.org/t/include-out-of-memory-warnings-or-protection-by-default-e-g-earlyoom-or-nohang/128398

В чистом арче, оно, конечно, не включится по умолчанию. А в готовых десктопных дистрибутивах могут включить.

Например, в Endless OS даже раньше федоры включила psi-monitor https://github.com/endlessm/eos-boot-helper/tree/master/psi-monitor - простой демон для обработки нехватки памяти, использующий метрики PSI для детектирования нехватки памяти.

Фейсбук также испрользует oomd в продакшн - https://www.opennet.ru/opennews/art.shtml?num=48994
vasek
Если уж использовать ути утилиты, то нужно ОБЯЗАТЕЛЬНО отключать swap.

Вовсе не обязательно, по ссылке выше история успеха с объяснением. Нужно лишь настройки демона поправить.
nafanja
как по мне, этот earlyoom не решение, а костыль…
Во-первых, сам ядерный киллер - это костыль. Обработка нехватки памяти без костылей - это запрет оверкоммита, когда при нехватке памяти приложения сами падают без всякого киллера. Юзерспейсные киллеры более гибкие и на самом деле работают, в отличие от ядерного, которого можно ждать часами.
 
Зарегистрироваться или войдите чтобы оставить сообщение.