URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 118434
[ Назад ]

Исходное сообщение
"Релиз обработчика нехватки памяти oomd 0.2.0"

Отправлено opennews , 11-Сен-19 23:28 
Facebook опубликовал второй выпуск oomd, обработчика нехватки памяти в системе (OOM, Out Of Memory), работающего в пространстве пользователя...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=51469


Содержание

Сообщения в этом обсуждении
"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено кек , 12-Сен-19 01:47 
Традиционное сравнение киллеров: паста написана месяц назад:

https://www.opennet.me/tips/3116_oomkill_memory_earlyoom_noh...


"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено кек , 12-Сен-19 17:32 
Как oomd убивает сессию https://imgur.com/a/FSOtqPm

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Аноним , 11-Сен-19 23:28 
Он так же тормозит как сам Facebook?

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Водитель маршрутки , 11-Сен-19 23:43 
Даже лучше

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Аноним , 11-Сен-19 23:42 
чем оно лучше earlyoom?

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Аноним , 11-Сен-19 23:44 
PSI

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Аноним , 12-Сен-19 00:11 
Тем что не требует "новейшего" ядра и библиотек с подачей смузи.

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Аноним , 12-Сен-19 00:12 
Тем, что есть пакеты.

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Грусть , 11-Сен-19 23:51 
Плагины - плохой признак проекта.

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Аноним , 12-Сен-19 00:21 
Почему?

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Грусть , 12-Сен-19 00:28 
Потому что авторы не знают, чего хотят, и делают то, что могут, а не то, что надо.

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Аноним , 12-Сен-19 01:18 
Типо, пока сам не сделаешь — никто не сделает?

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Аноним , 12-Сен-19 09:31 
Потому что для таких крохотных утилит это оверинжиниринг и демонстрация непонимания авторами как ими будут пользоваться конечные пользователи. Это как для rm написать плагинную систему - можно, но зачем?

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено кек , 12-Сен-19 10:02 
>для таких крохотных утилит это оверинжиниринг и демонстрация непонимания авторами как ими будут пользоваться конечные пользователи

Конечными пользователями oomd являются админы крупных компаний с разными потребностями. Это вы нихрена не понимаете.


"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Аноним , 12-Сен-19 11:39 
Нет, вы не понимаете. В крупных компаниях пишут свои oom killer'ы под свои потребности, либо форкают проект и допиливают под себя. В тех полутора тысячах строчек ядра сабжа нет ничего уникального, чего бы не написал обычный программист, зато есть много лишнего, чего не требуется для конкретных узкоспециализированных случаев.

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено freehck , 12-Сен-19 09:44 
> Плагины - плохой признак проекта.

Ну конечно. Ведь давать людям возможность допилить продукт под их нужды без изменения базовой функциональности -- это так неправильно.


"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Грусть , 12-Сен-19 13:00 
Не передёргивайте. Плагины - причина повнимательнее посмотреть на "продукт". Так же как банку на ИП, который не платит с этого банка налоги.

Это же относится к развесистой конфигурации.


"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Аноним , 12-Сен-19 02:45 
хорошо хоть тут адекватные люди и пишут не на расте

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Аноним , 12-Сен-19 03:38 
Я думаю, было бы неплохо, если бы у нас был способ заставить пользователей Fedora принимать участие в экспериментах, а затем случайным образом давать им такие вещи, как nohang и earlyoom, oomd и монитор с низким объемом памяти. Нет документации, нет предупреждения, ничего. Они просто получают один из них. Как будто это их установка по умолчанию. И посмотреть, что взрывается, или нет, какие жалобы у них есть, или нет. Если они явно устанавливают что-то, а не случайно, они в конечном итоге оказываются смещенными, что фактически загрязняет данные. Просто мысль.

https://pagure.io/fedora-workstation/issue/98#comment-597005

Теперь прошу юзеров Федоры описать свой разрыв.


"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Аноним , 12-Сен-19 10:14 
> способ заставить пользователей Fedora принимать участие в экспериментах

А они разве чем-то другим занимаются?


"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Аноним , 12-Сен-19 14:16 
> opt-in
> заставить

Больше не занимайся переводами


"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Аноним , 12-Сен-19 03:50 
Линуксопроблемы

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Аноним , 12-Сен-19 08:42 
Граждане эксперты, поясните за OOM.

Почему в Linux есть memory overcommitment и OOM killer, а в Windows есть другой dynamic memory, и OOM killer отсутствует. Или я вообще всё путаю?

