绿联 NAS (N100) 系统调优
极限性能与稳定性的平衡艺术
警告
风险提示
下文涉及内核与系统服务的底层修改。不懂的指令不要输,不确认的选项不要选。
绝对禁止执行 apt upgrade kernel 或修改 /boot 分区,这会导致系统无法引导!

1. 为什么需要调优呢?(Why & When)
开工之前,不仅要“知其然”,更要“知其所以然”。绿联这台 N100 NAS 虽然性价比极高,但出厂的系统配置为了照顾“开箱即用”的稳定性,在性能释放上非常保守。
我们可以通过以下四个维度来判断你的设备是否需要“手术”:
内存瓶颈 (Memory Pressure)
- 现象:N100 标配 8G 内存,对于单纯的文件存储确实够用。但一旦你开始运行 Docker(Jellyfin、Immich、ElasticSearch),内存会迅速捉襟见肘。
- 后果:当物理内存耗尽,Linux 会被迫使用硬盘上的 Swap 分区。硬盘读写速度(几十 MB/s)远低于内存(几十 GB/s),导致系统由于频繁 I/O 等待而假死卡顿。
- 自检命令:
1 2 3 4 5# 查看内存使用情况。如果 Swap 的 used 不为 0 且数值很大,说明内存严重不足。 free -h # 实时监控 Swap 交换频率。si/so (swap in/out) 列如果不为 0,说明系统正在疯狂读写硬盘换页。 vmstat 1 5
截图不作参考了,服务器已经扩充Swap。

网络协议栈 (Network Stack)
- 现象:在局域网内跑满 2.5G 没问题,但通过公网(异地组网、FRP、IPv6)访问时,速度远低于带宽上限,且容易断连。
- 原因:Linux 默认的 TCP 拥塞控制算法(Cubic)对丢包非常敏感。在公网这种长链路、易丢包的环境下,一旦检测到丢包就剧烈降速。而 Google 的 BBR 算法则是通过探测带宽来动态调整,抗丢包能力极强。
- 自检命令:
1 2# 查看当前拥塞控制算法。如果输出不是 bbr,说明你在公网环境下还有很大提速空间。 sudo sysctl net.ipv4.tcp_congestion_control

并发限制 (Concurrency Limits)
- 现象:部署了数十个 Docker 容器后,某些容器突然日志报错
Too many open files,或者 qBittorrent 无法连接更多 Peer。 - 原因:Linux 默认为了防止单个进程耗尽资源,将单进程允许打开的文件句柄数限制为 1024。对于文件密集型的 NAS 应用(数据库、下载器)来说,这个阈值太低了。
- 自检命令:
1 2# 查看当前用户的软限制。如果是 1024,建议调大。 ulimit -n
系统冗余 (System Bloat)
- 现象:什么都没干,CPU 占用率却居高不下,硬盘一直在“炒豆子”。
- 原因:原厂系统为了提供“智能”功能,后台常驻了大量索引、AI 识别、转码服务。如果你习惯使用 Docker 替代方案(如 PhotoPrism 替代相册),这些原厂服务就是纯粹的吸血鬼。
- 自检命令:
1 2# 按 M 键按内存排序,查看是否存在 ug- 开头的非必要高占用进程 top
如果以上任何一条击中了你的现状,那么请继续往下阅读。
2. 内存优化:zRAM (压缩内存)
官方文档
zRAM 是 Linux 内核的一项技术,它在物理内存中划分出一块区域,将准备写入磁盘 Swap 的数据压缩后存入这块区域。
- 原理:用 CPU 算力(压缩/解压)换取 I/O 速度和空间。
- 收益:N100 的算力换取 2GB+ 的额外可用内存,且速度是纳秒级(内存)而非毫秒级(硬盘)。
压缩算法选择
- lzo/lzo-rle:速度快,压缩率低(适合 CPU 较弱的设备)。
- zstd:压缩率高,速度较快(推荐现代 CPU 使用)。
- deflate:平衡型,资源占用适中。
实施步骤
由于绿联内核可能阉割了 zstd 算法,我们需采用兼容策略。
第一步:临时验证 (立即生效)
| |

第二步:配置开机自启 (持久化)
创建自动脚本以确保重启后配置不丢失。
编写启动脚本:
sudo vi /usr/local/bin/init-zram.sh1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21#!/bin/bash # 自动检测最佳算法: zstd > lzo-rle > lzo modprobe zram ALGO="lzo" if grep -q "zstd" /sys/block/zram0/comp_algorithm; then ALGO="zstd" elif grep -q "lzo-rle" /sys/block/zram0/comp_algorithm; then ALGO="lzo-rle" fi # 初始化设备 zramctl --reset /dev/zram0 zramctl --find --size 2G --algorithm $ALGO # 挂载 mkswap /dev/zram0 swapon /dev/zram0 --priority 100 # 调整 Swappiness (倾向使用 RAM) sysctl vm.swappiness=10赋予权限:
sudo chmod +x /usr/local/bin/init-zram.sh创建 Systemd 服务:
sudo vi /etc/systemd/system/zram-config.service1 2 3 4 5 6 7 8 9 10 11[Unit] Description=Configure zRAM swap device After=local-fs.target [Service] Type=oneshot ExecStart=/usr/local/bin/init-zram.sh RemainAfterExit=yes [Install] WantedBy=multi-user.target启用服务:
1 2 3sudo systemctl daemon-reload sudo systemctl enable zram-config.service sudo systemctl start zram-config.service
3. 网络与内核参数:TCP BBR & Limits
📖 官方介绍: TCP BBR Congestion Control 📖 Linux Limits: Limits.conf manual
- BBR (Bottleneck Bandwidth and Round-trip propagation time):Google 开发的 TCP 拥塞控制算法。传统算法(Cubic)检测到丢包就降速,而 BBR 通过探测带宽和延迟来决定发送速度,在长距离、有丢包的网络环境(如公网访问 NAS)下效果奇佳。
- File Descriptors (nofile):Linux 视一切皆文件(网络连接也是文件)。默认
1024的限制在 NAS 跑满 BT 下载或大量容器时极易耗尽。
实施步骤 (使用脚本)
推荐使用开源工具 linux-optimizer 进行安全调整。
| |

⚠️ 严格选择以下选项:
- 选项 10 (Optimize Network):开启 BBR,优化 TCP 窗口。
- 选项 11 (Optimize SSH):防止终端并在连接超时。
- 选项 12 (Optimize System Limits):将
nofile提升至 65535。
小心
绝对不要选 1-6 项! 任何涉及 System Update 或 Kernel Upgrade 的选项都会破坏绿联的定制引导,导致设备变砖。
4. 进程管理:精简官方服务
官方文档
UGOS Pro 系统自带大量服务(索引、AI 识别、转码)。如果你打算使用 Docker 部署Jellyfin、Immich等替代方案,这些官方服务就是纯粹的资源浪费(内存泄漏大户)。
实施步骤
1. 侦察敌情
查看谁在吃资源:
| |

2. 精确打击
停用非核心业务服务(请根据自身需求选择,保留 samba 和 docekr 等基础服务)。
| |