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

Автор Тема: zram (RAM-диск со сжатием данных), zswap (уменьшить количество обращений к SWAP)  (Прочитано 34647 раз)

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

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
  • Автор темы
Нехватка памяти, фризы:OOM KILLER , le9-patch и пр.
recompression

https://wiki.puppyrus.org/soft/porteus-initrd?&#zram
https://debianforum.ru/index.php?topic=9422.0
http://habrahabr.ru/post/172137/
http://archlinux.org.ru/forum/topic/11291/
https://webguard.pro/os/linux/zram-v-kachestve-swap-fajla-v-linux.html
zram vs zswap

zswap для minirc
UIRD
https://aur.archlinux.org/packages/sd-zram/

Ноут старый (2008 г.), памяти 2 Гб, из которых 256 Мб уходит на видео, поэтому пробую ставить разные оси, пробую, ищу.
А включить zswap?  Через systemd-swap или прописав в командной строке grub (grub2; в grub4dos не сработает ).
Zswap is a kernel feature that provides a compressed RAM cache for swap pages. Pages which would otherwise be swapped out to disk are instead compressed and stored into a memory pool in RAM. Once the pool is full or the RAM is exhausted, the least recently used (LRU) page is decompressed and written to disk, as if it had not been intercepted. After the page has been decompressed into the swap cache, the compressed version in the pool can be freed.
https://wiki.archlinux.org/index.php/Zswap
В комплекте с swap разделом или swap файлом.
(Здесь немного писал про systemd-swap http://forum.puppyrus.org/index.php?topic=21038.msg149139#msg149139)

Для командной строки груба:
zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=20 zswap.zpool=z3fold
1. zswap.max_pool_percent можно изменить на 50
2. zswap.zpool=
z3fold нашими ядрами не поддерживается, хотя это очень эффективный алгоритм в отличии от zbud.

z3fold is a special purpose allocator for storing compressed pages.
It is designed to store up to three compressed pages per physical page.
It is a zbud derivative which allows for higher compression
ratio keeping the simplicity and determinism of its predecessor.

https://www.kernel.org/doc/Documentation/vm/z3fold.txt

 К чему я это все написал. Просто я не верю, что full на старом железе даст какой-то выигрыш. Без SSD в качестве диска, там все будет тупить.
Фругал как раз и вдохнул новую жизнь в старичков за счет работы в оперативке. Для старого железа переходить на FULL это путь к тормозам (ИМХО).
Тем более в данном случае 2Gb памяти это совсем не плохо.

UPD.
или прописав в командной строке grub (grub2; в grub4dos не сработает ).
Команды работают и в grub4dos.
« Последнее редактирование: 21 Февраль 2023, 10:03:43 от sfs »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
  • Автор темы
Re: zswap
« Ответ #1 : 07 Ноябрь 2018, 02:31:46 »
z3fold нашими ядрами не поддерживается
Поправка.
Не грузятся lz4/z3fold из под systemd-swap.
Код
dmesg| grep zswap
[    0.725832] zswap: loaded using pool lzo/zbud

И грузятся, если прописаны в командной строке grub2.
Код
dmesg |grep zswap
[    0.721714] zswap: loaded using pool lz4/z3fold

 С нашими ядрами все нормально. :)

Оффлайн Boris

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 301
  • Репутация: +17/-0
Re: zswap
« Ответ #2 : 07 Ноябрь 2018, 08:56:59 »
в 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
Строки из menu.lst:
Код
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

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: zswap
« Ответ #3 : 07 Ноябрь 2018, 09:06:02 »
Если я правильно понял
Цитата
Zswap - это функция ядра, которая обеспечивает сжатый кеш RAM для страниц подкачки. Страницы, которые в противном случае были бы заменены на диск, вместо этого будут сжаты и сохранены в пуле памяти в ОЗУ. После того, как пул заполнен или ОЗУ исчерпано, последняя страница (LRU) распаковывается и записывается на диск, как если бы она не была перехвачена. После того, как страница была распакована в кэш подкачки, сжатая версия в пуле может быть освобождена.

