![22.04 - 为什么 zswap 没有启用参数 lz4 & z3fold](https://linux22.com/image/948583/22.04%20-%20%E4%B8%BA%E4%BB%80%E4%B9%88%20zswap%20%E6%B2%A1%E6%9C%89%E5%90%AF%E7%94%A8%E5%8F%82%E6%95%B0%20lz4%20%26%20z3fold.png)
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,这样它就不会被覆盖(和丢失)。