debian.org / О Debian Где взять Debian Поддержка Уголок разработчика Новости Wiki

Автор Тема: Включение и использование ZSWAP  (Прочитано 13776 раз)

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

Оффлайн Brainey

  • Ветеран
  • *****
  • Topic Author
  • Сообщений: 1943
  • Jabber: brainey@jabber.cz
Включение и использование ZSWAP
« : 02 Июнь 2015, 17:21:33 »
Технология ZSWAP позволяет уменьшить количество обращений к SWAP путём сжатия страниц и размещения их в специальном пуле в оперативной памяти.
Цитировать
Реализация такого подхода позволяет, при возникновении необходимости сброса памяти в раздел подкачки, сократить ввод-вывод и повысить скорость работы системы в целом, за счет того, что по возможности избегается использование медленного носителя. Ценой сокращения ввода/вывода является увеличение нагрузки на процессор, который тратит дополнительные ресурсы на сжатие и распаковку данных. По утверждению разработчиков, в их конфигурации при компиляции ядра в ситуации когда происходит своппинг, выигрыш по объему ввода/вывода составил 76%, а время выполнения операции сократилось на 53%. (c) opennet.ru
Проверка поддержки технологии в ядре:
cat /boot/config-`uname -r` | grep -i zswapесли получен вывод
Цитировать
CONFIG_ZSWAP=y
значит, поддержка есть.
Для включения нужно добавить параметр
zswap.enabled=1к параметрам загрузки ядра в /etc/default/grub
и выполнить обновление конфигурационных файлов grub:
# update-grubЕсли нужно ограничить максимальный объём памяти для ZSWAP, то в параметрах загрузчика указываем ещё и
zswap.max_pool_percent=xгде x - процент отведённой для ZSWAP памяти.
Также имеется возможность изменения алгоритма сжатия для ZSWAP. Добавляется аналогично предудущим к параметрам загрузки ядра.
zswap.compressor=lzo #deflate #lz4Я использовал lz4 (более быстрый алгоритм). Для этого сначала добавил модули в /etc/initramfs-tools/modules^
# echo lz4 >> /etc/initramfs-tools/modules
# echo lz4_compress >> /etc/initramfs-tools/modules
Обновил initramfs:
# update-initramfs -uИ перезагрузился.
Из вывода команды
dmesg | grep -i zswap
Цитировать
[    0.782491] zswap: loading zswap
[    0.784771] zswap: using lz4 compressor
следует, что технология работает с выбранным алгоритмом сжатия.
« Последнее редактирование: 05 Июль 2015, 20:39:03 от Brainey »
Конференция форума в jabber: debianforum@conference.jabber.ru | Клуб кедоводов: kde@conference.jabber.ru
 
Пользователи, которые поблагодарили этот пост: Leo, endru, ulyssesd, Serko, Tomvish

Оффлайн ffrr

  • Местный житель
  • ***
  • Сообщений: 264
  • ffrr
Re: Включение и использование ZSWAP
« Ответ #1 : 19 Июнь 2015, 07:53:34 »
если сравнивать zswap, uksm и zram - что эффективнее на практике?
ffrr
 

Оффлайн ffrr

  • Местный житель
  • ***
  • Сообщений: 264
  • ffrr
Re: Включение и использование ZSWAP
« Ответ #2 : 20 Июнь 2015, 08:24:35 »
насколько я понял из практики zswap поэффективнее, чем zram, а вот ukms надо еще проюзать...
ffrr
 

Оффлайн Brainey

  • Ветеран
  • *****
  • Topic Author
  • Сообщений: 1943
  • Jabber: brainey@jabber.cz
Re: Включение и использование ZSWAP
« Ответ #3 : 27 Июнь 2015, 10:40:09 »
zswap, uksm и zram
uksm вообще не из этой оперы.

Cообщение объединено 27 Июнь 2015, 10:43:47
Подробно отличия расписаны здесь. Возможно, позже займусь переводом.
« Последнее редактирование: 27 Июнь 2015, 10:43:47 от Brainey »
Конференция форума в jabber: debianforum@conference.jabber.ru | Клуб кедоводов: kde@conference.jabber.ru
 
Пользователи, которые поблагодарили этот пост: ffrr

Оффлайн ffrr

  • Местный житель
  • ***
  • Сообщений: 264
  • ffrr
Re: Включение и использование ZSWAP
« Ответ #4 : 27 Июнь 2015, 12:33:27 »
спасибо за пояснение, похоже uksm больше для виртуализации:
Наибольшей эффективности UKSM достигает при использовании в сочетании с системами виртуализации, позволяя экономить значительный объём памяти в ситуации запуска множества типовых гостевых окружений, ценой незначительного повышения нагрузки на CPU. В отличие от KSM, UKSM использует более быстрый и эффективный в плане снижения нагрузки на CPU алгоритм сканирования, производящий фоновое выявление и объединение областей памяти. Дубликаты могут объединяться не только для виртуальных машин (UKSM не привязан к KVM), но и для любых пользовательских процессов и системных данных, что является важным отличием от KSM и похожего проекта Xen Dedup, привязанных к системам виртуализации. Все операции UKSM производятся в прозрачном режиме и не заметны для пользователей и компонентов системы.
ffrr
 

Оффлайн Brainey

  • Ветеран
  • *****
  • Topic Author
  • Сообщений: 1943
  • Jabber: brainey@jabber.cz
Re: Включение и использование ZSWAP
« Ответ #5 : 28 Июнь 2015, 19:33:56 »
спасибо за пояснение, похоже uksm больше для виртуализации:
Для виртуализации в ванильном ядре есть ksm. А Uksm в ванильном ядре нет, но зато он может работать не только с виртуализацией.