Разница по сравнению с zram заключается в том, что zswap работает в сочетании с устройством подкачки, в то время как zram - это устройство подкачки в ОЗУ, которое не требует резервного обмена.
Это позволит юзать своп более эффективно (т.е. мало) за счет более рационального использования памяти
Чем это поможет компу, на котором памяти мало?

Оффлайн Boris

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 301
  • Репутация: +17/-0
Re: zswap
« Ответ #4 : 07 Ноябрь 2018, 09:12:00 »
Это позволит юзать своп более эффективно (т.е. мало) ... Чем это поможет компу, на котором памяти мало?
Сами себе и ответили - реже будет обращаться к медленному диску.
Кстати, работает на всех PRA и PuppyRus 15.12 из grub2dos.

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2538
  • Репутация: +33/-0
Re: zswap
« Ответ #5 : 07 Ноябрь 2018, 10:12:13 »
  Можно ли zswap и zram применять одновременно?
Gr4D, Grub2; HP Mini 210 VT - Intel Atom N470  @ 1.83GHz, Intel GMA3150, RAM=2 ГБ ;
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ.

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: zswap
« Ответ #6 : 07 Ноябрь 2018, 10:13:44 »
реже будет обращаться к медленному диску.
Да, но при наличии приличного к-ва RAM
Без этого эффекта от sram(swap) не будет
Если памяти мало - поможет своп на быстром носителе (тего обычно тем более нет на старых пк)

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2538
  • Репутация: +33/-0
Re: zswap
« Ответ #7 : 07 Ноябрь 2018, 10:27:02 »
Если памяти мало - поможет своп на быстром носителе (тего обычно тем более нет на старых пк)
  Замечено ( 512 RAM, pent4, frugal):
-- когда заканчивается "свободная RAM"(нужно еще проверить при zswap) - индикатор(верхнее его значение) в трее "плавно доходит" практически до нуля - ! и начинается "тупость компьютера".
 Если перед этим при тех же условиях(каких- уточнить могу "много позже") сослать либы браузера до запуска оного - то индикатор постоянно "держится" в районе 10%( !? почему-то  :o) и комп "тупит" не на столько(не так как в "предыдущем варианте", а работает в целом намного шустрее).
http://forum.puppyrus.org/index.php?topic=20544.0
« Последнее редактирование: 07 Ноябрь 2018, 10:30:14 от knn »
Gr4D, Grub2; HP Mini 210 VT - Intel Atom N470  @ 1.83GHz, Intel GMA3150, RAM=2 ГБ ;
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
  • Автор темы
Re: zswap
« Ответ #8 : 07 Ноябрь 2018, 15:49:51 »
Да, но при наличии приличного к-ва RAM
Без этого эффекта от zram(zswap) не будет
Zswap
Смысл технологии сводится к тому, что при необходимости выгрузки страниц памяти на диск производится попытка сжать страницы, размещая их при этом в пуле в оперативной памяти. По мере возможности сжатые страницы не выгружаются на диск чтобы избежать операций ввода/вывода с медленным носителем.

Реализация такого подхода позволяет, при возникновении необходимости сброса памяти в раздел подкачки, сократить ввод-вывод и повысить скорость работы системы в целом, за счет того, что по возможности избегается использование медленного носителя.

https://www.opennet.ru/opennews/art.shtml?num=35610
https://wiki.archlinux.org/index.php/Improving_performance#Zram_or_zswap

Если поискать по сайту 4pda по zram и zswap:
http://4pda.ru/forum/index.php?act=search&source=all&forums%5B%5D=all&query=zram&x=0&y=0&subforums=1
http://4pda.ru/forum/index.php?act=search&source=all&forums%5B%5D=all&query=zswap&x=0&y=0&subforums=1

 У меня на роутере (openwrt):
Код
# opkg list-installed |grep zram
kmod-zram - 3.18.23-1
zram-swap - 1-2

Цитата
На компе с pentium4 2.40Mhz (478 сокет) с 1Gb DDR1 тоже включен zswap.

 Везде используются (zram или zswap). В телефонах или тв боксах (андроидах), на роутерах (openwrt), в линукс дистрибутивах. И только в PRA не надо, ибо требует много памяти. )
