Сайт | Скачать | Видео | Wiki

Автор Тема: mglru, le9-patch + zram. Нехватка памяти, фризы:OOM KILLER и пр.  (Прочитано 26437 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
  • Автор темы
Выводы : zram+le9-patch дают волшебный эффект на ПК с малым к-вом RAM
Настройка (в LF дистрибах  задается в параметрах ядра  zram=, выполняется в  /etc/rc.d/zswap)
По оптимальным настройкам zram https://www.linux.org.ru/forum/desktop/16105853?cid=16109427
Цитата
Нет смысла создавать zram размером более чем в два раза больше памяти, поскольку мы ожидаем коэффициент сжатия 2:1. Обратите внимание, что zram использует около 0,1% размера диска, когда не используется, поэтому огромный zram является расточительным.

https://archlinux.org.ru/forum/topic/20297/?page=1
Earlyoom, замена стандартного ООМ Killer
earlyoom-p-1.6.1_64-sf01.pfs - при горячей загрузке сам загрузит что надо
Пример конфига
nohang
https://aur.archlinux.org/packages/zram-swap-git/


По теме нехватки памяти, фризов и срабатывания OOM KILLER, от русскоязычного автора nohang (аналог earlyoom, но более настраиваемый).
https://www.linux.org.ru/forum/desktop/15926779
Далее авторские цитаты:

Цитата
"Просто оставлю это здесь: Игра в supertux2 с множественными `tail /dev/zero` в фоне без зависаний"
Цитата
Собственно: https://youtu.be/fPnbnNX9CPE

Система на HDD, Debian 9 Mate, MemTotal=10GB, swap on zram (disksize=14GB). memavaild, prelockd и nohang-desktop работают в фоне и помогают сохранять отзывчивость несмотря ни на что.

https://github.com/hakavlad/nohang
https://github.com/hakavlad/prelockd
https://github.com/hakavlad/memavaild

Кратко: prelockd - новейшее оружие в борьбе за отзывчивость при нехватке памяти.

Цитата

    Что делает-то код? Просто убивает тейлы?

nohang: убивает тейлы.

memavaild: балансировщик доступной памяти. При исчерпании доступной памяти уменьшает memory.high указанных в конфиге контрольных групп (по умолчанию user.slice и system.slice), тем самым освобождая доступную память и место под файловые кэши.

prelockd:
mlock() на мемори маппленные файлы. Это препятствует не выгрузке в своп, а ОТБРАСЫВАНИЮ КЭША. Обычно при нехватке памяти кэш исполняемого кода отбрасывается, потом снова загружается с диска - возникает колесо thrashing’a и высокий io (чему очень удивлялся А. Ташкинов [1]). При применении prelockd такого не происходит - нет фазы выгрузки кода и зависания - сразу приходит киллер. При наличии свопа просто силно растет отзывчивость гуя и прочего.

[1] https://lkml.org/lkml/2019/8/4/15

Цитата

    А в чем успех?

Успех в решении проблемы века - неспособности линуксов мягко обрабатывать нехватку памяти, см https://www.opennet.ru/opennews/art.shtml?num=51231

upd.
Цитата
Playing supertux2 with 8 "while true; do tail /dev/zero; done" in background https://www.youtube.com/watch?v=Kz8_OuDMsuE

С показом top и метрик PSI.

Цитата
Compiling Linux 5.4 with make -j512, MemTotal=9.6G, swap om zram https://youtu.be/dPw5c4rYAdE


p.s. Мопед не мой, не надо меня спрашивать. :)
« Последнее редактирование: 16 Январь 2022, 11:05:17 от sfs »

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: le9-patch
« Ответ #1 : 04 Октябрь 2020, 07:22:55 »
Это препятствует не выгрузке в своп, а ОТБРАСЫВАНИЮ КЭША.
ЕМНИП, именно это балансируется значением swappiness. Если приложение требует память, а свободной нет у ядра два выхода: скинуть в своп и сбросить кэш. Чем выше значение swappiness тем больше ядро использует своп сохраняя кэши.
Nohang смотрел, давно правда. Вам не понравится, там питон :)
Не уверен, что все эти конструкции реально могут решить проблему. Одно дело если открыто куча программ, плюс куча страниц в браузере. Если тут оом киллер грохнет кого, то и не жалко.
А если к примеру в гимпе открыт большой проект с несколькими изображениями в большом разрешении. Чем здесь поможет  nohang или earlyom?  Гимп грохнет? Ладно, допустим можно запретить убивать именно гимп. Кого он тогда убьет, следующими по прожорливости могут оказаться иксы или системд.
Я не к тому, что эти киллеры - плохо. Просто это точно не универсально.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
  • Автор темы
