2.9.3.2 Настройка zswap
Скачать документВключение и выключение Zswap
Изменение параметров
Zswap – это функция ядра, предоставляющая сжатый кэш в оперативной памяти для страниц подкачки. Страницы, которые ранее выгружались на жесткий диск, вместо этого сжимаются и сохраняются в пуле ОЗУ. Как только этот пул памяти заполнен или доступная оперативная память исчерпана, давно не использовавшиеся страницы разжимаются и выгружаются в подкачку, а сжатая её версия удаляется из пула. После того как страница была перемещена в режим подкачки, сжатая версия в пуле памяти может быть освобождена и использована снова.
Для дальнейшей настройки zswap перейдите в сеанс пользователя root:
su -
Далее все команды выполняются с правами пользователя root, если не указано иное.
Сначала необходимо определить, включен ли Zswap и какие у него настройки, выполнив команду в терминале:
grep -R . /sys/module/zswap/parameters /sys/module/zswap/parameters/same_filled_pages_enabled:Y # (функция идентификации страниц с одинаковыми значениями) /sys/module/zswap/parameters/enabled:N # (zswap выключен) /sys/module/zswap/parameters/max_pool_percent:20 # (максимальный размер пула в оперативной памяти) /sys/module/zswap/parameters/compressor:lzo # (алгоритм сжатия данных) /sys/module/zswap/parameters/zpool:zbud # (zpool алгоритм управления памятью) /sys/module/zswap/parameters/accept_threshold_percent:90 # (пороговое значение, при котором zswap снова начнет принимать страницы после того, как заполнится)
Дополнительную проверку наличия Zswap в ядре можно осуществить командой:
cat /boot/config-`uname -r` | grep -i zswap CONFIG_ZSWAP=y # (буква «у» означает, что поддержка есть) # CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y # CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set # CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set # CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set # CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set CONFIG_ZSWAP_COMPRESSOR_DEFAULT="lzo" CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y # CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set # CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set CONFIG_ZSWAP_ZPOOL_DEFAULT="zbud" # CONFIG_ZSWAP_DEFAULT_ON is not set
Просмотреть сообщение, отображающееся при загрузке системы, можно командой:
dmesg | grep zswap [ 0.781818] zswap: loaded using pool lzo/zbud
Включение и выключение Zswap
Для разового включения модуля Zswap выполните команду:
echo 1 > /sys/module/zswap/parameters/enabled
Чтобы отключить Zswap в работающей системе, необходимо сделать замену параметра с «1» на «0»:
echo 0 > /sys/module/zswap/parameters/enabled
Обратите внимание, что после перезагрузки операционной системы, значения параметров будут возвращены к величине по умолчанию.
Проверка состояния производится командой:
cat /sys/module/zswap/parameters/enabled
Буква «Y» в выводе команды означает, что Zswap активирован.
Команды для включения и отключения модуля Zswap при старте операционной системы:
- команда для включения:
grubby --update-kernel ALL --args zswap.enabled=1
- команда для отключения:
grubby --update-kernel ALL --args zswap.enabled=0
Изменение параметров
Изменить размер пула (по умолчанию размер пула составляет 20% от всей оперативной памяти) можно, выполнив команду:
echo 20 > /sys/module/zswap/parameters/max_pool_percent
На системах с небольшим количеством оперативной памяти обычно устанавливается размер пула 5 - 15%, если оперативной памяти больше 2 Гб — 20 - 25%.
Для изменения алгоритма управления памятью необходимо выполнить команду:
echo zsmalloc > /sys/module/zswap/parameters/zpool
По умолчанию Zswap использует алгоритм сжатия lzo, также может использовать любой алгоритм, поддерживаемый api ядра (например, lz4, zstd, deflate, lz4hc, lzo-rle), но для этого должен быть установлен модуль сжатия.
Проверьте наличие модуля lz4 в системе командой:
modprobe lz4
Если команда ничего не выводит, значит модуль загружен, если выводится сообщение об ошибке — модуль отсутствует в ядре.
Чтобы изменить алгоритм сжатия на lz4, используйте команду:
echo lz4 > /sys/module/zswap/parameters/compressor
После перезагрузки операционной системы значения параметров, в которые были внесены изменения, будут возвращены к величине по умолчанию.
Сохранить внесенные изменения после перезагрузки можно следующим способом:
1. Добавьте в загрузчик операционной системы необходимые параметры следующей командой:
grubby --update-kernel ALL --args "zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=10 zswap.zpool=zsmalloc"
2. Создайте файл /etc/modules-load.d/zswapmodules.conf, отвечающий за загрузку дополнительных модулей при старте операционной системы, со следующим содержимым:
nano /etc/modules-load.d/zswapmodules.conf lz4 zsmalloc lz4_compress
3. Далее обновите initramfs, выполнив команду:
dracut -f -v --regenerate-all
4. Выполните перезагрузку операционной системы:
reboot
Если необходимо получить статистику использования Zswap, используйте команду:
sudo sh -c 'cd /sys/kernel/debug/zswap && grep . *'
Дата последнего изменения: 09.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.