Ubuntu配置zswap缓解内存压力
OpenCode + Edge(5-10个标签) + VSCode + Wine,2013 年的老本本 8G 内存很快就见底了,Nuxt 构建时总假死。配置 zswap 后问题明显改善。
清理旧的 Swap
在进行新配置之前,建议先检查并清理现有的 Swap 状态,避免冲突。
查看当前的 Swap 状态:
swapon --show
关闭所有正在使用的 Swap 分区或文件:
sudo swapoff -a
创建 Swap
创建文件:分配 8GB 空间(Linux Swap设置为多大比较适合):
sudo fallocate -l 8G /swapfile
设置权限:为了安全起见,Swap 文件只能由 root 用户读写:
sudo chmod 600 /swapfile
格式化:将该文件标记为 Swap 空间:
sudo mkswap /swapfile
启用 Swap:立即激活该文件:
sudo swapon /swapfile
开机挂载:执行以下命令,将配置追加到文件末尾:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
开启并配置 zswap
zswap 是一个轻量级的压缩缓存,它可以在数据写入磁盘 Swap 之前先进行压缩,从而大幅减少磁盘读写,延长 SSD 寿命并提升性能。
编辑 GRUB 配置文件:
sudo gedit /etc/default/grub
修改内核参数:找到 GRUB_CMDLINE_LINUX_DEFAULT 这一行,在引号内添加以下参数:
zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=20
zswap.enabled=1:开启 zswap。zswap.compressor=lz4:使用 LZ4 算法,这是一种在压缩率和速度之间取得极佳平衡的算法。zswap.max_pool_percent=20:限制 zswap 最多占用物理内存的 20%。
更新 GRUB 并重启:
sudo update-grub
sudo reboot
验证配置结果
重启系统,确认配置是否成功生效。
检查 zswap 状态:执行以下命令,如果返回 Y,说明 zswap 已成功开启。
cat /sys/module/zswap/parameters/enabled
# 预期输出: Y
检查 Swap 状态:再次查看 Swap 信息,确认能看到我们创建的 /swapfile。
swapon --show
# 预期输出: 包含 /swapfile 的信息