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

Автор Тема: Как настроить агрессивное сжатие swap in zram  (Прочитано 3553 раз)

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

Оффлайн bol128

  • Пользователь
  • **
  • Сообщений: 54
  • Репутация: +0/-0
  • Автор темы
У меня xenialpup сейчас поломался.Установил ядро XanMod с интегрированным патчем le9 в
Lubuntu 18.04.5.С родным ядром 240 МБ исп. памяти.С новым 260 МБ.
Интересно как настроить -агрессивное сжатие памяти zram
Позволяет использовать до 150% больше оперативной памяти,
чем её есть физически.
« Последнее редактирование: 06 Январь 2022, 10:45:05 от sfs »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5332
  • Репутация: +139/-1
Самое простое решение, прописать zram=150% в grub (или что там).

Другой вариант, установить пакет zram-generator, он позволит более тонко настроить zram. Этот пакет есть для всех дистрибутивов, вроде.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5332
  • Репутация: +139/-1
И да, важно, чтобы не было других свопов, типа свопфайл или своп-раздел. Проверить командой swapon -s, должен быть только /dev/zram0.


Некоторые не понимают почему и 'лепят' их вместе. Но zram не рассчитан на такое взаимодействие и не умеет правильно работать в таких условиях. Для взаимодействия с дефолтным своп-разделом есть другой механизм - zswap.
Но, при желании, можно организовать подобное для zram, через его собственные механизмы.


p.s. Команда noswap для grub4dos, выключит физические свопы, но не затронет zram. Наверно сработает и на grub2.
« Последнее редактирование: 05 Январь 2022, 18:09:29 от krasnyh »

Оффлайн bol128

  • Пользователь
  • **
  • Сообщений: 54
  • Репутация: +0/-0
  • Автор темы
Благодарствую,очень помогли.Там просто приоритет для zram ставится выше.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5332
  • Репутация: +139/-1
С двумя свопами с разным приоритетом, сначала заполнится zram, затем подключится второй своп. Первый же, который zram, так и будет висеть переполненным /dev/zram0 в памяти, т.к. все взаимодействие будет теперь с дисковым в обход zram. Плюс обмен с дисковым будет происходить без сжатия, а значит повышенная нагрузка на ввод/вывод.


Если понаблюдать через htop за zram, в идеальных условиях (без физического свопа), видно, что его размер постоянно меняется, в большую или меньшую сторону.
Подключите в добавок к zram еще физический своп, дайте нагрузку на память (открыть 200-300 вкладок браузера), а затем уберите нагрузку - zram уже не освободится. )

Оффлайн bol128

  • Пользователь
  • **
  • Сообщений: 54
  • Репутация: +0/-0
  • Автор темы
Пример скрипта создания устройства /dev/zram0 с backing_dev. Нужна поддержка CONFIG_ZRAM_WRITEBACK в ядре.
Ето,вроде как,решает вопрос?

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5332
  • Репутация: +139/-1
Я не использовал и все представления об этом только в теории.


Мне хватает, 4G ram + zram*3 (alg: zstd), без дополнительных ухищрений. Но сторонний OOM-killer нужен, дефолтный не так эффективен.
« Последнее редактирование: 05 Январь 2022, 19:43:46 от krasnyh »

Оффлайн bol128

  • Пользователь
  • **
  • Сообщений: 54
  • Репутация: +0/-0
  • Автор темы
Благодарю.Я так понял,что увеличивают размер zram0,а за счет сжатия достигается 150% RAM.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5332
  • Репутация: +139/-1
Различные тестовые видео от hakavlad (автор le9), где он использует в качестве свопа только zram.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33974
  • Репутация: +231/-0
    • PuppyRus-A
Re: Как настроить агрессивное сжатие swap in zram
« Ответ #9 : 06 Январь 2022, 10:50:14 »
Установил ядро XanMod с интегрированным патчем le9
le9 в XanMod есть только в свежих версиях
Самое простое решение, прописать zram=150% в grub
Так в LF и porteus. В стандартных линуксах вряд ли такое есть. Т.е. zram есть, но включается по другому
Я так понял,что увеличивают размер zram0,а за счет сжатия достигается 150% RAM.
Своп находится в памяти (т.е. не на медленном диске). За счет его сжатия можно выставить размер больше, чем он есть физически
В итоге "волшебный" эффект удалось получить? Какое железо и браузер?
« Последнее редактирование: 09 Январь 2022, 08:54:54 от sfs »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5332
  • Репутация: +139/-1
Re: Как настроить агрессивное сжатие swap in zram
« Ответ #10 : 08 Январь 2022, 23:11:48 »
Подключите в добавок к zram еще физический своп, дайте нагрузку на память (открыть 200-300 вкладок браузера), а затем уберите нагрузку - zram уже не освободится. )
Все же проверил теорию на практике:
На флешке с prar2110 создал swapfile=128M, выставил в вирте ограничение -m 1G и загрузился в de-xfce с uird.swap=zram. Вручную подключил swapfile и нагрузил ютубом в chrome, затем закрыл браузер.

