У Линуха есть такое неприятное свойство: если какая-то софтина отжирает память, то он начинает терпеливо свопиться и практически перестаёт реагировать на внешние раздражители. Кроме REISUB конечно.
Среди любителей пожрать памяти лидирующие позиции, предсказуемо занимают Firefox и Virtualbox. Хотя со многими случается.
Я знаю простой способ: `ulimit -v <килобайты>`, который просто не даёт процессу юзать больше памяти и всё.
Но как-то мне такой способ не очень. Жёсткое ограничение типа «всем по пять гигов и не больше» — это же фуфло какое-то. Из 1970-х. Из системы MULTICS.
Вот как понизить у наглого процесса приоритет по процессору, вводу/выводу и доступу к виртуаьной памяти? Типа вызываешь трешинг свопа или грузишь ЦП — да пожалуйста, но только пока они кому-то нормальному не понадобились. А когда появляется очередь — стой всё время в конце, раз такой жирный.
Как?
подписался на етот тред
1) открой для себя cgroups
2) помимо REISUB есть еще F
3) оом-киллер можно тюнить.
Вот было бы у нас всё на автоматическом управлении памятью и один глобальный сборщик мусора на всю систему — можно было бы динамически давить на одни программы и давать волю другим. А пока процесс имеет гигабайты (эксабайты) виртуальной памяти, которые в любой момент может сожрать, и отобрать их без разрешения программы никак нельзя, то остаётся только плакать. Умные программы реагируют на mem_notify, но он, кажется, один на всю систему, и не используется для пропорционального подстёгивания процессов по их лимитам.
@l29ah > OOM killer, только труп остаётся в памяти
@dluciv В линуксе уже есть анекдот под таким-то номером, когда всё «на пару секунд» в принципе просирается и продолжает работать нормально.
@dluciv Чтобы он на диске оказался, его туда нужно записать. А потом обратно.
@dluciv Что за F?
@dluciv чем в итоге всё кончилось? разрулил проблему? расскажи потом обязательно плз
@dluciv напомни что делает sysrq+f и как правильно нажимать если у меня синкпад: fn+prtsc+shift+f?