4

I have encountered a very strange issue. I have 2 servers, one runs redhat Linux server 7 64Bit, ahother runs Windows server 2012 64Bit. Both server hardware spec is exactly same:

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.

When I run iperf3 on both machine, the result is very different. On Linux the result is:**

$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

On Windows the result is:**

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.

Why Windows is so slow? Is anyone had same issue?
How can I improve the Windows bandwidth performance?

This behaviour affects my project extremely, with same socket code, Windows has only 1/3 throughput than Linux.

Thank you very much.

Li JianMing
  • 47
  • 2
  • 6
  • 1
    This has nothing to do with programming. Maybe you should ask this in superuser community. – Sourav Ghosh Feb 18 '17 at 05:32
  • Have you tried booting the Windows machine with Linux? Maybe there is a hardware difference even though there shouldn't be. – deltab Feb 18 '17 at 05:57
  • Linux and Windows are run on each server, the test is run on localhost, Linux and Windows is not connected. – Li JianMing Feb 18 '17 at 06:06
  • I am using TCP sockets for IPC, and I am seeing exactly the same kind of thing, with numbers similar to yours. I wish the community was more supportive of this question, since it is related to system architecture design -- a design that works well on Linux might not work on Windows due to TCP bandwidth limits. – likebike Jul 10 '20 at 01:10

1 Answers1

1

Please try increasing TCP window size 8.00 KByte (default) to at least 64k. See the article below:

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

Hope it helps.

HLie
  • 40
  • 3
  • I already try to increase TCP window size in Windows registry, but after reboot, the result is still same. Is TCP window size affects the localhost test? – Li JianMing Feb 18 '17 at 05:54
  • 4
    Why did you accept this as an answer if it hasn't solved your problem? – T3rm1 Aug 01 '17 at 13:28