1. 理论知识介绍
zRam 是 Linux 内核提供的一个模块,其功能是在内存中开辟一块压缩区域作为交换空间(Swap)。
- 工作机制:当系统物理内存压力较大时,内核将内存页压缩后存入 zRam 区域,而不是直接写入硬盘。
- 配置意义:由于内存的读写速度(GB/s 级别)远高于磁盘(MB/s 级别),使用 zRam 可以显著降低系统在内存吃紧时的 I/O 等待时间,提高响应速度。
- 优先级逻辑:在配置中需要将 zRam 的优先级(Priority)设为高于磁盘 Swap,确保系统优先进行内存压缩,只有当 zRam 也存满时才写入磁盘。
2. 单步命令实践
第一步:安装管理工具
在 Ubuntu 中,使用 zram-tools 可以实现最稳定的持久化配置。
sudo apt update
sudo apt install zram-tools -y
第二步:编辑配置文件
修改配置文件以定义 zRam 的性能参数。
sudo nano /etc/default/zramswap
建议配置项:
ALGO=zstd:指定压缩算法。PERCENT=60:设置 zRam 设备的最大大小为物理内存的 60%。PRIORITY=100:设置优先级为 100(默认磁盘 Swap 通常为 -2)。
第三步:重启服务应用配置
sudo systemctl daemon-reload
sudo systemctl restart zramswap
第四步:调整系统 Swappiness
调整内核参数,使系统在内存尚有剩余时更主动地利用 zRam 进行压缩。
# 临时调整
sudo sysctl vm.swappiness=100
# 持久化调整
echo "vm.swappiness=100" | sudo tee -a /etc/sysctl.conf
3. 验证环节
验证设备加载情况
通过 zramctl 命令查看设备是否已经启动以及压缩效率:
zramctl
如果输出中包含 /dev/zram0 且 DISKSIZE 符合预期,则表示加载成功。
验证交换分区优先级
确保系统确实在优先使用 zRam:
swapon --show
检查重点:查看 /dev/zram0 的 PRIO 值是否大于磁盘 Swap 文件的 PRIO 值。
4. 知识点汇总
| 模块 | 关键点 | 说明 | |||
|---|---|---|---|---|---|
| 内核模块 | zram |
实现内存压缩的核心模块 | |||
| 配置文件 | /etc/default/zramswap |
控制大小、算法和优先级的主配置文件 | |||
| 核心算法 | zstd |
平衡压缩比与 CPU 负载的推荐算法 | |||
| 管理命令 | zramctl |
查看压缩数据量、原始数据量及设备状态 |