对于很多使用 4GB、8GB 内存 NAS 的用户来说,随着Docker、虚拟机、影视服务、下载工具越装越多,经常会遇到内存紧张的问题。现在通过内存压缩技术,即使不增加物理内存,也能有效提升系统的响应速度和多任务处理能力

简单来说,就是把一部分暂时不活跃的数据先压缩存放在内存中,而不是直接写入硬盘交换分区,由于内存速度远高于硬盘,因此能够减少系统卡顿,提高整体运行效率
适合哪些用户开启?
我个人比较推荐以下用户开启:
- 4GB 内存用户(强烈推荐)
- 8GB 内存用户(推荐)
- 16GB 内存且运行较多 Docker、虚拟机用户(可开启)
如果你的 NAS 已经是:
- 32GB 内存及以上
- 日常内存占用长期低于 50%
那其实就没什么必要折腾了,收益并不会特别明显。
如何开启内存压缩
因为目前还没有UI界面操作,只能进入终端root后依次执行以下命令开启
先永久禁用 swapfile
编辑 fstab
sudo nano /etc/fstab
这一行 前面加 #
# /swapfile none swap sw 0 0

保存退出
Ctrl + O→ 回车Ctrl + X
再确认一下是否注释成功
cat /etc/fstab

然后重启一下NAS,安装并启用 zram
# 安装并启用 zram
sudo apt update
sudo apt install -y zram-tools
# 使用 lzo-rle 压缩算法
echo -e "ALGO=lzo-rle\nPERCENT=60" | sudo tee /etc/default/zramswap
# 重新读配置
sudo service zramswap reload
# 重启服务
sudo systemctl restart zramswap.service
# 看状态
systemctl status zramswap.service
# 验证
swapon --show
其中:
- lzo-rle 为压缩算法,压缩率和性能比较均衡
- 60 表示拿出物理内存的 60% 创建 ZRAM 压缩空间
目前公测用户版本还不能使用zstd和lz4算法,所有我上面命令使用的是lzo-rle,内测用户可以把 lzo-rle改成 zstd

以我这台 NAS 为例,物理内存为 4GB,开启内存压缩后,系统自动创建了约 2.3GB 的 ZRAM 压缩空间,这意味着系统在原有 4GB
内存基础上,额外获得了约 2.3GB 的压缩交换空间
一个更容易理解的表格

内存压缩并不能代替物理内存升级,但对于 4GB、8GB 等小内存 NAS 来说,确实是一个非常实用的优化方案