iperf3 Windows 带宽比 linux 慢很多

iperf3 Windows bandwidth is much slower than linux

我遇到了一个很奇怪的问题。 我有 2 台服务器,一台 运行s redhat Linux server 7 64Bit,另一台 运行s Windows server 2012 64Bit。两个服务器硬件规格完全相同:

Xeon 2.6Ghz CPU x 2, total 32 logical core
96GB ddr4 memory
1Gb dual port network card
2TB hard disk, the RAID configuration is also same.

当我在两台机器上运行 iperf3 时,结果是非常不同的。 在 Linux 上,结果是:**

$iperf3 -s

$iperf3 -c localhost
Connecting to host localhost, port 5201
[  4] local ::1 port 46996 connected to ::1 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  4.29 GBytes  36.9 Gbits/sec    0    703 KBytes
[  4]   1.00-2.00   sec  4.75 GBytes  40.8 Gbits/sec    0    703 KBytes
[  4]   2.00-3.00   sec  4.66 GBytes  40.0 Gbits/sec    0    767 KBytes
[  4]   3.00-4.00   sec  4.67 GBytes  40.1 Gbits/sec    0    767 KBytes
[  4]   4.00-5.00   sec  4.49 GBytes  38.6 Gbits/sec    0   1.37 MBytes
[  4]   5.00-6.00   sec  4.57 GBytes  39.3 Gbits/sec    0   1.37 MBytes
[  4]   6.00-7.00   sec  4.54 GBytes  39.0 Gbits/sec    0   1.37 MBytes
[  4]   7.00-8.00   sec  4.68 GBytes  40.2 Gbits/sec    0   1.37 MBytes
[  4]   8.00-9.00   sec  4.75 GBytes  40.8 Gbits/sec    0   1.37 MBytes
[  4]   9.00-10.00  sec  4.60 GBytes  39.6 Gbits/sec    0   1.37 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  46.0 GBytes  39.5 Gbits/sec    0             sender
[  4]   0.00-10.00  sec  46.0 GBytes  39.5 Gbits/sec                  receiver

在 Windows 上的结果是:**

iperf3.exe -s

iperf3.exe -c localhost
Connecting to host localhost, port 5201
[  4] local ::1 port 11042 connected to ::1 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec   477 MBytes  4.00 Gbits/sec
[  4]   1.00-2.00   sec   486 MBytes  4.08 Gbits/sec
[  4]   2.00-3.00   sec   555 MBytes  4.66 Gbits/sec
[  4]   3.00-4.00   sec   569 MBytes  4.77 Gbits/sec
[  4]   4.00-5.00   sec   571 MBytes  4.79 Gbits/sec
[  4]   5.00-6.00   sec   584 MBytes  4.90 Gbits/sec
[  4]   6.00-7.00   sec   590 MBytes  4.95 Gbits/sec
[  4]   7.00-8.00   sec   590 MBytes  4.95 Gbits/sec
[  4]   8.00-9.00   sec   599 MBytes  5.03 Gbits/sec
[  4]   9.00-10.00  sec   598 MBytes  5.01 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.00  sec  5.49 GBytes  4.71 Gbits/sec                  sender
[  4]   0.00-10.00  sec  5.49 GBytes  4.71 Gbits/sec                  receiver

iperf Done.

为什么 Windows 这么慢?有人有同样的问题吗?
如何提高 Windows 带宽性能?

这种行为对我的项目影响极大,使用相同的套接字代码,Windows 的吞吐量仅为 Linux 的 1/3。

非常感谢。

请尝试将 TCP window 大小 8.00 KB(默认)增加到至少 64k。请参阅以下文章:

https://arstechnica.com/civis/viewtopic.php?t=1113215

希望对您有所帮助。