Cообщение объединено 28 Июнь 2015, 19:35:13
Нашёл сравнение на хабре.
Конференция форума в jabber: debianforum@conference.jabber.ru | Клуб кедоводов: kde@conference.jabber.ru
 

Оффлайн Brainey

  • Ветеран
  • *****
  • Topic Author
  • Сообщений: 1943
  • Jabber: brainey@jabber.cz
Re: Включение и использование ZSWAP
« Ответ #6 : 05 Июль 2015, 20:22:53 »
Если нужно ограничить максимальный объём памяти для ZSWAP, то в параметрах загрузчика указываем ещё и
zswap.max_pool_percent=xгде x - процент отведённой для ZSWAP памяти.
Рекомендую обязательно это сделать, потому что по моим субъективным наблюдениям, черезмерно разросшийся пул от zsawp ни к чему хорошему не приводит.
На аппарате с 2 гб озу отвёл для него примерно 128 мб:
zswap.max_pool_percent=15Т.е. все мои параметры zswap целиком таковы:
zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=15
« Последнее редактирование: 05 Июль 2015, 20:25:32 от Brainey »
Конференция форума в jabber: debianforum@conference.jabber.ru | Клуб кедоводов: kde@conference.jabber.ru
 

Оффлайн ffrr

  • Местный житель
  • ***
  • Сообщений: 264
  • ffrr
Re: Включение и использование ZSWAP
« Ответ #7 : 19 Июль 2015, 17:36:17 »
все пункты выполнил, но при загрузке системы такие сообщения:
% dmesg | grep zswap
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.0.0-2-686-pae root=UUID=a7146157-a631-4994-bc9d-b402e9a3a66d ro quiet zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=15
[    1.437849] zswap: loading zswap
[    1.439822] zswap: zbud zpool not available
[    1.439883] zswap: zpool creation failed


как проверить, что zswap работает или нет?
ffrr
 

Оффлайн Brainey

  • Ветеран
  • *****
  • Topic Author
  • Сообщений: 1943
  • Jabber: brainey@jabber.cz
Re: Включение и использование ZSWAP
« Ответ #8 : 19 Июль 2015, 18:24:52 »
ffrr, начиная с 4-го ядра zbud или zsmalloc, необходимые для zswap, собранны в виде модуля, поэтому сначала смотрим, что у нас есть:
cat /boot/config-`uname -r` | grep -i zbudcat /boot/config-`uname -r` | grep -i zsmalloc
Spoiler: ShowHide
В моём случае, есть оба модуля, но я выбрал ZBUD, т.к. обычно он используется по умолчанию

Потом добавляем в список модулей initramfs:
# echo zbud >> /etc/initramfs-tools/modulesили
# echo zsmalloc >> /etc/initramfs-tools/modulesЗатем обновляем initramfs:
# update-initramfs -uВ случае использования zsmalloc, это нужно указать в параметрах загрузки ядра:
zswap.zpool=zsmalloc
Конференция форума в jabber: debianforum@conference.jabber.ru | Клуб кедоводов: kde@conference.jabber.ru
 
Пользователи, которые поблагодарили этот пост: ffrr

Оффлайн ffrr

  • Местный житель
  • ***
  • Сообщений: 264
  • ffrr
Re: Включение и использование ZSWAP
« Ответ #9 : 19 Июль 2015, 22:16:57 »
ну а в случае использования zbud не нужно указывать в параметрах загрузки ядра:
zswap.zpool=zbud
?

Cообщение объединено 19 Июль 2015, 22:44:13
спасибо, после перезагрузок варнингов и ерроров нету, как теперь проверить, что он работает нормально?
« Последнее редактирование: 19 Июль 2015, 22:44:13 от ffrr »
ffrr
 

Оффлайн Brainey

  • Ветеран
  • *****
  • Topic Author
  • Сообщений: 1943
  • Jabber: brainey@jabber.cz
Re: Включение и использование ZSWAP
« Ответ #10 : 27 Июль 2015, 11:22:58 »
К сожалению, удобного пути нет. Вот обсуждение на lkml.
Конференция форума в jabber: debianforum@conference.jabber.ru | Клуб кедоводов: kde@conference.jabber.ru
 

Оффлайн Aalexeey

  • Местный житель
  • ***
  • Сообщений: 418
  • ASUS_Q400A, Winmate_I771 GTK2/Qt4_MATE
Re: Включение и использование ZSWAP
« Ответ #11 : 07 Март 2016, 17:57:12 »
А как полностью отключить zswap что бы при загрузке не выходило:zswap: default zpool zbud not available
zswap: pool creation failed
Пробовал так: GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_pstate=disable zswap.enabled=0 zpool.enabled=0"и так: GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_pstate=disable zswap=disable zpool=disable"Как отключить эту дрянь?
Помогло:
zswap.zpool=zsmalloc zswap.enabled=0Позднее включил:
zswap.zpool=zsmalloc zswap.enabled=1Сообщений никаких не выходит и в хозяйстве пригодится, работает. Ядро: 4.4-7.dmz.1-liquorix-...
« Последнее редактирование: 19 Апрель 2016, 17:55:36 от Aalexeey »
https://debianforum.ru/index.php?topic=6879 100% защиты от "Ааааа у меня всё поломалось"
 

Русскоязычное сообщество Debian GNU/Linux

Re: Включение и использование ZSWAP
« Ответ #11 : 07 Март 2016, 17:57:12 »


Теги: