22.04 - 为什么 zswap 没有启用参数 lz4 & z3fold

22.04 - 为什么 zswap 没有启用参数 lz4 & z3fold
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.1 LTS
Release:    22.04
Codename:   jammy

我有一个交换分区,我想在 zswap 上尝试 lz4 和 z3fold

纳米/etc/默认/grub

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX="vga=normal nomodeset iommu=pt"

GRUB_DEVICE=UUID=2da46135-a1a2-4833-ba81-d9802358ddbd

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash cgroup_enable=memory swapaccount=1 zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=20 zswap.zpool=z3fold "

我知道 zswap 已经在 22.04 上启用,但我还是将 zswap.enabled 放在那里以防万一。

nano /etc/initramfs-tools/modules

lz4
lz4_compress
z3fold
update-grub
update-initramfs -u -k all
update-initramfs: Generating /boot/initrd.img-5.15.0-47-generic
update-initramfs: Generating /boot/initrd.img-5.4.0-125-generic

重启后我看到

消息 | grep -i zswap

[   36.460295] zswap: loaded using pool lzo/zbud

grep -R . /sys/module/zswap/参数

/sys/module/zswap/parameters/same_filled_pages_enabled:Y
/sys/module/zswap/parameters/enabled:N
/sys/module/zswap/parameters/max_pool_percent:20
/sys/module/zswap/parameters/compressor:lzo
/sys/module/zswap/parameters/zpool:zbud
/sys/module/zswap/parameters/accept_threshold_percent:90

修改

z3fold                 32768  0
lz4                    16384  0
lz4_compress           36864  1 lz4
... etc

为什么模块/参数没有启用?

答案1

检查 /etc/default/grub.ucf-dist 文件。如果存在,它可能会覆盖 /etc/default/grub 文件。检查写入 /boot/grub/grub.cfg 文件的内容(内核行应该包含您的 zswap 参数)。


当更新遇到定制版本的 grub.cfg 时,会创建 grub.ucf-dist 文件。最好重新应用对 grub.cfg 的更改并删除 grub.ucf-dist,这样它就不会被覆盖(和丢失)。

相关内容