§ ZSWAP или делаем Linux быстрым.

Вместе с выходом самого тро-ло-ло ядра Linux 3.11 "Linux for Workgroups" в ядро был официально добавлен модуль zswap. По своей сути этот модуль является некоторой усовершенствованной-типе-измененной версией zRam, но обладает небольшим приемуществом перед ним, a именно не создает блочных устройств в памяти, а занимается сжатием памяти "по мере надобности", по своему хитрому алгоритму, что позволяет выделять большее количетсво памяти для приложний, и динамически изменять размеры сжатой-несжатой памяти. Есть мнение что такой способ позволяет сущетвенно повыстить скорость работы когда у системы есть достаточное количество памяти для размещения всех приложений.

Так же необходимо отметить, что среди приемуществ zswap (как и zRam) является сокращение количества обращений к внешнему устройству, что при наличии SSD, способно ощутимо продлить жизнь устройству, так что профита много.

Однако информации о том как настраивать и использовать zswap в интернете пока не много, поэтому я напишу тут простой туториал как можно настроить zswap.

Сперва вам потребуется ядро 3.11. Для debian я рекомендую использовать ядро от siduction из репозитория base, оно на данный момент более стабильно чем 3.10-3 от debian unstable, и имеет соответствующую версию, и собрано с необходимыми для zswap параметрами.

Итак ставим ядро

# cat "deb http://packages.siduction.org/base unstable main contrib non-free" > /etc/apt/sources.list.d/siduction-base.list

# aptitude update

# aptitude install linux-image-siduction-amd64

Теперь у нас стоит последнее ядро 3.11, но так как модуль zswap работает в kernel-space, то для его запуска необходимо передать ядру необходимый параметр "zswap.enabled=1", но для того что бы не делать это каждый раз вручную идем и правим файл /etc/default/grub и правим строчку с GRUB_CMDLINE_LINUX_DEFAULT до нужного состояния

GRUB_CMDLINE_LINUX_DEFAULT="zswap.enabled=1 quiet"

Теперь осталось только применить умолчания ко всем элементам загрузчика GRUB

# update-grub

И все, можно перезагружаться.

После перезагрузки необходимо проверить что zswap у вас завелся нормально для этого необходимо выполнить следующую команду

# dmesg | grep zswap

И если вы увидели в выводе заветные строки

[    1.273249] zswap: loading zswap
[    1.273252] zswap: using lzo compressor

То вас можно поздравить - zswap у вас запущен и работает.

Честно сказать я сам пока что тестиру этот модуль всего неделю, но могу сказать работает он ну никак не медленнее чем zRam, при этом все профиты сохраняются. Тестирую я его на своем нетбуке с 1Gb RAM и на домашнем буке с 4Gb RAM, и там и там отзывчивость системы по сравнению с голым ядром гораздо выше, в сравнении с zRam ощутимой разницы не заметил, ни в большую ни в меньшую сторону.

Если вы нашли какие то баги, или способы успешно мониторить и\или манипулировать этим модулем, то пишите тут, я буду добавлять их в статью, и надеюсь это станет полезным ещё большему кругу людей.


comments powered by Disqus