type
status
date
slug
summary
tags
category
icon
password
前言:
最近有位朋友遇到了在 Unraid 上万兆网卡无法跑满速度的情况,但由于博主经验不足,未能解决问题。因此我搜索了相关的资料,整理了可能会影响万兆速度的因素供大家参考。
1、硬件设备端
(1)确保网卡插在 PCIE X8 插槽上
理论双向总线吞吐量:
PCI Express | 编码数据速率 | 未编码数据速率 |
x1 | 5 Gb/秒 | 4 Gb/秒(0.5 GB/秒) |
x4 | 20 Gb/秒 | 16 Gb/秒(2 GB/秒) |
x8 | 40 Gb/秒 | 32 Gb/秒(4 GB/秒) |
x16 | 80 Gb/秒 | 64 Gb/秒(8 GB/秒) |
- 万兆网卡一般在 X8 通道上才能实现万兆速度,这个请根据网卡实际来调整。
- 但同时也要确认 X8 插槽不存在共享带宽的情况。
![淘宝 X540 万兆卡说明参考](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fa25bd1ce-b97f-4779-b301-d846cc74a1de%2FUntitled.png?table=block&id=ef89c1db-dfce-4cd3-97fd-8f9d381b9746)
(2)主板 BIOS 关闭节能选项
为了以防万一,请确保主板的 BIOS 中关闭了所有节能相关的选项(例如 PCIE 设备节能、CPU C-State、ASPM 等)。博主整理了相关的 BIOS 节能选项给到大家去参考,大家根据以下参考,结合自己主板的 BIOS 手册去选择关闭。
服务器应用场景下建议不要开启主板的节能选项,因为博主见过太多因为主板节能设置导致 Unraid 系统出问题的情况。 参考:一位使用 Mellanox ConnectX-3 的网友在关闭了 PCIE 的 ASPM 节能选项后实现了正常的万兆速度。
BIOS 截图
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F7d22b3ee-1456-4a13-a332-fdf9903bf9b3%2FUntitled.png?table=block&id=05ccc58a-1a55-4aa1-9adb-477ba7c72aaa)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F33747d52-e1b6-4baf-94d2-6ac8127690e6%2FUntitled.png?table=block&id=5be15f60-c8fc-4c5d-997e-6e59172b46b5)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F72e820e8-6b94-43b6-adca-509802eaa54e%2FUntitled.png?table=block&id=3e2e594e-f2f5-4554-9bdd-21cc714e3044)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fe5e436a2-7520-4f8e-9168-886e43e57436%2FUntitled.png?table=block&id=514efaf5-af47-4fd9-bb06-b583ecf929b9)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F2fab3e73-af47-4a08-97a7-b26487f42745%2FUntitled.png?table=block&id=807c13a1-1784-43d1-b0f8-7c0f1e0416d9)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F5111c9dd-7700-4017-943f-9396f21d6bb6%2FUntitled.png?table=block&id=eca43091-5f01-4868-a4b4-bb0cbe2d5d59)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F9c8dae55-d5c6-4e3b-968e-d21ec1cbf550%2FUntitled.png?table=block&id=033f1d0f-bd29-4ff8-bf36-98aab12a58e2)
- PCI Express Native Power Manager(PCIE 原生控制)
- DMI Link ASPM Control
- ASPM
- L1 Substate
- DMI ASPM
- PEG ASPM
- PCH ASPM
- CPU C-State(C 状态)
- Intel SpeedStep
- Intel Spped Shift Technology
- 休眠/深度睡眠(Deep Sleep)
- ACPI 睡眠状态
- ASPI 自动配置
- Suspend to RAM(挂起到内存)
- S3 Save Mode
- 待补充
(3)主板 BIOS 开启 Above 4G Decoding (大于 4G 地址空间解码)
可以通过开启和关闭该选项去验证和测试网卡的表现。
一方面是对需要大量内存的 PCle 设备比如显卡或计算卡的支持,另一方面是从架构上允许PCIe设备驱动程序访问高于4GB的内存地址。对于具备相应设计的网卡驱动程序可以避免接收数据时的两次缓冲。应保持启用。 ——《Windows 服务器网络性能调优系列硬件篇》
根据微软的文档指出,网卡的驱动程序必须支持64位系统环境下对大于4GB以上内存地址的DMA操作,否则会面临着需要先缓冲到4GB以下的低位地址的两次缓冲而导致的性能丢失。但这个难以核实,因为就没见过哪个驱动程序的说明会清楚描述出这一点。 ——《Windows 服务器网络性能调优系列网卡篇》
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Faa823f25-98ec-4b2d-8fbf-f299a33f262f%2FUntitled.png?table=block&id=62450120-f9c7-4fc4-bacd-b3c806521471)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F0f106772-0f03-4c3d-b0a9-6a6409893bd5%2FUntitled.png?table=block&id=b8c5a3a9-0a70-46d9-b7a2-44d6162878db)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Febe9d637-328d-42ee-93d3-c6e1b375481e%2FUntitled.png?table=block&id=67ee973d-9491-4c2f-9b89-eefcfd144b10)
2、Windows 端
(1)iPerf 版本可能会影响实际测速结果(Windows 端)
iPerf 版本可能会影响测速的结果,因此建议大家可以尝试用不同的版本测试速度。
国外的网友中就有使用最新版本3.1.3
测出来的速度不达标的情况(例如只有 4.2Gbit/s),使用3.0.11
版本则测速正常。
(2)网卡需要安装最新的官方驱动
不要使用 Windows 系统更新的驱动,最好是到官网上下载驱动进行使用。
Unraid 官方论坛上有网友在不安装网卡官方驱动的情况下,只使用 Windows 自动更新的驱动,只能跑到 6Gbits/s 的速度。
(3)关闭杀毒软件/防火墙
测速的时候建议关闭杀毒软件或则防火墙,因为杀毒软件或则防火墙有可能会在系统上安装网络嗅探工具,从而导致万兆速度异常。
这里有个案例,V2EX 上一个 2022 年的帖子《Windows 10 的 10G 网络性能非常糟糕,有什么办法优化吗?》,一位网友的万兆网卡无法实现万兆速度,最后发现是由于杀毒软件(火绒)的原因,卸载并重启系统之后就正常了。
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5ecb05fe-5171-41c0-b920-80b643817327%2Fb32103b9-1571-4ae9-b16c-b199ef33bedb%2FUntitled.png?table=block&id=7a36dd06-1f1d-4874-848e-042cc7e7613d)
(4)关闭网卡节能选项
Windows 设备管理器中,在网卡的”高级“设置中关闭一切相关的节能选项,例如以博主的 2.5G 网卡为例:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fab22e121-f7e0-4daa-a2aa-e235fc82d8e1%2FUntitled.png?table=block&id=03db2e8c-2412-4797-a579-49a9cbab1980)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F9bd77328-4edd-4b84-8263-bff0fb51f052%2FUntitled.png?table=block&id=1f8fb12d-0de2-4fc2-bbf8-169ee2dac990)
(5)修改 MTU
需要说明的是,如果你在设备上设置了 MTU,那么与之相连的设备也必须设置相应的 MTU 值,否则设备之间无法互联。于此同时,巨型帧不能向下兼容。比如一个设置了 9000 MTU 的设备无法向下兼容 1500 MTU 的设备,因此如果你设置了巨型帧,就必须保证其他与之相连的设备也能够支持巨型帧版设置相同的 MTU 。
参考资料:JUST SAY NO TO JUMBO FRAMES(对巨型帧说不)
- 如果你是通过交换机连接 NAS 和 PC,那你需要确保交换机、NAS 和 PC 这三者都支持巨型帧,并且也都修改了设备上的 MTU 值,三者之间的 MTU 值要一致;
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F9277e071-f073-4b50-bec2-576fd24ed14c%2F210058u8vvv9e4qn917bag.jpg?table=block&id=383f4368-31c4-4d73-a163-08548ffc2732)
- 如果你是将电脑与 NAS 的万兆网卡相连,那么 NAS 端和万兆卡都得修改 MTU 值,并且 MTU 值要一致。
- MTU 值需要设置为多少得根据情况来测试,有的情况下不需要设置 MTU 值也可以实现万兆(即保持默认的 1500),有的则需要设置为 9000 或者 9014,请大家根据实际情况来调整。
有些情况下在 Unraid 下设置了 9000 或者 9014 的 MTU 就会导致 Unraid 连接不上,这时候就得重新设置为其他的值(恢复默认的 1500 可以恢复连接)。
- Windows 端在设备的高级选项中设置巨型帧:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F1a3173e2-52f1-4cfd-a4f1-3cfb2bd2619e%2FUntitled.png?table=block&id=f6cb6761-6c9e-4ff9-8112-484866fccb41)
- Unraid 在网络设置中修改 MTU:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F5883e759-744f-4ddb-a985-b97a16a82b04%2FUntitled.png?table=block&id=ee193178-3c81-4587-ac62-4521b99910cd)
(6)Intel 网卡:开启接收端扩展( Receive Side Scaling,简写为 RSS )
需要在设备管理的”高级“设置中开启:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F42c5b75a-4271-46a1-a48a-cac50aee4c46%2FUntitled.png?table=block&id=d3eec281-af8e-4e1b-9ea1-73aa9e23df18)
启用接收端扩展(RSS)后,针对特定 TCP 连接的所有接收数据处理都在多个处理器或处理器内核之间共享。如果不使用 RSS,所有处理都是由一个处理器执行,从而导致系统缓存效率低下。
(7)Intel 网卡:将中断节流率降低到低、最小或关闭
降低中断节流率会提高 CPU 利用率。
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F67a4c02d-bede-4a82-bc71-55b59a2a264e%2FUntitled.png?table=block&id=4219978d-e935-449e-8961-e58371c71d4e)
(8)Intel 网卡:禁用流量控制
禁用流量控制可能导致帧掉落。
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Faf57a1ee-92ba-4be5-a6b0-460709c2ee64%2FUntitled.png?table=block&id=4c55d954-5723-4baa-8bb4-7089aafe2897)
(9)Intel 网卡:增加”传输描述符缓冲区大小“和”接收描述符缓冲区大小“
默认值为 256 或者 512,最大值为 2048,可调整区间为 128 – 2048(以64为增量)。
如果您发现接收到的流量的性能明显下降,则可以选择增加接收缓冲区的数量。如果接收性能不是一个问题,请使用默认设置。增加”传输描述符缓冲区大小“和”接收描述符缓冲区大小“会增加系统内存的使用。
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fb1b724bd-80a6-42a8-b303-88b25c6b5608%2FUntitled.png?table=block&id=7f21cca1-2b71-4440-8fdd-1b59fbdd9fe9)
(9)将接收窗口自动调节级别(TCP Window auto-tuning)设置为 normal。
3、Unraid 端
(1)关闭网卡 NIC flow control
功能,同时开启 NIC Offload
功能
在 Unraid 上安装
tips and tweak
插件,使用插件关闭 NIC flow control
功能并开启 NIC Offload
,修改好之后保险起见最好重启一下 Unraid 。如果你无法在 CA 应用市场安装
复制以下命令到 Unraid 命令行窗口运行:
如果你的 Unraid 版本大于 ≥ 6.11.0
如果你的 Unraid 版本大于 < 6.11.0
然后到插件页面手动安装:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F029c22a3-de7a-436a-9b5d-057759fa5294%2FUntitled.png?table=block&id=c1cf887b-ef1a-4c71-bdc6-d3b628435d1e)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F88ecba67-3c3d-44bc-b682-3be638977734%2FUntitled.png?table=block&id=300537b1-3611-4055-bedf-b3444fd72231)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fd227466d-141f-450d-8d1a-31929cb260c8%2FUntitled.png?table=block&id=2c7ad622-99bb-47eb-9361-6c6a34e2b649)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F896c77fc-3612-44fe-9f01-760f77346b7a%2FUntitled.png?table=block&id=c2d8a385-7c8c-40c4-ad9b-06081b79eae7)
Disable NIC Flow Control
:是否关闭网卡 flow control 功能,设置为Yes
表示关闭。
Disable NIC Offload
:是否关闭网卡 Offload 功能,设置为No
表示不关闭。
(2)修改 MTU
关于 MTU 设置的具体说明请看上面 Windows 端的 MTU 说明。
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F5883e759-744f-4ddb-a985-b97a16a82b04%2FUntitled.png?table=block&id=fb4580b5-3c4b-40a1-9f9d-99e41c4f74b5)
(3)开启 SMB 多通道
设置 - SMB - 启用 SMB 多通道:
但如果因此出现网络问题,请关闭。
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5ecb05fe-5171-41c0-b920-80b643817327%2Fe00b4c35-a055-4273-b43f-77bdfb98795c%2FUntitled.png?table=block&id=47dfd06e-60d1-4d31-a464-c1d75f9d0945)
(4)检查是否内存不够
我在帮别人测试万兆速度的时候,发现在没有关闭 Docker 和虚拟机服务时速度一直上不去,但是 iPerf3 测出来的速度是没问题的。在关闭其他服务释放出相应的内存之后传输速度才正常,通过
free -m
命令查看传输时的内存使用情况,如下图,可以看到 32G 的内存总容量一共缓存了差不多 30G :![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5ecb05fe-5171-41c0-b920-80b643817327%2Fb74ff8dd-74a5-41a7-a2d2-e57bf5073d1d%2FUntitled.png?table=block&id=93498c6c-0d67-4f6e-b1a6-ac10d800f245)
因此,正如我另一篇博客《为什么unRAID下载/拷贝文件时CPU占用高:详解FUSE-SHFS、I/O问题和解决办法》所说,足够的内存是可以加速系统读写速度的:
![其实也不是内存不够,只是多一点内存的话,unRAID 系统可以拿来给到读写加速](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5ecb05fe-5171-41c0-b920-80b643817327%2Fe928d058-9052-4d88-9e97-55e93549168f%2FUntitled.png?table=block&id=3ea9d35a-c88a-4ff0-876b-6e0827e2f3eb)
4、其他
(1)为万兆网络设置单独的网段
建议单独为万兆卡添加另一个网段的 IP :
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fec3052ff-bbb9-44d1-a98b-35703de6de3f%2FUntitled.png?table=block&id=435dda00-a113-4117-8a8d-5d56e14c0be4)
(2)iPerf3 测试对 CPU 单核性能有要求
5、参考资料
- 作者:JackieWu
- 链接:https://www.jackiewu.top/article/unraid-10g-network-precautions
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。