nsz@nsz-PC:~$ sudo apt search zram
正在排序... 完成
全文搜索... 完成
libblockdev-kbd2/未知 2.26-1 amd64
kernel block device plugin for libblockdev
udisks2-zram/未知 2.9.4-1 amd64
zram support for udisks2
udisks2-zram-dbgsym/未知 2.9.4-1 amd64
debug symbols for udisks2-zram
zram-tools/未知,未知 0.3.3.1-1 all
utilities for working with zram
安装哪个呢?
一、起因
鄙人的电脑是微软的 Surface Pro3 平板,已经有 7 年的历史,现在安装了 Kubuntu 20.04.3
没在意是动了哪里,近几天,在打字时总感觉出字不顺畅,延迟比较明显,放音乐时也是断断续续的,于时对 CPU 使用率进行检查,一切正常,又对内存进行检查,发现内存使用率不足50%,但 swap 却了用近80%,当时只是开了钉钉(包括在线文档编辑)、WPS、QQ 和 Audacious 而已,虽说 4G 内存放在这年头的确是小了点,但可用内存还剩这么多, swap 却是如此之高的使用率肯定是让人不爽的。
(可能有人会说“加内存啊”,不好意,在下的 Surface 平板,有加内存的那点功夫还不如直接买新电脑了,但这年头的经济,买不起啊~)
于是对 vm.swappiness 进行修改,反复尝试了两天,发现就算把数值改成 1,甚至最后改成 0,只要一开钉钉、微信和 WPS 三件套,swap 使用率就居高不下,若再开个 Edge,总是一卡一卡的。
来点极端的,sudo swapoff -a && sudo swapon -a,重启 swap,但十几秒后,swap 用量又窜上去了……
之后,又尝试修改了 vm.dirty_ratio、vm.dirty_background_ratio、vm.dirty_expire_centisecs、vm.vfs_cache_pressure 的参数,感觉没啥效果
二、用 ZRAM 替代 SWAP
昨晚躺床上,突然想起以前折腾过一段时间的 zram,用它来替代 swap 行不行呢?
今天一早,测试开始:
1、关闭了 swap,仅使用内存
只开了钉钉、微信、QQ 、一个终端(本想着若系统卡顿,立即启用 swap)和 Edge,4G内存几乎被占满,但当在打开 WPS 时,随即系统立即卡死,连在终端中开 swap 的机会给没给,只得强行硬重启
2、安装上了 zram,保持关闭 swap,使用默认的 lzo-rle 压缩格式
同时开了钉钉、微信、QQ 、WPS 和 Edge, zram 虚拟的 swap 占满、内存使用超过 70%,再打开 VLC 时,虽没卡死,但系统已经明显卡顿
3、依然关闭 swap,把 zram 的压缩格式换为 lz4hc
检查支持的压缩格式
支持的压缩格式包括:lzo、lzo-rle、lz4、lz4hc、842、zstd
找到
echo mem > /sys/block/zram{DEVNUMBER}/disksize
在其【前】添加一行:
echo "lz4hc" > /sys/block/zram${DEVNUMBER}/comp_algorithm
重启电脑,可以看到压缩效率明显提升,如下图同时开了一堆程序,zram 虚拟的 swap 占满、内存使用接近 65%,此时系统依然流畅
而这种情形,在日常使用时,几乎是不可能做到如此极端的