我正在尝试配置zswap模块,以便从系统启动的一开始就启用交换空间压缩。为此,请在文件中
/etc/default/grub设置内核引导参数:
GRUB_CMDLINE_LINUX="zswap.enabled=1 zswap.zpool=zsmalloc zswap.compressor=lz4"
如果 lz4 压缩在启动时自动打开(或者紧接着,最重要的是,不是手动),一切都会好起来的。但是,使用默认值 lzo。
目录中的文件内容为/sys/modules/zswap/parameters:
/sys/module/zswap/parameters/compressor:lzo
/sys/module/zswap/parameters/enabled:Y
/sys/module/zswap/parameters/max_pool_percent:20
/sys/module/zswap/parameters/zpool:zsmalloc
这是与zswap相关的dmesg的输出:
[ 1.140971] zswap: compressor lz4 not available, using default lzo
[ 1.141064] zswap: loaded using pool lzo/zsmalloc
此外,如果您在登录后手动设置压缩方法,则安装不会出现问题 - 文件内容发生变化,dmesg报告成功,这样的命令无误地完成:
echo lz4 | sudo tee /sys/module/zswap/parameters/compressor
但是每次开机都要输入这样的命令让我很烦。我如何强制此内核模块自动使用 lz4 压缩,而无需额外的手动操作?
系统:Ubuntu 16.04
这种在系统运行的前几分之一秒内出现的错误是由于当时缺少负责 lz4 压缩的模块造成的。在 Ubuntu 中,默认情况下,同名内核模块不包含在初始启动盘中。所以你必须自己添加它。像这样:
然后不要忘记重新生成此磁盘: