内存紧缺,不妨给NAS增加SWAP分区(2026.03修订)
当下内存紧缺,我的绿联 DXP4800Plus 原本有 16G 内存,最近为了买手机不得不卖一根内存折现。
4G-8G 内存的 NAS 我建议可以考虑增加 SWAP 分区,保障 docker 等服务的稳定性。
首先用命令看一下绿联 UGOS Pro 系统的 SWAP 分区策略:
#查看内存使用情况
free -h
#查看 SWAP 分区情况
sudo swapon --show

绿联 DXP4800Plus 在系统盘会设置 2G 的 SWAP 分区;
此外开启内存压缩会有个 50% 内存大小的 zram 分区(内存压缩功能);
在 Docker 分区会有一个 4G 大小的 Docker 用的 SWAP 分区;
所以绿联 DXP4800Plus 的 SWAP 分区设置比较合理,也基本够用。我还是想在固态硬盘上新增一个 SWAP 分区减少对系统盘写入。注意 SWAP 一定要创建在固态硬盘上,不然会明显拖慢速度。

#查看固态硬盘分区
lsblk
有两个固态,一个是系统盘,一个是我加装的固态盘分区是 /volume2

操作流程:
# 创建 8G 的空文件
sudo fallocate -l 8G /volume2/swapfile
# 设置权限 (必须为 600,否则不安全)
sudo chmod 600 /volume2/swapfile
# 格式化为 swap
sudo mkswap /volume2/swapfile
sudo swapon /volume2/swapfile -p 5
增加一个启动脚本,开机后启动 SWAP 分区:
sudo nano /usr/local/bin/startswap.sh
sudo chmod +x /usr/local/bin/startswap.sh
我把 SWAP 分区优先级设置在系统 SWAP 分区前面,所以优先写入创建的 SWAP 分区:
#!/bin/bash
# 在启动脚本中 (如 /etc/rc.local 或 NAS 的自定义脚本界面)
sleep 45 # 等待磁盘挂载
if [ -f /volume2/swapfile ]; then
swapon /volume2/swapfile -p 5
fi
创建服务实现开机自动挂载 SWAP 分区:
sudo nano /etc/systemd/system/startswap.service
[Unit]
Description=开机自启脚本
After=network.target # 等网络就绪后执行
[Service]
Type=oneshot
ExecStart=/bin/bash /usr/local/bin/startswap.sh
User=root
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable startswap.service
sudo systemctl start startswap.service
这样就大功告成了,其他 NAS 也可以用类似思路优化一下。主要目的增加给小内存设备增加 SWAP,减少系统盘写入。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
