Включаем технологию zswap на Debian jessie

Включаем технологию zswap на Debian jessie

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

Реализация такого подхода позволяет, при возникновении необходимости сброса памяти в раздел подкачки, сократить ввод-вывод и повысить скорость работы системы в целом, за счет того, что по возможности избегается использование медленного носителя. Ценой сокращения ввода/вывода является увеличение нагрузки на процессор, который тратит дополнительные ресурсы на сжатие и распаковку данных. По утверждению разработчиков, в их конфигурации при компиляции ядра в ситуации когда происходит своппинг, выигрыш по объему ввода/вывода составил 76%, а время выполнения операции сократилось на 53%.

Примечание: не следует путать zswap с похожей по смыслу технологией zRAM (ранее compcache), при которой в памяти создается блочное устройство на которое производится своппинг со сжатием.

Все описание выше взято с сайта opennet.ru из статьи Для Linux представлена технология Zswap для сжатого кеширования в системе подкачки

Проверка поддержки технологии zswap в ядре

    cat /boot/config-`uname -r` | grep -i zswap

Если получаем вывод CONFIG_ZSWAP=y то все ОК можем юзать.

Включаем zswap

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

  1. zswap.enabled=1
  2. zswap.compressor=lzo либо zswap.compressor=deflate либо zswap.compressor=lz4
  3. zswap.max_pool_percent=15 (15 говорят оптимально)

Если нужно ограничить максимальный объём памяти для zswap, то в параметрах загрузчика указываем ещё

  1. zswap.max_pool_percent=x

Эти параметры необходимо передать в загрузчик будем рассматривать GRUB2 (GRUB - загрузчик системы):

Открываем файл /etc/default/grub

В параметр GRUB_CMDLINE_LINUX_DEFAULT прописываем:

GRUB_CMDLINE_LINUX_DEFAULT = "zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=15"

GRUB_CMDLINE_LINUX_DEFAULT - уже может содержать некое значение типа "splash" тогда наши параметры дописываем через пробел. Например:

GRUB_CMDLINE_LINUX_DEFAULT = "splash zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=15"

Далее необходимо обновить конфигурацию загрузчика:

    update-grub

Ну, либо, что тоже самое:

    update-grub2

Затем нужно добавить модули lz4 и lz4_compress в initramfs (Оптимизация initramfs в Debian):

    echo lz4 >> /etc/initramfs-tools/modules
    echo lz4_compress >> /etc/initramfs-tools/modules

Далее необходимо обновить образ initramfs (по сути файл /boot/initrd.img-*):

    update-initramfs -u

Затем перезагружаем систему и после загрузки проверяем:

    dmesg | grep -i zswap

Вывод должен получится такой:

    [    0.782491] zswap: loading zswap
    [    0.784771] zswap: using lz4 compressor

Добавить комментарий


Защитный код
Обновить



Кто на сайте
Сейчас 123 гостей онлайн