Debian 使用 zram(禁用 zswap)减少对 SSD 写入

1. 禁用 zswap

Debian 12 默认未启用 zswap,但如果你不确定,可以手动禁用它。

方法 1:永久禁用 zswap(推荐)

编辑 GRUB 配置文件:
sudo nano /etc/default/grub

在 GRUB_CMDLINE_LINUX_DEFAULT 选项中添加 zswap.enabled=0:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash zswap.enabled=0"

保存后,更新 GRUB 并重启:
sudo update-grub
sudo reboot

方法 2:临时禁用 zswap(重启后失效)

运行以下命令:
echo 0 | sudo tee /sys/module/zswap/parameters/enabled

2. 关闭物理 Swap 分区(如有)

如果系统已经设置了 Swap 分区或 Swap 文件,建议先禁用它们,避免对 SSD 产生写入。
sudo swapoff -a 

然后确认没有启用 Swap:
swapon --summary

如果有 Swap 分区,建议从 /etc/fstab 中删除相关条目,防止开机时启用:
sudo nano /etc/fstab

找到类似:
UUID=xxxxxxx none swap sw 0 0

将其注释掉:
# UUID=xxxxxxx none swap sw 0 0

然后保存并退出。

3. 安装并启用 zram

安装 zram-tools:
sudo apt install zram-tools

编辑 zram 配置:
sudo nano /etc/default/zramswap

修改以下内容:
ALGO=lz4       # 使用 lz4 压缩,速度快
PERCENT=50     # 使用 50% 的 RAM 作为 zram 交换空间(可根据内存大小调整)

保存后,启动 zram:
sudo systemctl enable --now zramswap.service

确认 zram 是否启用:
swapon --summary
如果生效,应该能看到 /dev/zram0 之类的设备。

4. 调整 swappiness(减少不必要的 Swap 触发)

默认情况下,Linux 可能会在 RAM 仍有空间时使用 Swap。为减少这种情况,将 swappiness 调低:
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf

使更改生效:
sudo sysctl -p

vm.swappiness=10 表示只有在 RAM 快耗尽时才会使用 zram。如果想进一步减少 Swap 依赖,可以尝试 vm.swappiness=5。

5. 验证配置

确保 zswap 已禁用:
cat /sys/module/zswap/parameters/enabled
返回 N 或 0 代表已禁用。

确保 zram 已启用:
swapon --summary
应该看到 /dev/zram0,并且 TYPE 为 partition。

确保 swappiness 设置正确:
cat /proc/sys/vm/swappiness
返回 10 代表已生效。

6. 最终效果:

✅ zswap 关闭,避免与 zram 冲突。
✅ 物理 Swap 关闭,减少 SSD 写入。
✅ zram 启用,在 RAM 压力大时提供压缩 Swap,提高效率。
✅ swappiness 降低,确保系统优先用 RAM,只有在 RAM 逼近耗尽时才使用 Swap。

适用场景:适合 16GB 以上 RAM 的系统,特别是 SSD 设备,能有效减少磁盘写入并优化内存使用。

 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注