在 zswap 中启用 lz4 压缩(即,使 zswap 更高效)

Sir*_*kin 6 performance swap kernel compression 16.04

我正在尝试在 Ubuntu 16.04.1 LTS 上为 zswap 启用 LZ4 压缩。

我的 GRUB 配置:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=cfq profile zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=80"
Run Code Online (Sandbox Code Playgroud)

我执行sudo update-grub,并重新启动。但是,zswap 说compressor lz4 not available, using default lzo。我已经liblz4-tool安装了。这是我执行后得到的消息dmesg | grep zswap

[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-59-generic.efi.signed root=UUID=148a9e6d-52db-4678-b11d-ef1e5559b69d ro quiet splash elevator=cfq profile zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=80 vt.handoff=7
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-59-generic.efi.signed root=UUID=148a9e6d-52db-4678-b11d-ef1e5559b69d ro quiet splash elevator=cfq profile zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=80 vt.handoff=7
[    0.716485] zswap: compressor lz4 not available, using default lzo
[    0.716493] zswap: loaded using pool lzo/zbud
Run Code Online (Sandbox Code Playgroud)

Sir*_*kin 9

我在这个俄罗斯 Debian 论坛中找到了解决方案。我必须运行这些额外的步骤

sudo su
echo lz4 >> /etc/initramfs-tools/modules
echo lz4_compress >> /etc/initramfs-tools/modules
update-initramfs -u
reboot
Run Code Online (Sandbox Code Playgroud)

然后跑dmesg | grep -i zswap,看看

[    0.715952] zswap: loaded using pool lz4/zbud
Run Code Online (Sandbox Code Playgroud)

很高兴看到性能如何提高。

编辑:我已经在本指南中编写了我的步骤。您可以检查是否在启用 zswap 时遇到问题。