配置 zRAM
通常 zRAM 最常见的配置是大小 disksize 和压缩算法 comp_algorithm。
控制 zRAM 的大小的文件是 /sys/block/zram0/disksize ,压缩算法文件是 /sys/block/zram0/comp_algorithm 。
可以运行 cat 命令查看两个文件来确定 zRAM 文件的大小和压缩算法,例如命令 代码登录后可见 查看 zRAM 大小。(zRAM 大小以实际 RAM 的 1-1.5倍 为宜,当然可以更大)
同样也可以通过两个文件设置 zRAM 文件的大小和压缩算法,例如命令 代码登录后可见 修改 zRAM 的大小。(对于压缩算法这里推荐zstd压缩算法,各种算法区别具体可以Google)
注意: 请务必先选择压缩算法再选择 zRAM 文件大小,不然会出现设备繁忙的问题,也就是无法修改压缩算法了,需要卸载 zRAM 后重新配置。
完整命令:
代码登录后可见
自动进行 zRAM 配置
由于 /sys 目录是基于内存的文件系统,因此同样的,重启系统后,我们设置的 zRAM 参数将不再存在。为了实现开机自动加载 zRAM 的参数,需要使用 udev 进行设置。
udev 是一个用户空间系统(我的理解是,它就是 Linux 设备管理器)。它使操作系统管理员能够为设备事件运行用户指定的程序或者脚本,也可以在添加设备时指定设备参数。
要设置 zRAM 的大小,可以在 udev 规则文件的 ATTR 指定 zRAM 大小 disksize,ATTR{disksize}=“8G” 表示设置 zRAM 的大小是 8G。
要设置 zRAM 的其它属性,可以在 udev 规则文件指定多个 ATTR 属性设置设备参数。例如设置 zRAM 压缩算法 ,可以添加属性 ATTR{comp_algorithm}=“zstd”。
完整命令:
代码登录后可见
挂载 zRAM
要在当前运行时挂载 zRAM ,使用方式类似于 Swap 。首先需要将 zRAM 文件进行格式化,运行命令 代码登录后可见 。
当格式化完成后,为了让系统识别 zRAM 文件,因此还需要启用 zRAM 文件。可以运行命令 代码登录后可见 启用 zRAM 文件。
如果你系统已经存在 Swap ,那么总的交换空间的大小是zRAM的大小加 Swap 的大小。
完整命令:
代码登录后可见
自动挂载 zRAM
同样的,为了避免重启后 zRAM 没有自动挂载,我们需要使用 代码登录后可见 命令,在系统启动时自动激活 zRAM 文件并作为交换空间挂载。
使用你喜欢的方式创建文件 /etc/systemd/system/zram.service 并且编辑它。由于我是 vim 党,所以这里我使用vim 创建并编辑文件 SystemD 单元文件。
编辑完成后,保存文件并退出 vim 编辑器,然后运行命令 代码登录后可见 启用 zram 服务,最后重启计算机。
完整命令:
代码登录后可见
zram.service内容:
代码登录后可见
停止并禁用 zram 的服务
说完了基本使用,接下俩就要讲讲停用与卸载。(我最讨厌那些讲了怎么使用但是不讲怎么卸载的教程了,让我觉得体验很差想要卸载的时候不知道自己卸载是否彻底,让我这个对硬盘有极端控制欲的人很难受)
我们上面将 zram 作为服务运行,所以可以通过 代码登录后可见 进行控制。以下命令可以停止并禁用 zram 服务:
代码登录后可见
卸载 zram 模块
可以使用 代码登录后可见命令完全卸载zram模块。首先,确保没有任何 zram 设备在使用中:
代码登录后可见
然后,卸载 zram 内核模块:
代码登录后可见
移除/注释相关的 fstab 条目
如果 /etc/fstab 文件中有关于 zram 的条目,应该将其注释掉或删除。打开 /etc/fstab 文件:
代码登录后可见
找到类似下面的行:
代码登录后可见
将其注释掉(在行首添加 #)或删除。