Выводы : zram+le9-patch дают волшебный эффект на ПК с малым к-вом RAMНастройка (https://forum.puppyrus.org/index.php?topic=23160.msg178484#msg178484) (в LF дистрибах задается в параметрах ядра zram= (https://wiki.puppyrus.org/soft/porteus-initrd#zram), выполняется в /etc/rc.d/zswap)
По оптимальным настройкам zram https://www.linux.org.ru/forum/desktop/16105853?cid=16109427
Нет смысла (https://www.kernel.org/doc/html/latest/admin-guide/blockdev/zram.html) создавать zram размером более чем в два раза больше памяти, поскольку мы ожидаем коэффициент сжатия 2:1. Обратите внимание, что zram использует около 0,1% размера диска, когда не используется, поэтому огромный zram является расточительным.
"Просто оставлю это здесь: Игра в 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
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
Это препятствует не выгрузке в своп, а ОТБРАСЫВАНИЮ КЭША.ЕМНИП, именно это балансируется значением swappiness. Если приложение требует память, а свободной нет у ядра два выхода: скинуть в своп и сбросить кэш. Чем выше значение swappiness тем больше ядро использует своп сохраняя кэши.
MemTotal=10GB, swap on zram (disksize=14GB)Т.е. тестируемые условия были нестандартны.
Физики Швейцарской высшей технической школы Цюриха (самого престижного вуза Швейцарии) выбирают nohang для обработки нехватки памяти на своих рабочих станциях:
OOM долгое время был проблемой, к счастью, пакет nohang с бэкпортированием для 18.04 и 20.04 очень помогает. Имейте в виду, что с 20.04 он работает намного лучше из-за более нового ядра и поддержки PSI.
https://readme.phys.ethz.ch/linux/software_on_the_d-phys_linux_computers/
В манджаро форуме вскрывалась тема включения киллера, но ни к чему не пришли: https://archived.forum.manjaro.org/t/include-out-of-memory-warnings-or-protection-by-default-e-g-earlyoom-or-nohang/128398. Одкако своп ставится на zram.Линуксы зависли, реакции нет (https://www.linux.org.ru/forum/desktop/16026385?cid=16026563)
В убунтах прогресса ноль - по умолчанию предлагается своп-файл и никакой дополнительной защиты.
Garuda Linux - сборочка арча - включает по умолчанию swap on zram, nohang, prelockd, memavaild.
Все больше дистрибутивов включают swap on zram по умолчанию. Юзерспейсных киллеров включают по умолчанию Fedora, Endless OS, Garuda Linux. Прогресс очевиден, хотя и недостаточно быстр.
новые тенденцииВ этом (https://forum.puppyrus.org/index.php?topic=14803.msg176197#msg176197) ядре есть все что нужно для счастья?
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
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
Юзал на твбокс (под линуксом). Когда хром сжирал память - вислоНапомню, что настраиваются они достаточно гибко. Для браузера это вкладки, а другие процессы можно распределить по степени важности. Так что не надо опасаться, что убьет сессию. У меня с earlyoom до этого еще не разу не доходило.
Я включаю через systemd-swap 4.4.0-2Давно не заходил на гит, а там предупреждение "Current code quality and commit frequency is low" (https://github.com/Nefelim4ag/systemd-swap#%EF%B8%8F-current-code-quality-and-commit-frequency-is-low-%EF%B8%8F) с предложением перейти на systemd/zram-generator (https://aur.archlinux.org/packages/?O=0&K=zram-generator). Кстати, когда юзал fedora34 там вроде тоже zram-generator.
oomdНе знаю с чем его едят, более популярный earlyoom, он сейчас в fedora33. Но в fedora34 хотят отказаться от него в пользу systemd-oomd, тестируют сейчас. Правда говорят он убивает целые группы, нет такой гибкости как в других. На лоре есть тема (https://www.linux.org.ru/forum/desktop/16229420).
т.е. включить через systemd:Да.
Playing supertux2 with 8 "while true; do tail /dev/zero; done" in background https://www.youtube.com/watch?v=Kz8_OuDMsuE
Хочу заметить, что там нет стандартного свопа - раздела, файла или zswap. Там чистый zram,
Zram подразумевает неиспользование стандартного своп раздела/файла.Можно иметь и zram-swap и обычный, приоритеты только расставить правильно. Почему нет?
zram-swap и обычныйОбычный - это типа
zswap монолитно. zram модулем.Кстати - почему compress=lzo ? Вроде lz4 лучше. Или zstd (https://webguard.pro/os/linux/zram-v-kachestve-swap-fajla-v-linux.html)
приоритеты только расставить правильно.Можно подробнее...
если uksm+zswapАвтор pf-kernel так и использует https://www.linux.org.ru/news/kernel/16161909?cid=16168143.
приоритеты только расставитьМожно, почему нет. Если не ошибаюсь, параметр swapd_auto_swapon=0 (https://forum.puppyrus.org/index.php?topic=23160.msg176481#msg176481), как раз и выключает своп при использовании zram. Т.е. не требуется физически удалять, такого и не говорил.
Автор pf-kernel так и использует https://www.linux.org.ru/news/kernel/16161909?cid=16168143.Это он настоящий zswap использует, а не swap в zram
zram-swap и обычныйИмел ввиду своп в zram и обычный своп на раздел или в файл. Приоритеты расставить у свопов, чтоб приоритет zram-свопа был выше.
uird.mode=changes uird.changes=/memory/ch.img::FS=btrfs::MNT_OPTS=compress=lzo::SIZE=1024::TIMEOUT=1Это совсем не про своп. Lzo скорее для примера, середнячок. Можно не указывать алгоритм вообще, будет то что по умолчанию. Визуально разница в алгоритмах вообще не заметна, линейкой не мерил.
как раз и выключает своп при использовании zram. Т.е. не требуется физически удалять, такого и не говорил.swapon с ключем -p устанавливает приоритет использования доступных свопов. Если у вас больше одного свопа можете используя эти приоритеты заставить ядро юзать своп на zram, а своп на диске использовать только если на зрам заканчивается место. Это имел ввиду.
Приоритеты расставить у свопов, чтоб приоритет zram-свопа был выше.Зачем придумывать, если для этого есть zswap. Zram же как раз для того, чтобы полностью отказаться от свопа на медленном носителе. Для каждого случая свои инструменты, разве нет?
prar2008-ovs в виртуалке с 1G RAM с earlyoom и zswap=33%А если disksize=Total RAM? Я же именно об этом столько постов написал, чтобы обратить внимание на необходимость изменения дефолтного параметра в сторону увеличения, иначе смысла нет.
Примечание. Нет смысла создавать zram, превышающий вдвое объем памяти, поскольку мы ожидаем степени сжатия 2: 1.https://www.kernel.org/doc/html/latest/admin-guide/blockdev/zram.html#set-disksize
Начиная с Linux 5.1 дефолт lzo-rle. Хороший дефолт. zstd - альтернатива - сжимает сильнее, но, возможно, медленнее.https://www.linux.org.ru/forum/general/16233491?cid=16233653
live@pra-roll ~ % cat /sys/block/zram0/comp_algorithm
lzo lzo-rle lz4 lz4hc 842 [zstd]
Делаю вывод, что при малом количестве памяти zram хоть чем-то может помочьНе прошло и 100 лет.
MNT_OPTS=compress=или swap в zram?
Не надо придумывать своих определений,Ну и как swap в zram называется по научному?
Для каждого случая свои инструментыНу так какие для каких? Надо как-то выводы из темы сделать...
А если disksize=Total RAM? Я же именно об этом столько постов написал, чтобы обратить внимание на необходимость изменения дефолтного параметра в сторону увеличения, иначе смысла нет.prar2008-ovs в виртуалке с 1G RAM и zram=100% (swap в zram) = в palemoon открывается youtube + при открытии 4го ролика зфдуьщщт упал
Автор zram предусматривает возможность создания disksize > MemTotal.Не веря в успех попробовал zram=200%
lzo-rle считается более быстрым, но zstd жмет сильнееПолучается - золотая середина lz4
Не прошло и 100 лет.Ну давайте выработаем какие-то рекомендации по использование - что юзать на каком железе и при каких задачах
в fedora34 хотят отказаться от него в пользу systemd-oomdhttps://www.opennet.ru/opennews/art.shtml?num=54871
palemoon открывается youtubeВ качестве стресс-теста годится, но в практическом применении лучше воспроизводить в стороннем плеере, на таком ограниченном железе.
Так сильнее тормозит (мне показалось)Да и сам сайт ютуба стал очень тяжелым, на слабом железе лучше переключать его на мобильную версию (расширение user agent).
на боксах аппаратное ускорение и там нет проблем с воспроизведением в самом браузере, как я понял.Нет. Как и на ПК в mpv менее ресурсоемко за счет HW акселерации, которая в этом году там появилась
Что лучше зависит, от прочих настроек. В случае чистого режима, когда ченджез в рам прикинуть что выгоднее своп в zram, rootfs в zram или оба зрама даже не знаю как. Скорее всего надо под юзкейсы подбирать.Вот я и говорю
Мутная темаУ продвинутых юзеров, как правило с железом - норм. Т.е. все эти штуки не особо нужны
при возникновении необходимости запустить офис для написания платежек, машинка жестко вешалась, при попытке в начале закрыть браузер а потом запустить libreoffice, браузер также впадает в недопустимый 2-3-х минутный ступор а то и большеУ меня 4G оперативки, попробовал вызвать oom-killer (earlyoom), как делал здесь (https://forum.puppyrus.org/index.php?topic=22942.msg172052#msg172052). Забил память вкладками (1000 штук), запустил видео в mpv, открыл libreoffice... Так и не дождался, система оставалась работоспособна, полного 'замерзания' не было. К тому же у меня нет свопа на физическом диске, только zram...
А все дело в ядре 000-kernel-5.11.0-pf2-1-pra_64.pfs и le9-patch, о котором писал здесь (https://forum.puppyrus.org/index.php?topic=23160.msg174269#msg174269).
Ядро с данным патчем и стандартными настройками позволяет умеренно комфортно использовать:Лор (https://www.linux.org.ru/forum/general/16334308?cid=16408322)
Firefox с 37 активными вкладками (все данные в RAM, без выгрузки, всё честно)
Discord
Skype
LibreOffice с открытым документом
Два PDF-файла (размером 14 и 47 мегабайт)
… на железе 2007 года, с Core2Duo E4600, 2 ГБ оперативной памяти DDR2@667 в одноканале и HDD такого же года! В zram при этом было под 3 ГБ данных: в 1.5 раза больше, чем оперативки физически (сжатие примерно в 3 раза).
Windows 10 на этом компьютере еле-еле запускается, не то, что работает. Нужно отметить, что и линукс без патча le9 еле шевелится, и swappiness не помогает: даже если его выставить в 200, файловый кеш всё равно активно вымещается.
Без патча при заполнении RAM всё начинает тормозить, прежде всего это выражается в значительных задержках (десятки секунд-несколько минут) при переключении приложений из-за низкой скорости чтения с HDD. С xanmod же можно переключиться из браузера в Discord так, будто ваш компьютер вобрал в себя всю свободную оперативку мира. Компьютер ни разу не приблизился к состоянию «зависания» (thrashing) — система временами замедлялась, но была полностью отзывчива.
С трудом верится, что такое примитивное действие (мягкая защита фиксированного количества случайного файлового кеша), реализованное несколькими строчками, так хорошо работает.
все дело в ядре 5.11.0-pf2-1-praВ LFA/LFD уже 5.12.0-pf6-lf (https://forum.puppyrus.org/index.php?topic=21774.msg177928#msg177928).
В LFA/LFD уже 5.12.0-pf6-lf.Любое лин. ядро можно к любому линуксу прикрутить. Т,е. с 5.12.0-pf6-lf все стало норм?
Любое лин. ядро можно к любому линуксу прикрутить.?
Патч принят в pf-kernel и linux-xanmod.Лор (https://www.linux.org.ru/forum/general/16334308)
Любое лин. ядро можно к любому линуксу прикрутить.Linux это и есть ядро. Правильно: "к любому дистрибутиву".
По ссылке есть образ LiveCD Mint XFCE 20.1Скачался 35eb69f92894bda8dff546dac40d812f linuxmint-20.2-xfce-oldpc-le9-08.07.2021-64bit.iso нерабочим
nohang-desktop.conf предоставляет настройки по умолчанию, оптимизированные для использования на рабочем столе.
Можно потом перенести куда-нибудь, для тестирования новейших технологийЛучше выдрать ядро и протестировать по сравнению с нашим pf
Главное, чтобы все могли оценить работу системы в условиях малого количества памятиНу так :
У меня под рукой нет 1-2гб ПК. На виртуалке - не знаю, насколько хорошая идея экспериментировать...Нормально, именно для экспериментов на 'зависла/не зависла' система, израсходовав всю память.
система с de-mintПерепутал с mate, :) там xfce. Mint, это название дистрибутива. )
* the latest BBRv2 fix has been applied
* all the extra BFQ patches have been dropped due to kernel panic
* the potential igb netpoll fix has been reverted as useless
* the anonymous mappings protection under memory pressure has been introduced
the anonymous mappings protection under memory pressure has been introducedЧто это? У меня так часто компилить в планах не было. Кроме вас, пока не наблюдаю восторженных юзеров
На наши дистры эти параметры пробовали переносить?
live@roll2103 ~ % uname -r
5.12.0-pf6-lf
Лор1 (https://www.linux.org.ru/forum/general/16334308?cid=16410414)the anonymous mappings protection under memory pressure has been introducedЧто это?
более слабые 32-битные не подойдут для нынешних веб-сайтов не в силу своей архитектуры, а из-за производительности. 64-битные процессоры массово появились в 2006-2007 годах.
1 ГБ RAM — абсолютный минимум для терпеливых. 2 ГБ и более значительно расширят возможности многозадачности и повысят общую скорость
Запускаю в google-chrome 10 вкладок с нашим форумом
zram=150% Ядро 5.11pf (с le9-patch). Все ок.Для полноты эксперимента и наглядности, неплохо бы забить память тем количеством вкладок, когда больше уже невозможно комфортно пользоваться системой.
Для полноты эксперимента и наглядности, неплохо бы забить память тем количеством вкладок, когда больше уже невозможно комфортно пользоваться системой.Проверил на прар2103 с ядром 5.12pf-lf - все ок , как и выше. На 54й вкладке zram-swap заполнился и вкладки упали (что соответственно привело к освобождению памяти и по F5 упавшие вкладки можно восстановить). Т.е. не надо мудрить с oom-killer и onetab (https://forum.puppyrus.org/index.php?topic=21148.0) ;D
zram=150%
Алгоритм lzo-rle считается более быстрым, но zstd жмет сильнее.Желательно дефолтом lzo-rle. Скрин.ЦитатаНачиная с Linux 5.1 дефолт lzo-rle. Хороший дефолт. zstd - альтернатива - сжимает сильнее, но, возможно, медленнее.https://www.linux.org.ru/forum/general/16233491?cid=16233653
подключила swapfile на 4 Г и добавила своих 2 ГПовторили мой эксперимент на железе? Какая конфигурация?
Если у тебя HDD - сжатие мастхэв.Т.е. если zswap до конца постоянно не заполняется - лучше медленный своп на носителе откл
zram позволяет избежать своппинга на медленный диск.
Используй zram достаточного размера. Своп на диске лучше выкл, если не нужна гибернация.
hakavlad
Желательно дефолтом lzo-rleУ меня в скрипте /etc/rc.d/zram выставлено lz4. наверное вообще это убрать. Пусть остается дефолт ядра. В 512пф = lzo-rle
Повторили мой эксперимент на железе? Какая конфигурация?Мой эксперимент на железе длится уже давно, все системы 64 бит и даже DDR1, в рeжиме браузер + youtube заканчивались примерно одинаково - зависом с такой RAM 1,5Г. На HDD (других скоростных носителей нет) организован swapfile 4Г, при переходе 30% RAM , системы начинают тупить и встает выбор : проверить свои нервы или рестарт, ну или конкретный завис. Более менее работает PRA-retro.
Какой своп заполняется в первую очередь?
Поставил Prar21.03-07Волшебный эффект связан только с ядром. На слабом железе x86_64 лучше юзать LFD10 c ядром 512-pf-lf
с параметром загрузки zram=150% , создает swap 6,5Г сама автоматом, но в некоторых системах (не помню) 2Г и 1Г с чем связяно - незнаю.Какая-то лажа у вас. zswap создается во всех моих дистрах скриптом /etc/rc.d/zswap. Разбирайтесь откуда у вас другие цифры
Какой своп заполняется в первую очередь?тот, у которого prio больше. Обычно zram разделам дают больший приоритет.
Для i686 ядер с le9-patch у нас нет. И вряд ли у кого естьВ чем проблема собрать?
Лучше выдрать ядро и протестировать по сравнению с нашим pfЧто такое ваше pf? какие у вас ядра, какие версии, какие патчи?
приветики-пистолетикиПриветствую! Да это же сам автор патча. Сразу спасибо и +
отвратительный набор капч мне пришлось разгадывать при регистрации!Зато спама почти нет. Оно того стоит
на x86_32 все ок должно быть.Может где-то и скомпиленное 32 ядро есть с le9? Мы не нашли
бэкпорты старой версии длят 5.4 и 4.19 https://github.com/hakavlad/le9-patchНашел там только https://github.com/hakavlad/le9-patch/blob/main/le9db_patches/le9db-5.10.patch
новые бэкпорты для le9db скоро также выйдутМожет выделить про le9 отдельной темой или разделом? Для анонсов и т.п.
У меня так часто компилить в планах не былоСвежедобавленная защита анонимной памяти вам скорее всего не понадобится.
Linux это и есть ядро. Правильно: "к любому дистрибутиву".Linux - семейство операционных систем.
Может где-то и скомпиленное 32 ядро есть с le9? Мы не нашлиНе видел таких.
Не знаете в чем заключается "своя реализация" le9 в pf?знаю)
тот, у которого prio больше.Это понятно. Было не ясно что выставлено у автора поста
В чем проблема собрать?В том что я тут один собиральщик и не считаю, что сильно в этом разбираюсь
Что такое ваше pf? какие у вас ядра, какие версии, какие патчи?https://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.12.0-pf6-lf/PKGBUILD.tar.xz
Есть мысли про выставление еще каких-то параметров?Хотелось бы от автора услышать рекомендации для пк с 1,2,4 RAM
я тут один собиральщик и не считаю, что сильно в этом разбираюсьтак а я совсем не разбираюсь
Еще интересно как zram+le9 взаимодействуют с uksm вообще и pf реализацией в частностидумаю никакого особого взаисмодействия нет: zram - это одно, le9 - второе, uksm - третье, и никто никому не мешает.
Может выделить про le9 отдельной темой или разделом? Для анонсов и т.п.не вижу в этом смысла, особых анонсов не планируется
Там только 1 бранч... Тыкните пальцем в самый старый le9https://github.com/hakavlad/le9-patch/blob/main/obsolete/le9cb_patches/le9cb0-4.19.patch
Не знаете в чем заключается "своя реализация" le9 в pf?
Возможные ошибки:пример https://www.linux.org.ru/news/kernel/16052362?cid=16169325
у pf жесткость мягкого порога (vm.unevictable_kbytes_low) зависит от своппинес - с понижением swappiness защита ухудшается.В наших сборках по умолчанию vm.swappiness=60. Впрочем это значение дефолтно почти во всех дистрибутивах. У меня 200, но научно я не смогу обосновать свой выбор. )
live@roll2103 ~ % sudo sysctl -a | grep swap
vm.swappiness = 200
live@roll2103 ~ % uname -r
5.12.0-pf6-lf
swappiness это всего лишь уровень баланса между файловыми страницами и анонимнымиДа. От swappiness зависит какие страницы будет выталкиваться при нехватке памяти - файловые или анонимные. Высокий swappiness дает эффект, подобный le9 - защищает кэш файлов.
swappiness=100Ссылка (https://www.linux.org.ru/news/kernel/16052362?cid=16086791)
Не представляю чтобы было иначе. У меня везде так.
насколько глубоко бэкпортировать? 4.19? 4.14?В нашей популярной в народе сборке для древнего железа на дебиан9 2 ядра : 4.4 и 5.1
Считалось, что при выставлении в ноль, свап выключалсяВозможность своппинга зависит также от vm.watermark_scale_factor.
Хотелось бы от автора услышать рекомендации для пк с 1,2,4 RAMУ нас в основном любители, которые любят пошаговые инструкции
Бэкпортировать сложно?Нет, полчаса делов на неспешный перенос строк. Это если не тестировать результат.
Прошу форумчан проверить в DDR01 у всех, у кого не работает на 5.1. ядре работает на https://mirror.yandex.ru/puppyrus/puppyrus-a/kernel/new/4.19.2-pf5/ ?
По итогу опроса, может скомпилю 4.19 le9 uksm
От типа браузера как-то le9 зависит или он более низкоуровневый?Не понимаю вопроса.
От типа браузера как-то le9 зависит или он более низкоуровневый?Выше я тестировал на хроме. Волшебный эффект le9 будет с любыми прогами?
Не понимаю вопроса.
https://www.phoronix.com/scan.php?page=news_item&px=le9-Linux-Low-RAMПоздравляю с международным признанием! Даешь в mainline kernel !
На системах со snap/flatpak выше потребность в резервировании кэша, так как такие пакеты приносят свои либы вместо использования системных, что повышает потребность в защите большего объема кэша файлов.У нас используется "портированный софт" :что-то подобное с несистемными либами в своей реализации.
200М резервов достаточно для комфорта.Имеется ввиду zswap такого размера?
Имеется ввиду zswap такого размера?размер защищаемого объема кэша, то есть vm.unevictable_kbytes_low/min
свежийТ.е. улучшения продолжаются? Что означают 2 букбы после le9
Что означают 2 букбы после le9le9 - это идея первого автора - Маркуса Линснера. Он называл патчи le9b, le9g, le9h и т д.
Т.е. улучшения продолжаются?улучшил все что мог, новых идей нет. - С апреля фактически нет развития, до этого шли тесты и развитие.
Провел эксперимент : ddr01-21.06-i686.iso в virtualbox c 1gb RAM
2. zram=150% Все значительно лучше. Вкладок можно открыть больше и переключение не тормозит. На 5.1 ядре лучше чем на 4.4 : быстрее происходит перетекание занятой RAM в zswap.
Zswap это zswap, а zram это zram. Не надо придумывать своих определений, они уже и так есть.Думаю из-за этой путаницы в определениях и не был получен нормальный ответ на вопрос:
Хотелось бы услышать рекомендации по выбору размера zswap в % по отношению к физической RAM
le9-patch в чистом виже нетНепонятна фраза. Так в эксперименте ядра с le9 или нет?
Zswap это zswap, а zram это zramДа . Был не прав.
В отличие от zswap, zram-устройство, использующееся в качестве раздела подкачки страниц памяти, до версии ядра 4.14 не имело возможности выгружать страницы памяти в какое-либо резервное хранилищеВ моих экспериментах на 4.4. ядре все хуже
Начиная с версии ядра 4.14, пользователь имеет возможность указать для zram-устройства любое другое блочное устройство в качестве резервного хранилища, в которое могут выгружаться несжимаемые/неиспользуемые страницы памяти. При этом выгрузка страниц в резервное хранилище происходит в несжатом виде и, в отличие от zswap, только по команде администратора системыВ любом случае получается что на ядрах <4.14 с zram ловить нечего
Так в эксперименте ядра с le9 или нет?На 5.1pf x86_64 ядре есть своя (от pf) реализвция le9
Изначально разработка велась под названием compcache, и первые рабочие версии были сделаны для ядра 2.6.26(Июль 2008)
Начиная с декабря 2009 года и ядра 2.6.33 оно доступно в ядре, в разделе Staging. Для более старый ядер патчи все еще доступны на вышеуказанном сайте.
В ядре 3.8 должно было быть вынесено из Staging, но это не произошло.
А вот это что-то вообще не понял...
writebackhttps://www.kernel.org/doc/html/latest/admin-guide/blockdev/zram.html#optional-feature
С CONFIG_ZRAM_WRITEBACK, zram может записывать простаивающую/несжимаемую страницу к резервному хранению, а не к хранению в памяти. Чтобы использовать эту функцию, администратор должен настроить устройство резервного копирования с помощью:
echo /dev/sda5 > /sys/block/zramX/backing_dev
перед установкой размера диска. На данный момент он поддерживает только раздел.
Нужна поддержка CONFIG_ZRAM_WRITEBACK в ядре.В наших пф есть?
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
было бы полезно посмотреть сразу в терминалеНадо редко. В репе конфиг выложен.
без поддержки.Я бы вряд ли стал юзать...
Кстати, в дефолтном (https://build.opensuse.org/package/view_file/home:post-factum:kernels/linux-pf-generic/config_arch_generic?expand=1) конфиге pf он включен.Нужна поддержка CONFIG_ZRAM_WRITEBACK в ядре.В наших пф есть?
А вот это что-то вообще не понял...
в дефолтном конфиге pf он включен.Ну так там стандартное большое ядро .
pf-kernel provides the file pages protection (with own le9 implementation) by default since v5.10-pf2;
linux-xanmod provides the file pages protection (with le9db patch) by default since 5.12.3-xanmod1 (commit) and 5.10.36-xanmod1 (commit).
zen-kernel provides le9 since v5.12.18 (commit). Cache protection may not work by default due to mg-LRU enabled.
Патчи le9eb предоставляют три ручки sysctl со значениями 0 и не защищают рабочий набор по умолчаниюА раньше все работало по дефолту? Или это дополнительный функционал?
А раньше все работало по дефолту? Или это дополнительный функционал?Патч предлагает CONFIG опции с нулевыми значениями. Юзер может собрать с любыми другими, или менять их налету через sysctl. Обычно (zen, pf, xanmod) собирают с мягкой защитой кэша от 256 до 512 МБ. Хотя по-моему 512 многовато (это дефолт linux-xanmod)
Патч предлагает CONFIG опции с нулевыми значениями.С нулями он вообще не работает? Как эти значения подобрать?
512 многовато (это дефолт linux-xanmod)в patch-5.13.0-xanmod1 нашел:
pf вообще не нашел таких параметровСмотреть в патче (https://github.com/pfactum/pf-kernel/compare/v5.13...v5.13-pf6.diff). Наверно это:
zram+le9-patch дают волшебный эффект на ПК с малым к-вом RAMЕще чуть-чуть примеров "волшебного эффекта":
...своп на zram и zram disksize в три раза больше MemTotal и alg=zstd.Лор (https://www.linux.org.ru/forum/general/16497110?cid=16497721)
Вот пример: 2 гига памяти, и 6 улетело в своп. То есть zstd позволяет сжатие в несколько раз при сборке. Так что можно делать своп даже в три раза больше оперативы.
Скриншот: https://imgur.com/a/vY9qrWz
Это сборка ядра 514 в 128 потоков, емнип, на двух гигах оперативы.
При этом: сохранялась отзвычивость, спокойно сделал скриншот на пике нагрузки, система ни разу не зависала.
Опасненько размер zram делать больше ramВыше я делал. Как минимум однозначно можно сказать что с swop-in-zram при маленьком количестве памяти значительно лучше
Скриншот: https://imgur.com/a/vY9qrWzВерхний график использования процессора?
Верхний график использования процессора?Если вопрос про то, насколько zram= увеличивает нагрузку на проц - я увеличения не почувствовал.
Верхний график использования процессора?Это тест с компиляцией ядра 514 в 128 потоков. Естественно процессор будет задействован под верхнюю планку.
вышел le9fd, без заморозки и багов переваривающий дажеЛор (https://www.linux.org.ru/forum/general/16334308?cid=16543664)
for i in {1..1000}; do (tail /dev/zero &); done
– быстрый запуск до тысячи хвостов - это невероятно!
https://github.com/hakavlad/le9-patch/blob/main/experimental/le9fd_patches/le9fd-5.14.patch
# uname -r
5.15.0-pf5-mgm
# cat /sys/block/zram0/comp_algorithm
lzo lzo-rle lz4 lz4hc 842 [zstd]
Нужна поддержка CONFIG_ZRAM_WRITEBACK в ядре.- в моих 515 нет. В pf есть. Недоглядел. Добавить на будущее?
Я в 5.16 буду без -le, но с mglru.Лор (https://www.linux.org.ru/forum/general/16321096?cid=16726111)
У автора pf убраны из списка (https://gitlab.com/post-factum/pf-kernel/-/wikis/README#ok-whats-there-in-your-patchset) патчи Damon и zstd, как вошедшие в официальное ядро.
А так же, как и анонсировалось, удален le9 в пользу mgLRU. Кто не в курсе, это механизм работы с памятью от Google. Он уже давно используется на ChromeOS, где всегда было памяти в обрез, в пределах 1G, плюс–минус.
Так что спасибо hakavlad и его le9, он взбаламутил все это болото и его патч стали добавлять в оптимизированные ядра. В итоге, зашевелились и гугловцы со своим mgLRU и провели ряд оптимизаций кода с прицелом добавления в официальное ядро.
Так что спасибо hakavlad и его le9, он взбаламутил все это болото и его патч стали добавлять в оптимизированные ядра. В итоге, зашевелились и гугловцы со своим mgLRU и провели ряд оптимизаций кода с прицелом добавления в официальное ядро.MGLRU может появиться в Linux 5.19 для повышения производительности — особенно в ситуациях с нехваткой оперативной памяти (https://www.phoronix.com/scan.php?page=news_item&px=MGLRU-Not-For-5.18)
Если не любишь конпелять и используешь ядра что дают, то как альтернативу le9 можно использовать prelockd и memavaild.Лор 03.01.21 (https://www.linux.org.ru/forum/general/16087867?cid=16087971)
На самом деле эффект от него есть, но не прям уж впечатляющ - prelockd и memavaild по-моему сильнее эффект давали.Лор (https://www.linux.org.ru/forum/desktop/15046468?cid=16191733)
MGLRU v12 был недавно опубликован в качестве новой базы этой серии исправлений, разработанной Google, теперь против состояния Linux 5.19. Недавно я использовал эти патчи для свежего бенчмаркинга и по-прежнему впечатлен производительностью, особенно на устройствах с ограниченным объемом памяти.
Google уже использует MGLRU на Android и Chrome OS, и результаты оказались очень благоприятными. Многие организации/пользователи сообщают о отличных результатах работы с MGLRU . Если все пойдет хорошо, мы, возможно, увидим, что MGLRU будет включен в цикл Linux 5.20.
MGLRU ожидается для Linux 6.1 ... Линус Торвальдс также ожидал и надеялся, что MGLRU будет готов к окну слияния 6.0, но, увы, время не подошло.
в ядрах > 6.1 mglru уже включен по умолчаниюcat /sys/kernel/mm/lru_gen/enabled покажет
везде "0x0007"А ядро >=6.1 ?
Что дает 1000 и для чего нужно менять, я х.з.