Arch Linux Setup Zram
zram 介绍
zram, 是一个用于在内存中创建压缩的块设备的 Linux 内核模块, 即带实时磁盘压缩的内存盘, 通过 zram 创建的块设备可以用作 swap 或是内存盘
将数据在内存中进行压缩, 意味着实际占用的物理内存比原始数据要少, 可以有效地增加了可用内存
同时 zram 不进行磁盘 I/O 操作, 对比磁盘 swap, 不会明显的降低系统性能
开启 zram
启动 zram 有很多种方式, 以下选用 zram-generator 进行开启
-
安装软件包
yay -S zram-generator
-
编辑配置文件
sudo vim /etc/systemd/zram-generator.conf
在其中写入一下内容
# /etc/systemd/zram-generator.conf [zram0] zram-size = ram / 2 compression-algorithm = lz4
设置中的 zram 大小实际是指最大未被压缩的数据量, 同时 zram 设备在创建后并不会消耗内存, 因此在设置时你可以将 zram 大小设置的与物理内存相同甚至更大
压缩算法选择
算法 压缩速度 解压速度 压缩率 CPU 占用 备注 LZO 非常快 非常快 较低 低 适用于实时数据处理, 低 CPU 需求场景 LZO-RLE 快 快 中等 低 对于高重复工作的场景有更好的压缩率 LZ4 极快 极快 较低 低 压缩与解压速度最快, CPU 占用少, 适合快速内存交换场景 zstd 快 快 高 中等 压缩率最高, 但所需资源多, 适合内存需求大, 但 CPU 需求少的场景 -
重载配置
sudo systemctl daemon-reload
-
启动服务
sudo systemctl start systemd-zram-setup@zram0.service
zramN 需要与配置文件中的设备名保持一致
-
检查
使用
zramctl
命令可查看当前的数据压缩情况zramctl # 将会输出类似的结果 NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT /dev/zram0 lz4 415M 4K 70B 20K 4 [SWAP]
查看支持的压缩算法
sudo cat /sys/block/zram0/comp_algorithm # 当前使用的算法将被框出 lzo lzo-rle [lz4] zstd