Re: le9-patch
« Ответ #2 : 04 Октябрь 2020, 09:20:37 »
Хочу заметить, что там нет стандартного свопа - раздела, файла или zswap. Там чистый zram, в числовом исчислении, примерно zram_size=$(( RAM_SIZE / 1 )). Если точнее, то где-то /0,7.
MemTotal=10GB, swap on zram (disksize=14GB)
Т.е. тестируемые условия были нестандартны.
« Последнее редактирование: 04 Октябрь 2020, 09:34:03 от krasnyh »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
  • Автор темы
Re: le9-patch
« Ответ #3 : 06 Октябрь 2020, 23:09:29 »
Швейцарские физики выбирают nohang для обработки нехватки памяти
Цитата

Физики Швейцарской высшей технической школы Цюриха (самого престижного вуза Швейцарии) выбирают nohang для обработки нехватки памяти на своих рабочих станциях:

    OOM долгое время был проблемой, к счастью, пакет nohang с бэкпортированием для 18.04 и 20.04 очень помогает. Имейте в виду, что с 20.04 он работает намного лучше из-за более нового ядра и поддержки PSI.

https://readme.phys.ethz.ch/linux/software_on_the_d-phys_linux_computers/

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
  • Автор темы
Re: le9-patch
« Ответ #4 : 10 Декабрь 2020, 21:27:26 »
Цитата hakavlad:
Цитата
В манджаро форуме вскрывалась тема включения киллера, но ни к чему не пришли: https://archived.forum.manjaro.org/t/include-out-of-memory-warnings-or-protection-by-default-e-g-earlyoom-or-nohang/128398. Одкако своп ставится на zram.

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

Garuda Linux - сборочка арча - включает по умолчанию swap on zram, nohang, prelockd, memavaild.

Все больше дистрибутивов включают swap on zram по умолчанию. Юзерспейсных киллеров включают по умолчанию Fedora, Endless OS, Garuda Linux. Прогресс очевиден, хотя и недостаточно быстр.
Линуксы зависли, реакции нет


Упомянутый Garuda Linux. Целое семейство DE/WM на базе арча - KDE, GNOME, Xfce, Cinnamon, MATE, LXQt-kwin, Deepin, Wayfire, BSPWM and i3wm.
Swap on zram, nohang, prelockd, memavaild. Скрины (второй скрин просто показать рабочий стол i3). Запускалось в вирте. Настройки по умолчанию.
« Последнее редактирование: 23 Декабрь 2020, 18:27:37 от krasnyh »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
  • Автор темы
Re: le9-patch
« Ответ #5 : 23 Декабрь 2020, 18:40:21 »
В теме Linux 5.10 встретились post-factum (pfs-kernel) и hakavlad (nohang). Итог, добавление le9-patch (Патч эффективно устраняет thrashing и причины долгого неприхода киллера (c)) в ядро, ссылка.

*Пробуксовка (англ. thrashing) в информатике — состояние, когда подсистема виртуальной памяти компьютера находится в состоянии постоянного свопинга, часто обменивая данные в памяти и данные на диске, в ущерб выполнению приложений. Это вызывает замедление или практическую остановку работы компьютера. Такое состояние может продолжаться неограниченно долго, пока вызвавшие его причины не будут устранены.
Википедия


p.s. Когда сталкиваются два разработчика на одной площадке, это может привести к интересным результатам. Да и просто интересно почитать тред.
« Последнее редактирование: 23 Декабрь 2020, 18:43:34 от krasnyh »

Оффлайн imp

  • cat /dev/ass > /dev/head
  • Ветеран
  • *****
  • Сообщений: 1708
  • Репутация: +49/-1
  • /dev/hands < /dev/ass
Re: le9-patch
« Ответ #6 : 23 Декабрь 2020, 23:13:56 »
Это же очевидно...
Компьютер имеет то преимущество перед мозгом, что им пользуются.

Оффлайн TT

  • Постоялец
  • ***
  • Сообщений: 146
  • Репутация: +1/-0
Re: le9-patch
« Ответ #7 : 25 Декабрь 2020, 16:39:05 »
"Ха-а-ачу маленькое 5.10 ядро-о, ха-а-ачу-у-у.." (TT ноет)

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: le9-patch
« Ответ #8 : 26 Декабрь 2020, 07:14:23 »
Sfs, тему наверное нужно разделить или переименовать. Про uird где-то далеко в начале только.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
  • Автор темы
Дополню свой пост выше скрином из fedora34-beta (i3wm).
Повторю уже сказанное мной на форуме ранее - новые тенденции назначать disksize=total RAM, при дефолтных 1/4.

https://spins.fedoraproject.org/prerelease.html
« Последнее редактирование: 28 Март 2021, 19:01:21 от krasnyh »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Нехватка памяти, фризы:OOM KILLER , le9-patch и пр.
« Ответ #10 : 29 Март 2021, 13:16:39 »
новые тенденции
В этом ядре есть все что нужно для счастья?
Как что правильно и оптимально включить? Или там все что надо по дефолту включено?

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
  • Автор темы
Re: Нехватка памяти, фризы:OOM KILLER , le9-patch и пр.
« Ответ #11 : 29 Март 2021, 17:49:33 »
Код
live@pra-roll ~ % uname -a
Linux pra-roll 5.11.0-pf2-1-pra #1 SMP Sat Mar 6 18:34:45 MSK 2021 x86_64 GNU/Linux
live@pra-roll ~ % lsmod | grep zram
zram                   20480  8

Я включаю через systemd-swap 4.4.0-2
Код
live@pra-roll ~ % cat /etc/systemd/swap.conf.d/myswap.conf
zswap_enabled=0
zram_enabled=1
zram_size=$(( RAM_SIZE ))
zram_count=1
swapd_auto_swapon=0
Утилита для проверки zramctl.


И ссылку по oom-killer, чтобы не искать https://wiki.archlinux.org/index.php/Improving_performance#Improving_system_responsiveness_under_low-memory_conditions. Это обязательная часть, иначе опять будет:
Юзал на твбокс (под линуксом). Когда хром сжирал память - висло
Напомню, что настраиваются они достаточно гибко. Для браузера это вкладки, а другие процессы можно распределить по степени важности. Так что не надо опасаться, что убьет сессию. У меня с earlyoom до этого еще не разу не доходило.

Мой пример - выставлены в первую очередь как самые ресурсоемкие qemu и firefox, в котором акцент сделан на вкладки, само окно не убивается.
« Последнее редактирование: 29 Март 2021, 20:24:26 от krasnyh »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Нехватка памяти, фризы:OOM KILLER , le9-patch и пр.
« Ответ #12 : 29 Март 2021, 18:13:54 »
т.е. включить через systemd:
1. uksmd
2. zram (zswap выкл)
3. https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=oomd
?

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
  • Автор темы
Re: Нехватка памяти, фризы:OOM KILLER , le9-patch и пр.
« Ответ #13 : 29 Март 2021, 18:17:43 »
Я включаю через systemd-swap 4.4.0-2
Давно не заходил на гит, а там предупреждение "Current code quality and commit frequency is low" с предложением перейти на systemd/zram-generator. Кстати, когда юзал fedora34 там вроде тоже zram-generator.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
  • Автор темы
Re: Нехватка памяти, фризы:OOM KILLER , le9-patch и пр.
« Ответ #14 : 29 Март 2021, 18:22:28 »
oomd
Не знаю с чем его едят, более популярный earlyoom, он сейчас в fedora33. Но в fedora34 хотят отказаться от него в пользу systemd-oomd, тестируют сейчас. Правда говорят он убивает целые группы, нет такой гибкости как в других. На лоре есть тема.
« Последнее редактирование: 29 Март 2021, 18:33:42 от krasnyh »