Итог, оба свопа очищаются независимо друг от друга. Но выводы, можно и нужно ли так использовать свопы и как это сказывается на производительности zram, делать не буду. Более того, сам так комбинировать тоже не буду. Здесь я придерживаюсь классического - zram для свопа в ram и zswap для физического свопа.
Скрин.


Вручную подключил swapfile
Можно было через uird.swap, типа uird.swap=swapfile;zram. Кстати, преимущество uird, что он может использовать и виндовский pagefile.sys, который есть у многих по умолчанию.
« Последнее редактирование: 09 Январь 2022, 03:09:07 от krasnyh »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33974
  • Репутация: +231/-0
    • PuppyRus-A
Re: Как настроить агрессивное сжатие swap in zram
« Ответ #11 : 09 Январь 2022, 09:19:21 »
swapfile кстати очислился не полностью (что и я в своих экспериментах заметил) , хотя логично было бы использовать своп с высшим приоритетом на полную и потом дзяться за следующий. Так и происходило на вашем скрине.
Очищение в обратном порядке, но почему-то swapfile очистился не полностью. Неочислился незначительно. Пожно не париться

По итогу наших дебат , я  пока для себя сделал следующие выводы:
Если пямяти много и высоконагрузочных задач нет. Типа браузер юзаешь с autitabdiscard: noswap или на всякий случай (типа взял и 5 виртуалок запустил) : zram=
Если памяти будет хватать zram будет пустой и в этом случае он размер памяти не уменьшает (ram уменьшается только при заполнении zram)
zram=150% или 30 - похоже без разницы, если до него все равно не дойдет.

Если есть ресурсоемкие задачи - проанализировать на что нагрузка (проц память носитель) и далее что-то из рецептов ниже

Если памяти мало : кутипь твбокс с 4ram+ 32 nvme носителя + аппаратное ускорение в мультимедиа и играх  за 3,5 тр ;)

Если твбокс стремно, а на докупку ram бабла нет - начинаем заниматься некрофилией+садомазо : le9+zram=150%
Если все равно мало - добавить swap на самом быстром носителе
Если при этом проц не перегружен - zswap (инфа на медленном носителе сжата - читаться будет быстрее)
« Последнее редактирование: 09 Январь 2022, 09:23:11 от sfs »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5332
  • Репутация: +139/-1
Re: Как настроить агрессивное сжатие swap in zram
« Ответ #12 : 09 Январь 2022, 12:35:38 »
а на докупку ram бабла нет - начинаем заниматься некрофилией+садомазо
Вот никак без того, чтобы не запихнуть все ситуации в одно "прокрустово ложе". :)


Цитата
а у меня браузер съедает 32Гб... только один экземпляр... я вообще вкладки не люблю закрывать... и запускаю несколько... хорошо, что на матплату можно до 512 Гб поставить..
Лор

А на 8 нет смысла париться про экономию памяти
Все же надо разделять, когда вы юзаете только браузер, но установили, например, 64G памяти, просто чтобы было. И, когда эти самые 64G намеренно установлены под тяжелую задачу, а значит обязательно возникнет момент, когда ram будет не хватать.


Не говоря уж про железо, ограниченное конструктивно.
и прочие радости (типа zram - съедает процессор слегка, зато даёт практически 3 гига Ram в системе при родном 1 Гб оперативки).
« Последнее редактирование: 09 Январь 2022, 12:45:38 от krasnyh »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5332
  • Репутация: +139/-1
Re: Как настроить агрессивное сжатие swap in zram
« Ответ #13 : 09 Январь 2022, 16:50:45 »
А допилят вскоре все эти фишки для оптимизированной работы памяти и внесут в официальное ядро. И будет все это включено по умолчанию, как же потом говорить свое любимое "заниматься некрофилией+садомазо", к месту и не к месту. :)

Это всего лишь одно из многих улучшений работы с памятью в linux. Сейчас оно (damon) воспринимается как 'чудинка', а в будущем будет включено по умолчанию, имхо.
Включено наравне с:
- mgLRU, который все же допилят и включат в ядро. Сейчас же мы используем его альтернативу - le9.
- Folios, который обещают уже с 5.16
...


Оффлайн imp

  • cat /dev/ass > /dev/head
  • Ветеран
  • *****
  • Сообщений: 1718
  • Репутация: +49/-1
  • /dev/hands < /dev/ass
Re: Как настроить агрессивное сжатие swap in zram
« Ответ #14 : 09 Январь 2022, 23:56:30 »
Агрессивное сжатие того, что находится в памяти и распаковывать в память же... Господа, сколько раз я об этом говорил?
И переполнить - раз плюнуть, если не в курсах, что делаешь.

Железо помощнее готовьте. Это вместо Пы.Сы, если идете таким путем
« Последнее редактирование: 10 Январь 2022, 00:01:02 от imp »
Компьютер имеет то преимущество перед мозгом, что им пользуются.