Ноут старый (2008 г.), памяти 2 Гб, из которых 256 Мб уходит на видео, поэтому пробую ставить разные оси, пробую, ищу.А включить zswap? Через systemd-swap или прописав в командной строке grub (grub2; в grub4dos не сработает ).
или прописав в командной строке grub (grub2; в grub4dos не сработает ).Команды работают и в grub4dos.
z3fold нашими ядрами не поддерживаетсяПоправка.
dmesg| grep zswap
[ 0.725832] zswap: loaded using pool lzo/zbud
dmesg |grep zswap
[ 0.721714] zswap: loaded using pool lz4/z3fold
в grub4dos не сработает ).Работает:
live@pra-roll:~$ dmesg |grep zswap
[ 0.000000] Command line: zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=50 zswap.zpool=z3fold dir=praroll quiet noload=de-ops;vala;spacefm-ng-gtk3 load=mesa;de-lxqt;lxqt-gtk3;qt5-;gvfs;lxqt-arc
[ 0.000000] Kernel command line: zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=50 zswap.zpool=z3fold dir=praroll quiet noload=de-ops;vala;spacefm-ng-gtk3 load=mesa;de-lxqt;lxqt-gtk3;qt5-;gvfs;lxqt-arc
[ 0.828115]zswap: loaded using pool lz4/z3fold
title ▒▒ PRA-roll LXQT %l%
set d=praroll
set k=-4.15.4-pf
kernel /%d%/vmlinuz%k%_64 zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=50 zswap.zpool=z3fold dir=%d% %s% quiet %v% %x%;de-lxqt;lxqt-gtk3;qt5-;gvfs;lxqt-arc
initrd /%d%/initrd.xz
Это позволит юзать своп более эффективно (т.е. мало) ... Чем это поможет компу, на котором памяти мало?Сами себе и ответили - реже будет обращаться к медленному диску.
реже будет обращаться к медленному диску.Да, но при наличии приличного к-ва RAM
Если памяти мало - поможет своп на быстром носителе (тего обычно тем более нет на старых пк)Замечено ( 512 RAM, pent4, frugal):
Да, но при наличии приличного к-ва RAMZswap
Без этого эффекта от zram(zswap) не будет
Если памяти не хватило то вы словите фриз при начале записи на дискМожет еще от версии ядра зависит? У вас там, в magos, какие то древние ядра используются (4.9). :)
Ценой сокращения ввода/вывода является увеличение нагрузки на процессор, который тратит дополнительные ресурсы на сжатие и распаковку данных.Т.е. если процессор слабенький, то применение zswap может добавить тормозов?
Т.е. если процессор слабенький, то применение zswap может добавить тормозов?А попробовать? :)
Если бы zswap не был включен, то запись в своп раздел началась раньше и тормозить начало бы раньше, но резкого фриза как с zswap, когда начинается распаковка из сжатого кэша и запись в своп вы бы не получилиМожет есть смысл 'поиграться' с vm.swappiness= 70 или 90?
при тестах было в районе 50Значение swappiness может быть установлено в диапазоне от 0 до 100. Низкие значения предписывают использовать подкачку реже, высокие — чаще. Значение по-умолчанию равно 60. Это значит, что при достижении расхода RAM в 40%, ядро Linux активирует применение swap.
при тестах было в районе 50Скрин из Magos.
Это значит, что при достижении расхода RAM в 40%, ядро Linux активирует применение swap.Это не так работает. Все значительно хитрее. Ни где не нашел точного описания алгоритма, но чем выше цифра тем агрессивнее свопит. С процентом от свободной РАМ вроде как не связано.
Вопрос - надо ли это кому-нибудь?Прошу помощи. Создал pfs модуль для автомонтирования zram. Файлы создаёт, но в /etc/fstab и /sys/block/zram0/disksize он не пишет, либо изменения перетираются во время дальнейшей загрузки. Посмотрите пожалуйста,что не так?
Если initrd не принципиален попробуйте uird.Спасибо за вариант! Мои знания фрагментарны. Могу понимать С-код, несколько Bash. Сейчас пытаюсь понять как можно 1) автозапуском/автоконфигурированием выделить в RAM место при одновременном сжатии, т.е наверное это функция или команда или методика - zram.По приведённой мною выше ссылке, вручную получилось выделить zram. По крайней мере Htop->swp показывает столько сколько просил. Для меня конфигурирование системы это новое. Т.е пока не знаю где должны быть по канонам управляющие скрипты/параметры.
Команды брал тут:https://wiki.archlinux.org/index.php/Improving_performance#Zram_or_zswapПо этой ссылке предложены два пакета со скриптами включения zram (systemd-swap и zramswap). Ничего придумывать не надо. Если PRA с systemd, то включить службу и перезагрузиться. Если c minirc, то ... не знаю. :)
Ничего придумывать не надо.Вот этот код я расположил по указанным в тексте каталогам и файлам и запаковал в pfs. И судя по суффиксам каталогов ".d" код как раз и является реализацией средствами systemd.:
Если PRA с systemdКак узнать? По умолчанию в PRA1612-middle systemd работает? А если и работает, то влияет ли на возможность записи в файл,например в /etc/fstab и /sys/block/zram0/disksize?
По умолчанию в PRA1612-middle systemd работает?
влияет ли на возможность записи в файл,например в /etc/fstab
$ cat /etc/fstab
# При использовании porteus-initrd (initrd.xz)
# Не редактируйте этот файл так как fstab пересоздается автоматически во время каждой загрузки.
$ systemctl --versionУ меня:
$ systemctl --version
bash: systemctl: команда не найдена
$ cat /etc/fstabПонятно.
# При использовании porteus-initrd (initrd.xz)
# Не редактируйте этот файл так как fstab пересоздается автоматически во время каждой загрузки.
# modprobe zram
# echo lz4 > /sys/block/zram0/comp_algorithm
# echo 32G > /sys/block/zram0/disksize
# mkswap --label zram0 /dev/zram0
# swapon --priority 100 /dev/zram0
Скачать пакетЕсли сложно с AUR.
...и пробовать запустить.Становится яснее. Посмотрел приведённый Вами скрипт и пришёл к выводу, что это почти тот же код, только с многочисленными проверками. Но и Bash-код и C-код необходимо где-то размещать для автостарта. По Вашей сслыке в заголовке кода указано:"path: root/zramctrl" Это рекомендуемое место? А имя скрипта имеет значение?
Это рекомендуемое место?Нет, это часть aur пакета zramswap-2-1-any:
sudo systemctl enable zramswap.service
sudo systemctl start zramswap.service
bash: systemctl: команда не найденавики (http://wiki.puppyrus.org/puppyrus/pra-roll#%D0%B4%D0%B5%D0%BC%D0%BE%D0%BD%D1%8B_%D0%B8%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_systemd_minirc)
И запускается через systemd:А если systemd, тогда вижу противоречие: для Archlinux добавление кода в /etc/fstab приемлемая практика, а в PRA: (# Не редактируйте этот файл так как fstab пересоздается автоматически во время каждой загрузки.). Какой вариант типичный для Linux-OS, запрет или разрешение? И дополнять /etc/fstab не следует не только руками, но и опосредовано через скрипты автозагрузки? Т.е функционал sftab не следует расширять или ещё что? Не понятно.
а в PRA: (# Не редактируйте этот файлВ PRA /etc/fstab создаётся заново при каждой загрузке скриптом linuxrc (строки 56 -93) и не являются запретом на редактирование, а всего лишь предупреждением, что файл будет переписан с нуля при перезагрузке.
обнаружил, что компилить какие-то вещи намного быстрее в ~/Загрузки (или в каком-то подобном месте), чем на физическом разделе HDD. )Т.к. при компиляции много обращений к маленьким файлам - идеально будет когда исходники и Devx - в RAM. Т.е. исходники в /tmp , DEVX грузим copy2ram
swap - лучше вообще не использовать.Почему? Сейчас алгоритмы использования свопа уже не такие как раньше. Своп так просто не используется, только по делу.
Не хватает ОЗУ - пишемся в своп. А его держим в ОЗУ:)На 2 гиговой машине zram + lzo очень спасают.
Я ничего не понял. По сути вопросаЭто работает )
Я ничего не понял. По сути вопросаhttps://wiki.archlinux.org/index.php/Zswap
Zswap - это функция ядра, которая обеспечивает сжатый кэш RAM для страниц подкачки. Страницы, которые в противном случае были бы выгружены на диск, вместо этого сжимаются и сохраняются в пул памяти в ОЗУ. Когда пул заполнен или ОЗУ исчерпано, страница с наименее использованным (LRU) распаковывается и записывается на диск, как если бы она не была перехвачена. После распаковки страницы в кэш подкачки сжатую версию в пуле можно освободить.https://wiki.archlinux.org/index.php/Improving_performance#Zram_or_zswap
Модуль ядра zram (ранее назывался compcache) предоставляет сжатое блочное устройство в ОЗУ. Если вы используете его как устройство подкачки, ОЗУ может хранить гораздо больше информации, но использует больше ЦП. Тем не менее, это гораздо быстрее, чем обмен на жесткий диск. Если система часто возвращается к свопу, это может улучшить отзывчивость. Использование zram также является хорошим способом сокращения циклов чтения / записи на диске из-за подкачки на SSD.Не надо теоретизировать. Давайте тестировать ;)
Аналогичные преимущества (при аналогичных затратах) могут быть достигнуты с использованием zswap, а не zram. Эти два, как правило, похожи по своему намерению, но не по действию: zswap работает как сжатый кэш ОЗУ и не требует (и не разрешает) обширной конфигурации пользовательского пространства.
Если ОЗУ заканчивается, надо добавлять ОЗУ)А своп по вашему чем занимается?)) Физически добавить память не всегда возможно.
Если ОЗУ заканчивается, надо добавлять ОЗУЭто по любому лучший вариант
А своп по вашему чем занимается?))
Вы серьезно?!Своп, находящийся в оперативе добавляет оперативуЕсли коротко, то да!
Своп, находящийся в оперативе добавляет оперативу...Это сжимающее блочное устройство в памяти. Если вы архивы в ОЗУ не храните, в нашем случае это могут быть модули при copy2ram, то сжатие в среднем 2.5-3 раза. 1000 мб могут сжаться до 350-400 мб, тем самым освободив в ОЗУ 600-650 мб, по-другому говоря добавив в распоряжение другим программам 600 мб дополнительной памяти. Сжатие конечно зависит от характера данных. В общем получается использование ОЗУ более оптимальное. Все ненужное сжимается и зря в памяти не болтается. Докупить физической памяти можно для компа или ноута, а для паншета, смартфона или ТВ приставки? Не говорю что невозможно, но там сложнее с этим. Это надо жестко кулибничать.
Не надо теоретизировать. Давайте тестировать ;)
kernel /%d%/vmlinuz%k%_64 zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=50 zswap.zpool=z3fold dir=%d% %s%Вариант для задания "zswap и его параметров" одной переменной (например для опционального применения):
title set zswap %zs%
set "zs=zswap.enabled=1 zswap.compressor=lz4 zswap.zpool=z3fold zswap.max_pool_percent=50"
lock
zswapпока недопонял - для прменения zswap наличие swap обязательно?
zramНа основании https://habr.com/ru/post/172137/#comment_5986503 сделал модуль zram-swap-kn01.pfs ( в прикреплении).[ для ПРА, для подключения при первоначальной загрузке]
пока недопонял - для прменения zswap наличие swap обязательно?Для zswap наличие swap обязательно. А вот в каком виде - раздел или файл, без разницы. Swap-раздел проще, т.к. подхватывается автоматом.
Достаточно ли наличия "дефолтного свап-раздела" , подключаемого по-умолчанию (без параметра noswap ) ?Достаточно.
На основании https://habr.com/.....Статья старая, в zram появились с тех пор новые параметры и возможности.
Как "оценить" "правильность работы" zram?
$ zramctl
$ zramctl --output-all
в zram появились с тех пор новые параметры и возможности.приблизительно понятно: в /sys/block/zram0/* нужно/можно прописывать параметры.
https://www.kernel.org/doc/Documentation/blockdev/zram.txt
$ zramctl- пока у меня "не показывает" (пра03-рет)
пока у меня "не показывает" (пра03-рет)
% zramctl --version
zramctl из util-linux 2.33
% pacman -Qs util-linux
local/util-linux 2.33-2 (base base-devel)
live@pc:~$ zramctl
NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram0 lzo 512M 4K 76B 12K 2
live@pc:~$ zramctl
bash: zramctl: команда не найдена
upd. Swap on zRAM using a udev ruleЭто плохая идея. Зрам не имеет отношения к свопу, своп это только один из способов его использования.
$ swapon --help
-d, --discard[=<policy>] enable swap discards, if supported by device
Available discard policy types (for --discard):
once : only single-time area discards are issued
pages : freed pages are discarded before they are reused
If no policy is selected, both discard types are enabled (default).
Это, как я понял, чтоб освобождать zram от старых данных, чтобы они не висели 'мертвым грузом'?Да, ФС сразу освобождает не занятые блоки. В uird при использовании zram для tmpfs discard используется, иначе при удалении данных из tmpfs ОЗУ не освобождается.
sudo swapon -d /dev/zram0У меня своп монтируется обычно, без -d, но при этом при освобождении свопа ОЗУ тоже освобождается, своп естественно на zram.
~ > free -h
total used free shared buff/cache available
Mem: 3,9G 3,1G 175M 204M 559M 309M
Swap: 5,8G 2,2G 3,6G
~ > sudo zramctl
NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram0 lzo 5,8G 2,1G 1,9G 1,9G 2 [SWAP]
~ > free -h
total used free shared buff/cache available
Mem: 3,9G 1,3G 2,0G 156M 550M 2,2G
Swap: 5,8G 371M 5,4G
~ > sudo zramctl
NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram0 lzo 5,8G 352,3M 91,8M 97,4M 2 [SWAP]
Еще один момент по поводу zRamЕще 4 момента )) Понять бы точно что все это значит )
compr_data_size compressed size of data stored in this disk
mem_used_total the amount of memory allocated for this disk. This
includes allocator fragmentation and metadata overhead,
allocated for this disk. So, allocator space efficiency
can be calculated using compr_data_size and this statistic. Unit: bytes
mem_limit the maximum amount of memory ZRAM can use to store the compressed data
mem_used_max the maximum amount of memory zram have consumed to store the data
Можно как-нибудь еще "увидеть" работоспособность zram на ПРА-ретро?
cat /sys/block/zram0/mm_stat
% zramctl --output-all
NAME DISKSIZE DATA COMPR ALGORITHM STREAMS ZERO-PAGES TOTAL MEM-LIMIT MEM-USED MIGRATED MOUNTPOINT
/dev/zram0
1,7G 45M 14,9M zstd 4 294 16,1M 800M 20,5M 648B [SWAP]
% free -m
total used free shared buff/cache available
Mem: 3498 1150 1593 256 754 1810
Swap: 1749 46 1703
% zramctl --output-all
NAME DISKSIZE DATA COMPR ALGORITHM STREAMS ZERO-PAGES TOTAL MEM-LIMIT MEM-USED MIGRATED MOUNTPOINT
/dev/zram0
1,7G 1,7G 394,1M zstd 4 11493 407,8M 800M 408,1M 15,9K [SWAP]
% free -m
total used free shared buff/cache available
Mem: 3498 3155 129 89 214 45
Swap: 1749 1745 3
В качестве эксперимента задал MEM-LIMITНадо попробовать забить своп так, чтоб COMPR дошло до 800+, но при этом чтоб свободное место в свопе ещё осталось, то есть чем-то не особо сжимаемым. Очень интересно что произойдет))
попробовать забить своп так, чтоб COMPR дошло до 800+Это только если zram создать на 4Gb. Или mem_limit в 300 mb.
Очень интересно что произойдет))Дым из компа? :)
Это только если zram создать на 4Gb. Или mem_limit в 300 mb.Да нет же. Скопируйте в tmpfs модули)
Скопируйте в tmpfs модулиМне показалось, что когда DATA сравнялось с DISKSIZE, COMPR тоже остановился. Но долго я не проверял - фризы.
В том смысле, где посмотреть что попало в zram, а что нет.Да это не важно. Если много залить, то часть все равно уйдет в zram. Я просто хотел понять как поведет себя ядро, если в свопе место ещё будет, а COMPR, который фактически равен размеру zram в ОЗУ, упрется в mem limit.
если у вас стоит SSD последнего поколения 3D+ на который воткнули swаp или zramzram на SSD? ???
хотя ладно боритесь, но читать веселоВас читать не менее весело :)
можете хоть что-то ощутить в задачах ну допустим по перекодированию видеоДля этой задачи от zram никакого профита.
% zramctl --output-all
NAME DISKSIZE DATA COMPR ALGORITHM STREAMS ZERO-PAGES TOTAL MEM-LIMIT MEM-USED MIGRATED MOUNTPOINT
/dev/zram0
3,4G 1,8G 457,7M zstd 4 18270 472,3M 800M 512,4M 112,4K [SWAP]
% free -m
total used free shared buff/cache available
Mem: 3498 3175 156 76 166 56
Swap: 3498 1781 1716
~ $ free -m
total used free shared buff/cache available
Mem: 2000 1279 65 150 655 416
Swap: 1400 687 712
~ $ cat /proc/swaps
Filename Type Size Used Priority
/dev/zram0 partition 1434060 704276 100
ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT MEM-LIMIT MEM-USED ZERO-PAGES
lzo 1,4G 304,4M 96M 100M 2 [SWAP] 100M 100M 30040
[ 636.891597] Write-error on swap-device (251:0:1943184)
С лимитом dmesg забит вот этимА если mem_limit сделать как и советуют в половину DISKSIZE, т.е. в данном случае 700mb?
А если mem_limit сделать как и советуют в половину DISKSIZEНу если адекватного размера сделать, то уж пока лимит не исчерпается ошибок не будет. Я то специально сделал поменьше, чтоб посмотреть что будет когда mem_used упрется в mem_limit. Так и предполагал, что ядро будет пытаться свопить, а zram limit не даст.
Так сложно написал.)Все понятно)
Zswap что ли хотят изобрести?))Zram и zswap все-таки они очень разные. Если цель использовать на устройствах с маленьким размером памяти (одноплатники), то zswap здесь уже не поможет. А zram даст выигрыш добавив памяти (виртуально?).
Если цель использовать на устройствах с маленьким размером памяти (одноплатники), то zswap здесь уже не поможет.Без свопа на диске конечно не поможет, да и так они очень разные, не спорю, но то что пытаются сделать те ребята очень похоже на zswap с использованием zbud или z3fold. Основную разницу вижу лишь в том, что zswap проиграет по сжатию, хотя с z3fold проигрыш будет минимальный, но со сжатием zstd скорее всего отрыв увеличится, и общий размер свопа у связки zram + своп на диске будет больше на размер zram. Если уж есть своп на диске, то на мой взгляд zswap предпочтительнее. Изначально известный размер сжатого пула в ОЗУ, никаких лимитов не нужно и вытекающих из этого ошибок записи в своп при достижении этого самого лимита.
подвести итоги: что для чего на чем рекомендуется использоватьНаверно это зависит о желаемой цели.
Может уже кто-то может подвести итоги: что для чего на чем рекомендуется использовать + пошаговая инструкция настройкиУ меня обычно везде uird.swap=auto, это значит, что при отсутствии дискового свопа включается zram, при наличии zswap. Но сейчас ввиду экспериментов на флешке задаю zram вручную, то есть не auto, а например uird.swap=zram::100::lz4, что как видно позволяет и размер задать и алгоритм. Смотрел тесты, читал комментарии, пришел к выводу, что на практике lzo все-таки получше будет чем lz4, а zstd пока не доехал.
от zram никакого профита.Да и от свопа тоже, ну если вы еще физику считаете наукой, а не буржуазной отрыжкой, то никакой экономии, увеличения производительности (а при zram так еще и потеря будет) не будет, ну для другого это все предумывается, для чего? Для завершения обработки значительных цело-дробночисленных массивов, коих в бытовой жизни не бывает, ну разве что перекодировка блу-рэя в мкв или мп4, ну по времени и современном инете выкачать требуемое из инета в разы быстрее. А если еще ОЗУ от 8 гБ, то и последняя операция становится просто маниакальной по желанию нагружать проц....
может подвести итоги:тут процесс важен..сколько копий по этому вопросу поломано в хлам на прочих линукс форумах, вот и до вас добрело, что примечательно, со временем затихнет, а потом опять взорвется :)
Gerasats, массивы бывают очень разные. Но я до сих пор не пойму, как за счет оперативы добавить ее же. Не, ну черт с ним с компрессией. Хотя на нее тож надо тратить время на запаковку и распаковку (диинамическую, заметьте). И енто дело один хрен в ОЗУ... То ли я тупой, то ли лыжи не едут...Все просто. Сжатие идет блочными методами. То есть при сжатии берется блок, он сжимается в 3-5 раз и размещается. В итоге получается, что в процессе сжатия требуется оперативки чуть больше, чем на блок, но сжимается куча блоков и в целом часть озу содержит сжатое в 3-5 раз. Поэтому реально в среднем около 2 размеров оперативной памяти получается. Но работает чуть сильнее процессор, который в повседневных задачах простаивает.
на каких минимальных характеристиках железа можно получить осязаемый эффект, т.е. проц не хуже какого-то и памяти нужно не меньше скольки?Использую zram на 2-х ядерном Celeron E3300 2.5GHz c 2 ГБ ОЗУ.
Да и от свопа тоже, ну если вы еще физику считаете наукой, а не буржуазной отрыжкой, то никакой экономии, увеличения производительности (а при zram так еще и потеря будет) не будетПри нехватке ОЗУ от свопа очень даже большая польза. Своп вообще не для увеличения производительности предназначен, а как вынужденная мера. zram-swap тоже самое, но он по сравнению с обычным свопом, в большинстве случаев, тормозить будет меньше, так как запись/чтение и скорость компресси/декомпрессии данных в ОЗУ будет быстрее чем запись/чтение на жесткий диск.
я до сих пор не пойму, как за счет оперативы добавить ее же. Не, ну черт с ним с компрессией. Хотя на нее тож надо тратить время на запаковку и распаковку (диинамическую, заметьте). И енто дело один хрен в ОЗУ...В памяти много неиспользуемых страниц, если их сжать в 3 раза, то освободится 2/3 от ранее занимаемого ими места. А трата времени на запаковку и распаковку можно не брать во внимание, так как алгоритмы быстрые и даже на слабых процах не займут критично много времени.
скорость компресси/декомпрессии данных в ОЗУ будет быстрее чем запись/чтение на жесткий дискИ какая компрессия-декомпресия в свопе? Своп не жмет и не разжимает данные, туда просто вкидываются куски согласно очереди обработки в ОЗУ, в отличии от зрама где таки жмем и пережимаем куски, из-за чего и тормозим...ну это так в порядке общения, по сути зрам тоже сжатие данных в винде, объем показываем в разы меньше на самом деле хаваем в разы больше...
можно получить осязаемый эффект:) Вот это извечный вопрос во всех обсуждениях временного хранилища, такой же вопрос задавался и на Минтах, и на Убунтах и на Манджарах...и знаете если и был ответ, и находилась пара с одинаковым железом (от слова совсем мать+проц+память+видео+винт) всегда возникал диспут: у одного космический успех, у второго космических размеров тормоз, поэтому по-моему вся полемика лежит в плоскости осязаемых реакций, в точнее кто что хочет, тот и видит....особо, как я уже говорил если ОЗУ от 4 до 8гБ, то как правило эффект близок к 0, при более 8гБ его вообще нету от слова совсем, а вот в пределах до 2гБ и идет война народная, при этом у одних это полный восторг, у других полное неприятие...так что с эффектом, как то все сложно...
Своп не жмет и не разжимает данныеА кто утверждает обратное?
в отличии от зрама где таки жмем и пережимаем куски, из-за чего и тормозимЕще раз говорю, основная цель не быстродействие, а освободждение памяти от неиспользуемых страниц.
как я уже говорил если ОЗУ от 4 до 8гБ, то как правило эффект близок к 0, при более 8гБ его вообще нету от слова совсемВ том то и дело, что это чаще всего нужно на компах с ОЗУ до 4 гб. На 6 и более гигах своп редко когда используется, разве что если вы занимаетесь видео монтажом и тому подобным или запускаете кучу виртуалок, но в таких случаях лучше припасти именно реальной оперативной памяти, если мать позволяет. А так, если у вас 8 гб и этого хватает, то о каком эффекте от зрам можно вообще говорить. Эффект только при дефиците памяти.
$ zstd --help
-# : # compression level (1-19, default: 3)
Не знаю только, насколько это востребовано в zRam.Для zram важна скорость, особенно если в нем своп. Думаю по умолчанию 3 оптимально дня большинства, хотя для вашего проца наверно можно и побольше )
Для retro с minirc простой способ включить zswap. Своппинг в swapfile.В ddr01 не получилось подключить swapfile автоматом.
[ Читать далее ]
zpool z3fold недоступно, использовано по умолчанию zbud - есть какая то разница?Если коротко и своими словами, то разница в степени сжатия. С z3fold она больше.
zpool z3fold недоступно, использовано по умолчанию zbud - есть какая то разница?zbud пакует максимум 2 страницы в одну, z3fold 3 в одну. То есть если у zbud в среднем сжатие 1.7, то у z3fold 2.7. Есть ещё zmalloc. Он жмёт максимально, но по сравнению с этими двумя работает иначе. Первые двое после заполнения пула переносят более старые страницы из пула на диск, а новые в пул. zmalloc же заполняет пул и далее все на диск.
backing_dev RW set up backend storage for zram to write outhttps://www.kernel.org/doc/Documentation/blockdev/zram.txt
With CONFIG_ZRAM_WRITEBACK, zram can write idle/incompressible page
to backing storage rather than keeping it in memory.
To use the feature, admin should set up backing device via
"echo /dev/sda5 > /sys/block/zramX/backing_dev"
Чтобы не копаться там в массе информации, даю ссылку на конкретный пример https://gist.github.com/sultanqasim/79799883c6b81c710e36a38008dfa374
echo lz4 > /sys/block/zram0/comp_algorithm
А если в своп что-то попадает - памяти и так мало и как это поможет.... не очень понимаю"Ненужное" будет в сжатом виде.
Почему бы не сделать вместо tmpfs - zram ...Можно, почему нет. В UIRD сделано. Еще есть варианты с btrfs образом в tmpfs.
"Ненужное" будет в сжатом виде.в памяти, которой и так не хватает (раз лезет в своп)
В UIRD сделаноЮзали? помогает?
есть варианты с btrfs образом в tmpfs.Я так понимаю, что будет примерно тоже но более настраиваемо и посложней
Не понимаю - но выше по теме люди пишут, что помогает...
Юзали? помогает?Использовал. Мне на 2 гиговом ПК очень помогало. Сейчас на этом ПК использую виндовый своп, потому что для copy2ram, ввиду несжимаемости модулей, такой вариант не подходит. А в последнее время copy2ram часто использую.
Я так понимаю, что будет примерно тоже но более настраиваемо и посложнейДа. Даже не знаю что лучше.
Мне на 2 гиговом ПК очень помогалоПри каких задачах?
в последнее время copy2ram часто использую.Вроде обсуждали и пришли к выводу, что польза только на ноуте - вообще носители отключить, чтобы батарею не жрали. В остальных случаях ускорит только первый запуск проги...
При каких задачах?Браузер в основном, плюс офис, телеграм и терминал.
В остальных случаях ускорит только первый запуск проги...Мне чтоб флешку вытащить. Почему-то иногда отваливается. Вроде и не задеваю.
Браузер в основном, плюс офис, телеграм и терминал.Тогда - пробуем. Делимся впечатлениями
Офф-топик:Завязывайте
кто-то может в цифрах показать у себя работу zram? swap в zram? zswap? И что, система не уходит в lockdown на ядре << 5.10 ?Юзал на твбокс (под линуксом). Когда хром сжирал память - висло
Юзал на твбокс (под линуксом). Когда хром сжирал память - вислоНу да, современные тенденции - использовать пользовательский oom-killer (earlyoom,nohang...), ибо родной не справляется.
Отключил. Так предсказуемее
Компания Google представила патчи (https://lore.kernel.org/lkml/20210413065633.2782273-1-yuzhao@google.com/) с улучшенной реализацией механизма LRU для Linux. LRU (Least Recently Used (https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B_%D0%BA%D1%8D%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F#Least_recently_used_(%D0%92%D1%8B%D1%82%D0%B5%D1%81%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B0%D0%B2%D0%BD%D0%BE_%D0%BD%D0%B5%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D0%B5%D0%BC%D1%8B%D1%85))) - это механизм, позволяющий отбрасывать или выгружать в своп неиспользуемые страницы памяти. По мнению корпорации Google, существующая реализация механизма определения подлежащих вытеснению страниц создаёт слишком высокую нагрузку на CPU, а также часто принимает неудачные решения о том, какие именно страницы выгружать.
В экспериментах, проведённых компанией, новая реализация LRU сократила количество принудительных завершений программ из-за нехватки памяти в системе (OOM kill) на 18%, в Chrome OS на 96% снизилось число отброшенных вкладок браузера из-за недостатка памяти и на 59% уменьшилось число OOM kill в нагруженных устройствах. Это вторая версия патчей, где устранена регрессия производительности и иные замеченные при тестировании недостатки.
Переписал в нашей вики https://wiki.puppyrus.org/soft/porteus-initrd?&#zram Так понятно?
При использовании swap in zram вместе с обычным swap (на диске) - выставляйте zram больший приоритет : swapon –priority 100 /dev/zram0, чтобы он использовался в первую очередьТема на лоре zram и zswap или что то ещё,вместе? (https://www.linux.org.ru/forum/general/16233491). Там упоминается и этот случай, в негативном контексте и предложением использовать zswap, если нужен своп на диске + сжатие.
предложением использовать zswapДобавил
Кроме того, для ускорения медленных носителей можно использовать zswapНорм? Или есть еще идеи?
Норм?
При использовании swap in zram вместе с обычным swap (на диске) - выставляйте zram больший приоритет : swapon –priority 100 /dev/zram0, чтобы он использовался в первую очередь
Или все же реализовать желаемое через возможности самого zram, с backing_dev.
получили обычный медленный своп на дискеМогу дописать - "не рекомендуется, т.к. после заполнения zram - swap окажется на медленном носителе"
backing_devНа моем 413 ядре это работает? А на каких еще?
На данный момент он поддерживает только раздел.Неудобно. Улучшений не произошло?
"не рекомендуется, т.к. после заполнения zram - swap окажется на медленном носителе"Там больше недостатков, ведь весь заполненный объем zram не будет освобождаться до перезагрузки компа. Мало хорошего, когда в памяти висит мертвым грузом приличный нерабочий кусок данных.
На моем 413 ядре это работает? А на каких еще?
Но если нет backing_dev в /sys/block/zram0/, а там его нет, значит без поддержки.Для примера, скрин из IceArch.
Там больше недостатковНу так я и напишу "не рекомендуется"
если нет backing_dev в /sys/block/zram0/, а там его нетв моем 513 нет. А чем backing_dev лучше zswap?
в uird по умолчанию включен zswapПосмотрел конфиги ядра арча (https://wiki.archlinux.org/title/zswap#Toggling_zswap)
echo "algo=zstd priority=1" > /sys/block/zramX/recomp_algorithm
#выбрать алгоритм рекомпрессии deflate, приоритет 2
echo "algo=deflate priority=2" > /sys/block/zramX/recomp_algorithm
#IDLE страницы рекомпрессия активируется режимом `idle`.
echo "type=idle" > /sys/block/zramX/recompress
#HUGE рекомпрессия страниц активирована режимом `huge`
echo "type=huge" > /sys/block/zram0/recompress
#HUGE_IDLE рекомпрессия страниц активирована режимом `huge_idle`
echo "type=huge_idle" > /sys/block/zramX/recompress
#перекомпрессия всех страниц размером более 3000 байт
echo "threshold=3000" > /sys/block/zramX/recompress
#рекомпрессия всех страниц размером более 3000 байт
echo "threshold=3000" > /sys/block/zramX/recompress
#рекомпрессия простаивающих страниц размером более 2000 байт
echo "type=idle threshold=2000" > /sys/block/zramX/recompress
Т.е. вот такой скрипт надо в автостартВ CachyOS уже добавили такое, https://github.com/CachyOS/CachyOS-Settings/blob/master/etc/udev/rules.d/30-zram.rules:
ACTION=="add", KERNEL=="zram[0-9]*", ATTR{recomp_algorithm}=="", ATTR{recomp_algorithm}="algo=lz4 priority=1"
IMPORT{program}="/sbin/sh -c \"echo \"type=idle\" > /sys/block/zram*/recompress\""
как оценить эффективность...Не имея четкого понимания, что это очень полезно не хочется добавлять сложных настроек