Насколько я понял, всегда можно попросить 20GB оперативной памяти, и если у тебя её нету, то ты попадаешь в swap. В windows при достижении определённого предела загрузки памяти старые приложения которые пытаются захватить больше памяти, вновь загружаемые приложения и пользователи внутрь своих сессий получат сообщения OOM.
А в Linux почему-то есть OOM killer, который зачем-то убивает процессы. А в друг там было что-то важное?

Я понимаю, что Windows API и POSIX это как небо и земля разные вещи. Что поведение очень разное, даже загрузка dll и загрузка so тоже отличается.

Я просто не понимаю, почему убивать? Или это потому что в Linux опять со свопом проблемы? https://bugzilla.kernel.org/show_bug.cgi?id=196729
По идее если толстые приложения убить, то в сессии пользователя освободится память, чтобы запустить утилиты и решить что позакрывать. У Windows в связи с этим традиционно проблема, потому что запус того же Task Manager может длится долго в ситуации полного исчерпания памяти.

Но ведь несмотря на логику memory overcommitment и oom killer графические сессии чувствуют себя намного хуже чем windows, при полном исчерпании свободной памяти. https://lkml.org/lkml/2019/8/4/15


"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено exSun , 12-Сен-19 09:35 
Потому что внезапно стало приемлемым не рассчитывать доступный объём памяти и настраивать приложения соответственно располагаемым объёмам, а надеяться, что оно там само как-то разберётся. Потому что средний десктоп-юзер не понимает не то что нюансов, а даже основ эксплуатации промышленных систем, не хочет и не будет их понимать. Потому что именно средние десктопные пользователи теперь называются девопсами-админами и используют столь привычные им практики администрирования десктопов в промышленных средах. Потому что десктопные приложения достигли такого уровня сложности внутреннего устройства, что их авторы не могут оптимизировать потребление памяти. Потому что RAM теперь стоит недорого и его "всегда можно добавить", но нет понимания, что очередной гигабайт может оказаться последним. Потому что в свопе работать нельзя ни на сервере, ни на десктопе, но очень хочется.

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено freehck , 12-Сен-19 09:45 
> Потому что именно средние десктопные пользователи теперь называются девопсами-админами и используют столь привычные им практики администрирования десктопов в промышленных средах.

Я вам открою секрет. Ламера понабежали не только в "девопсы" и в "админы". Они понабежали во все сферы IT. И между прочим, уже достаточно давно.


"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено exSun , 12-Сен-19 11:31 
Ну а теперь их узаконили, да.

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено пох. , 12-Сен-19 14:29 
да они, блжад, в разработчики понабежали. Ни девопсу, ни админу тут уже ничего не поделать.
Будь ламером, будь как все!


"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено freehck , 12-Сен-19 14:50 
> да они, блжад, в разработчики понабежали. Ни девопсу, ни админу тут уже ничего не поделать.

Да я тут где-то уже писал, вроде бы, что работа хорошего девопса заключается в том, что мы берём три решета, и ставим их друг за другом, чтобы все дырки оказались закрыты. Так что кое-что поделать вполне себе можно. Немного неприятно, что система целиком в голове теперь ну совсем уже не помещается. Но это, в принципе, ожидаемо. Мир усложняется. Общество требует всё более высоких технологий, и побыстрее. А столько хороших разработчиков просто не существует. Поэтому общество использует то, что есть. Результат, как обычно: изнутри -- костыль на костыле; но зато решает задачи людей, и потому они готовы платить ещё и ещё.

> Будь ламером, будь как все!

Я думаю, что это ложный вывод. Стремиться надо к лучшему.


"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено заминированный тапок , 12-Сен-19 15:52 
если система не может корректно обработать ситуацию нехватки ресурсов и виснет, bsod'ит, паникует или ведёт себя иным некорректным образом, то есть просто падает - какя она на**й "промышленная" ? вы в своём уме?

конечно проще сказать: "это не дорожники плохо асфальт постелили, это обувь китайская на ногах его портит"


"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено x , 12-Сен-19 16:24 
overcommitment в 64 не работает как задумано. а ограничить нельзя просто так н.р.
те же инструментированные address-sanitizer сборки любого процесса тут же выделяют 20 Тб на старте, и нормально себе работают. Так же маппинг гигабайтных файлов требует больших адресных пространств.

Теперь имеем что на x64 malloc() всегда завершается удачно, а память жрется по фактическому обращению на страницу в недерминированный момент времени.. как это разрулить пока никто не придумал.


"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Павел Отредиез , 13-Сен-19 19:10 
Я сегодня тестировал limits.conf  на Elementary OS 5 64 бита. Ulimit -а показывает установленные лимиты по памяти, а тестовая mem-бомба с malloc в цикле плюёт на них и загоняет систему в swap. Значит вы говорите, что это свойство 64 битных систем? Я правильно понял?

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Павел Отредиез , 13-Сен-19 20:11 
Я ввожу в заблуждение. Лимиты нормально отрабатывают и на 32 и на 64 бита. И да, malloc возвращает Null при достижении лимитов и на 64 битах.

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Павел Отредиез , 13-Сен-19 22:03 
В общем я ошибался. По памяти пользователя лимитами и не ограничить.

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено кек , 14-Сен-19 07:00 
Очень даже ограничить.

В limits.conf ключ as позволяет ограничивать размер ВИРТУАЛЬНОЙ ПАМЯТИ КАЖДОГО ПРОЦЕССА сессии пользователя.

Ну а в сигруппах memory.max уже устанавливает лимит РЕАЛЬНОЙ ПАМЯТИ для ЦЕЛОЙ ГРУППЫ.


"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Павел Отредиез , 14-Сен-19 10:02 
> Очень даже ограничить.
> В limits.conf ключ as позволяет ограничивать размер ВИРТУАЛЬНОЙ ПАМЯТИ КАЖДОГО ПРОЦЕССА
> сессии пользователя.

Да, но у palemoon без вкладок VIRT=2G сразу
Черново для себя сделал в ядре ключ rss - резидентная память. Было не реализовано:
man bash:
-m     The maximum resident set size (many systems do not honor this limit)
2 строчки патча.

> Ну а в сигруппах memory.max уже устанавливает лимит РЕАЛЬНОЙ ПАМЯТИ для ЦЕЛОЙ
> ГРУППЫ.

Напишите кто-нибудь пожалуйста в советы рабочее на сегодняшний день howto "Ограничение памяти по пользователям с помощью cgroups". У меня лично эта тема не получается :(((.


"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено кек , 14-Сен-19 13:52 
https://www.linux.org.ru/forum/general/14991027 тема раскрыта

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено кек , 14-Сен-19 13:55 
$ systemd-run --user -p MemoryMax=1G -p MemorySwapMax=0 foo

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Аноним , 12-Сен-19 09:13 
На самом деле дело обстоит так:

Нехватка релизов обработчиков памяти!


"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено кек , 12-Сен-19 09:29 
Скоро nohang 0.2 выйдет, не беспокойтесь

"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено кек , 12-Сен-19 09:37 
Продублирую тут пасту с лора.

>Ну и чем ваш костыль лучше костыля cgroups?

По части предотвращения ООМ юзерспейсные демоны проще и более гибкие.

Например, если хотите защитить систему от переполнения памяти путем использования earlyoom - достаточно его просто установить, и он будет работать достаточно хорошо, реагируя, если SwapFree < 10% & MemAvailable < 10% (пороги легко изменить через конфиг). Эти пороги будут работать на любой системе с любым размером памяти.

Для настройки сигрупп для той же задачи нужно знать сколько памяти в системе имеется, знать сколько какие демоны могут съедать. Если система хорошо настроена, и мы в нее докинем оперативы - эта память будет утилизироваться не полностью, ибо установка лимитов обычно происходит через абсолютные значения. В целом, юзерспейсные киллеры просто труднее настроить неправильно по сравнению с сигруппами.

Далее. При ООМ внутри сигруппы (если группа упрется в лимит memory.max) в ней произойдет вызов OOMK и жирный процесс будет убит через SIGKILL: это еще один минус - невозможность кастомизации корректирующего действия (в earlyoom и nohang процесс сначала получит SIGTERM для возможности более корректного завершения).

Далее, настройка сигруп не позволяет (пока не позволяет, но Лёня обдумывает) реагировать на превышение в системе заданных уровней PSI memory pressure: если в системе интенствный swapping/thrashing/конкуренция за память, да такая, что рабочий стол замерз (это может произойти и при большом свободнос свопе) - сигруппы тут также бессильны.

Конечно, можно использовать оба костыля одновременно.

Ну и да, сигруппы тебе не отправт уведомления на раб стол, если случится убийство (nohang может, если вкючить в кофиге).


"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено Аноним , 12-Сен-19 09:39 
Мы придумали OOM обработчик, который вылезает раньше системного OOM обработчика, и тем решили проблему, что мы не умеем писать софт, влезающий в ОЗУ, а не забивающий, пока ОЗУ не кончится совсем-совсем!


"Релиз обработчика нехватки памяти oomd 0.2.0"
Отправлено кек , 12-Сен-19 09:59 
>мы не умеем писать софт, влезающий в ОЗУ

Умеют, но это дороже обойдется. А вообще-то у них миллиарды пользователей. Как ты представляешь себе оптимизацию софта для таких нагрузок?