DdShurick называет sfs прогрессивистом, а на самом деле он ретроград. :)


Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: zswap
« Ответ #9 : 07 Ноябрь 2018, 16:21:06 »
Практическое использование zswap не столь радостно. В реальных условиях все зависит от конкретных условий.
Со включеным zswap если принудительно забивать рам, то запись в своп раздел начнется только когда размер доступной (available) памяти будет около нуля. Если забивать дальше, то начнется запись в своп, но размер доступной рам так и будет в районе 1-3%. При чем переход к началу записи в своп сопровождается фризами системы.
То есть ы итоге. Если в процессе работы системы вам хватило кэша zswap и на диск записи врообще не было, то zswap вам однозначно помог, тут все приблизительно аналогично zram-swap. Если памяти не хватило то вы словите фриз при начале записи на диск. Если бы zswap не был включен, то запись в своп раздел еачалась раньше и тормозить начало бы раньше, но резкого фриза как с   zswap, когда начинается распаковка из сжатого кэша и запись в своп вы бы не получили. Ну и когда память и своп сожраны почти полностью zswap опять немного выручит, так как обший размер zswap кэш плюс своп больше чем просто своп, но это уже предположение.
Для uird решили включать с uird.swap=auto (если своп найден) и с uird.swap=/dev/sda2;zswap если просто указать раздел то включать zswap uird не будет.
zram-swap включается с uitd.swap=auto если своп не найден и с uird.swap=zram
P.S. вклюяение zswap и zram-swap одновременно, кмк, смысла не имеет.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
  • Автор темы
Re: zswap
« Ответ #10 : 07 Ноябрь 2018, 16:35:06 »
Если памяти не хватило то вы словите фриз при начале записи на диск
  Может еще от версии ядра зависит? У вас там, в magos, какие то древние ядра используются (4.9). :)
 У меня на pentium4 с ядром 4.13 проблем никогда не было. Длительное практическое использование zswap, своппинг происходит не заметно. Причем диск старенький, интерфейс ide.

UPD. Ну и, наши ядра типа оптимизированные - kernel-pf.
« Последнее редактирование: 07 Ноябрь 2018, 16:38:48 от krasnyh »

Оффлайн RoDoN

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 6282
  • Репутация: +141/-0
Re: zswap
« Ответ #11 : 07 Ноябрь 2018, 16:38:09 »
Ценой сокращения ввода/вывода является увеличение нагрузки на процессор, который тратит дополнительные ресурсы на сжатие и распаковку данных.
Т.е. если процессор слабенький, то применение zswap может добавить тормозов?
Lenovo G500 (i3-3110M, 8 Гб, Intel + Radeon HD 8570)
PRA 16.12 JWM, Runtu 22.04 x64 XFCE

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
  • Автор темы
Re: zswap
« Ответ #12 : 07 Ноябрь 2018, 16:39:32 »
Т.е. если процессор слабенький, то применение zswap может добавить тормозов?
А попробовать? :)

upd. Вот еще на форуме интересное, правда про zram
https://archlinux.org.ru/forum/topic/13907/
« Последнее редактирование: 07 Ноябрь 2018, 16:42:50 от krasnyh »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
  • Автор темы
Re: zswap
« Ответ #13 : 07 Ноябрь 2018, 16:44:48 »
Если бы zswap не был включен, то запись в своп раздел началась раньше и тормозить начало бы раньше, но резкого фриза как с  zswap, когда начинается распаковка из сжатого кэша и запись в своп вы бы не получили
Может есть смысл 'поиграться' с vm.swappiness=  70 или 90?

Оффлайн RoDoN

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 6282
  • Репутация: +141/-0
Re: zswap
« Ответ #14 : 07 Ноябрь 2018, 16:48:08 »
Попробую, но имея сейчас практически везде 2 и более Гб памяти редко вижу использование свопа, точнее бывает незначительное, замечал иногда несколько десятков метров... тяжелых прог не использую, только браузер, видеоплеер и все :)
Lenovo G500 (i3-3110M, 8 Гб, Intel + Radeon HD 8570)
PRA 16.12 JWM, Runtu 22.04 x64 XFCE