Ubuntu 配置 zRam 总结指南

目录

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/zram0DISKSIZE 符合预期,则表示加载成功。

验证交换分区优先级

确保系统确实在优先使用 zRam:

swapon --show

检查重点​:查看 /dev/zram0PRIO 值是否大于磁盘 Swap 文件的 PRIO 值。


4. 知识点汇总

模块 关键点 说明
内核模块 zram 实现内存压缩的核心模块
配置文件 /etc/default/zramswap 控制大小、算法和优先级的主配置文件
核心算法 zstd 平衡压缩比与 CPU 负载的推荐算法
管理命令 zramctl 查看压缩数据量、原始数据量及设备状态