环境准备与硬件清单
在开始万兆传输测试之前,我们首先要确保硬件链路完整。本次测试使用的是一台搭载 Intel X550-T2 万兆网卡的飞牛NAS(fnOS 0.8.6 版本),搭配一台同样配备万兆网卡的 Windows 工作站,中间通过 Cat6a 屏蔽网线直连,交换机选用的是 TP-Link ST1008 万兆非网管交换机。如果你的设备没有原生万兆接口,也可以使用 PCIe 转接卡(比如 Mellanox ConnectX-3 或 Intel X520),系统驱动在 fnOS 中通常即插即用。
软件层面,我们需要在飞牛NAS中确认网卡速率协商为 10 Gbps。进入「控制面板 - 网络 - 网络接口」,查看对应网卡的连接状态,如果显示 10000 Mb/s 即为正常。若只有 1000 Mb/s,请检查网线类型(必须为 Cat6a 或 Cat7)以及交换机端口是否支持万兆。
网络配置优化
万兆传输的瓶颈往往不在硬件,而在默认的 MTU 和流控参数。飞牛NAS基于 Linux 内核,我们可以通过 SSH 进行调优。
首先开启 SSH 功能(控制面板 - 终端 - 启用 SSH),然后使用 root 账户登录。查看当前网卡队列和中断合并设置:
ethtool -l eth0
ethtool -c eth0
如果队列数只有 1,建议开启多队列以提升多线程传输性能:
ethtool -L eth0 combined 4
同时调整中断合并参数,降低 CPU 开销:
ethtool -C eth0 rx-usecs 8 tx-usecs 8
另一个关键优化是启用 jumbo frame(巨型帧)。对于万兆内网,MTU 9000 能显著减少数据包数量,提升吞吐量。在 fnOS 图形界面中,进入「网络 - 接口 - 编辑」,将 MTU 改为 9000。注意,对端设备(Windows 工作站)也要同步设置,否则会出现大量丢包。
Windows 端设置方法:打开「网络连接 - 属性 - 配置 - 高级」,找到 Jumbo Packet 并设置为 9014 字节(部分网卡为 9000),同时在「VM 队列」和「接收/发送缓冲区」中尽量调高。
传输测试方法与实测数据
我们使用三组工具进行测试:iperf3 测纯网络吞吐、SMB 传输大文件、以及 rsync 走 SSH 协议。测试文件选用一个 20GB 的混合数据包(包含 4K 小文件目录和 4GB 大视频文件)。
iperf3 网络层测试
在飞牛NAS上安装 iperf3:
apt update && apt install iperf3
先启动服务端:
iperf3 -s -p 5201
Windows 端下载 iperf3(或使用 WSL 安装),运行:
iperf3 -c 192.168.1.100 -p 5201 -t 30 -P 4
其中 -P 4 表示 4 并发流。实测结果:单线程 TCP 吞吐为 9.41 Gbps,4 并发达到 9.82 Gbps,几乎跑满万兆线速。如果开启 jumbo frame 后,单线程可提升到 9.73 Gbps,说明巨型帧对单流传输有明显帮助。
SMB 协议实测
在 Windows 资源管理器地址栏输入 \\192.168.1.100\共享目录,映射为网络驱动器。使用 FastCopy 工具(或直接系统复制)传输 4GB 单个大文件。观察任务管理器中的网络占用率。实测结果:
- 默认 SMB 设置下:传输速度稳定在 1.1 GB/s(即 8.8 Gbps),CPU 占用约 15%。
- 关闭 SMB 加密(在飞牛NAS的 SMB 服务设置中取消勾选“需要加密”):速度提升至 1.18 GB/s(9.4 Gbps),CPU 占用降至 8%。
注意,如果传输大量小文件(如 10000 个 4K 照片),速度会骤降至 300-400 MB/s,这是正常的 IOPS 瓶颈,与万兆网络无关。建议小文件场景使用 SSD 缓存或直接改用 rsync。
rsync SSH 通道测试
在 Windows 的 WSL 或 Git Bash 中执行:
rsync -av --progress --partial /mnt/c/大文件/ [email protected]:/volume1/测试目录/
实测 SSH 加密传输速度约为 850 MB/s(6.8 Gbps),明显低于 SMB。这是因为 SSH 加解密消耗了较多 CPU 资源。如果使用 arcfour 弱加密算法(不推荐生产环境),可提升至 1.05 GB/s。对于日常备份,建议使用 rsync 配合 SSH 密钥认证,虽然速度稍慢但更安全。
故障排查与注意事项
在实际测试中,我们遇到了几个常见问题,这里分享排查思路。
第一,链路线速正常但 SMB 传输只有 300 MB/s。检查是否启用了 SMB 签名(signing)。在 fnOS 的 SMB 配置文件中,server signing = mandatory 会导致严重降速。通过 SSH 编辑 /etc/samba/smb.conf,将其改为 server signing = disabled 或 auto,然后重启 smbd 服务:
systemctl restart smbd
第二,Windows 端万兆网卡出现“掉速”现象。这通常与电源管理有关。在设备管理器中,找到万兆网卡,进入「电源管理」,取消勾选“允许计算机关闭此设备以节约电源”。同时,在高级设置中,将“能源高效以太网”设为禁用。
第三,如果使用直连网线(不经交换机),请确保两端网卡都开启了自适应交叉。千兆时代需要交叉线,万兆网卡通常自动识别,但部分老型号仍需手动设置。
最后,飞牛NAS的系统盘和存储池建议使用 SSD 或 NVMe 缓存。机械硬盘阵列的持续写入速度一般在 500-800 MB/s,即使网络是万兆,实际测试也会被磁盘拖累。本次测试使用的是 4 块西数红盘组的 RAID5,顺序写入约 1.3 GB/s,恰好能满足万兆需求。
总结
飞牛NAS的万兆传输在优化得当的情况下,SMB 协议实测可达 1.18 GB/s(9.4 Gbps),iperf3 单线程也能跑出 9.4 Gbps 以上,整体表现属于中上水平。关键优化点集中在三处:巨型帧开启、SMB 签名关闭、网卡多队列与中断参数调整。如果你的硬件支持万兆,这套配置流程可以直接复用。对于超大规模并发读写,建议进一步使用 RDMA over Ethernet(RoCE),但飞牛NAS目前默认内核未开启相关模块,需要自行编译,适合进阶用户尝试。