Windows iperf 性能太差

Windows iperf 性能太差

我遇到了一个奇怪的问题,让我完全困惑。我的 Windows 计算机上的 10G 以太网性能在一台计算机的传入方向上很差,而在另一台计算机的传入方向上则特别差。为什么不同计算机之间以及不同方向上的速度差异如此之大?那么防火墙为什么会严重影响 TCP 性能呢?

我将在这里讨论三台计算机:

旧服务器:Intel i7-7220X,配备华硕 10G x4 以太网适配器(通过 PCIe 芯片组端口),运行 Unraid

新服务器:配备双 10G SFP+ 的 DL380p,运行 CentOS (9) Stream

台式机:AMD Ryzen 9 5950X 运行 Windows 10 ...

  • ... 最初的测试有一个华硕 10G 以太网适配器
  • ... 刚刚用 PCIe x8 双 10G SFP+ 适配器替换了它

我有一个 10G SFP+ 网络交换机。

  • 旧服务器 <-- RF45 (20 英尺;cat 6) --> SFP+/RJ45 10G 适配器 <--> 交换机

  • 新服务器<-- SFP+ 10G 电缆 --> 交换机

  • 桌面(之前)<-- RJ45(100 英尺;cat6)--> SFP+/RJ45 10G 适配器<--> 交换机

  • 台式机(现在)<--> SFP+/光纤 10G 适配器 <-- 光纤(100 英尺)--> SFP+/光纤 10G 适配器 <--> 交换机

  • 1Gb RJ45 PoE 至网络交换机,连接至网络的其余部分

以下是一系列iperf3运行的总结(使用台式机中的 SFP+ 卡)

两台服务器之间:

服务器(接收) 客户端(德克萨斯州) 平均带宽(Gbit/s)
旧服务器 新服务器 7.1
新服务器 旧服务器 8.4

桌面(已启用 Windows 防火墙):

服务器(接收) 客户端(德克萨斯州) 平均带宽(Gbit/s)
桌面 新服务器 1.2
桌面 旧服务器 5.3
新服务器 桌面 6.2
旧服务器 桌面 7.4

桌面(已启用 BitDefender 防火墙):

服务器(接收) 客户端(德克萨斯州) 平均带宽(Gbit/s)
桌面 新服务器 0.24
桌面 旧服务器 1.8
新服务器 桌面 4.9
旧服务器 桌面 7.8

桌面(无防火墙):

服务器(接收) 客户端(德克萨斯州) 平均带宽(Gbit/s)
桌面 新服务器 1.3
桌面 旧服务器 5.4
新服务器 桌面 7.8
旧服务器 桌面 7.5

这些是我在每台计算机上使用的命令:

  • 新服务器:podman run -it --rm -p 5201:5201 docker.io/clearlinux/iperf -s

  • 旧服务器:docker run -it --rm -p 5201:5201 docker.io/clearlinux/iperf -s

  • 桌面:winpty ./iperf3.exe -s

一些说明:

  • 台式机的网络设置显示它具有 10G 双向链路

  • 这些速度与我使用 RJ45 10Ge 连接到桌面的速度大致相同

  • 这些测试是可重复的

答案1

在进行了大量更彻底/更长时间/参数测试之后,我发现:

当关闭防火墙进行接收时,这台计算机的速度达到 5.45 Gb/s,但iperf3在单流模式下可以以大约 8 Gb/s 的速度传输。

当我使用四流时,我可靠地达到了 9.5 Gb/s 的 TX 和 RX。

当我使用四流并打开 Windows Defender 防火墙时,我几乎没有注意到差异。

当我使用四流并打开 BitDefender 防火墙时,我达到了 9.50 Gb/s TX 但 RX 达到了 2.3-4 Gb/s。

这让我确认两个都以下是主要罪魁祸首:

  • 单流(意味着 Windows 中单个套接字将数据传输到进程的方式存在效率低下的问题)

  • BitDefender 防火墙(哇哦)

不能 100% 确定为什么不同的主机之间会有所不同,但这就是生活。

相关内容