zswap - andyceo/documentation GitHub Wiki
zswap
это легковесный кеш для swap-страниц. Работает только при наличии хотя бы одного физического swap-устройства и является по сути кешем перед ним.
По умолчанию в Arch включен, в Debian и Ubuntu выключен.
Проверить текущую конфигурацию:
grep -r . /sys/module/zswap/parameters/
Проверить статистику:
sudo grep -r . /sys/kernel/debug/zswap
Можно включить/выключить (используйте 1/0) модуль в рантайме (действует до первой перезагрузки):
echo 1 > /sys/module/zswap/parameters/enabled
Самый простой способ включить этот модуль на постоянной основе это прописать его при запуске Linux:
# cat /etc/default/grub | grep GRUB_CMDLINE_LINUX_DEFAULT
GRUB_CMDLINE_LINUX_DEFAULT="quiet zswap.enabled=1 zswap.compressor=zstd zswap.max_pool_percent=20 zswap.zpool=zsmalloc zswap.shrinker_enabled=1"
И затем пересоздать конфигурацию Grub: sudo update-grub
.
Протестировано на версии Debian 12 Bookworm с ядром 6.10.11-1~bpo12+1
из бекпортов.
-
добавим нужные модули ядра в
/etc/initramfs-tools/modules
:cat /etc/initramfs-tools/modules zstd z3fold # если будете использовать именно этот аллокатор
zsmalloc
иzbud
уже есть в ядре. -
запустить пересборку
initramfs
для всех ядер:update-initramfs -k all -u
Коротко об аллокаторах памяти для zswap:
-
zbud
: хранит две страницы на ядро, в реальной работе достигает степени сжатия примерно 1.7 -
z3fold
: хранит три страницы на ядро, дальнейшее развитие zbud, в реальной работе достигает степени сжатия примерно 2.7 -
zsmalloc
: в ядрах после 6.3 был добавлен аллокаторzsmalloc
. Предполагается что он работает хорошо в условиях нехватки памяти и сохраняет больше памяти (принят по умолчанию в Arch), сжимает 3:1 / 5:1 / 7:1 / 12:1 - лучше чем все остальное, после патчей вzsmalloc
.
Проверить, есть ли модуль zsmalloc
в ядре по умолчанию или нет, можно следующей командой (другие модули проверяются аналогично):
cat /boot/config-`uname -r` | grep -i zsmalloc
Также можно использовать systemd.
- zswap - Wikipedia
- zswap - ArchWiki
- Zswap - Debian Wiki
- Zswap - LinuxReviews
-
zswap on Linux kernel docs: документация
zswap
в ядре Linux -
The zswap compressed swap cache: статья от разработчика
zswap
с объяснением принципа работы