I ran `iperf3` between two Windows machines and noticed that the speeds were not symmetric. I tested using both the built-in 1-gigabit Ethernet adapters in each machine as well as with 10-gigabit Mellanox ConnectX-2 cards in both machines.
Here's the relevant output. I address the 10-gigabit cards using IP addresses of `192.168.1.XXX` while I address the 1-gigabit adapters with `192.168.0.XXX`.
Notice how the transfer from `192.168.1.220` to `192.168.1.201` (bottom) is much slower than the top. Interestingly, I get similar results if I use a single gigabit connection instead:
In both cases, transfers from `192.168.X.220` to `192.168.X.201` are not running at full speeds, while they (nearly) are the other way around.
What could be causing the transfer to be slower in one direction and not the other? Could this be a hardware issue? I'll mention that `192.168.X.220` is an "HP Slimline Desktop - 290-p0043w" with a Celeron G4900 CPU running Windows Server 2019 if that is somehow a bottleneck.
I notice the same performance difference when transferring large files from the SSD on one system to the other.
I'm hoping it's a software issue so it can be fixed, but I'm not sure. Any ideas on what could be the culprit?
Here's the relevant output. I address the 10-gigabit cards using IP addresses of `192.168.1.XXX` while I address the 1-gigabit adapters with `192.168.0.XXX`.
Code:
PS E:\myfolder> iperf3.exe -c 192.168.1.220
Connecting to host 192.168.1.220, port 5201
[ 4] local 192.168.1.201 port 54596 connected to 192.168.1.220 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 914 MBytes 7.66 Gbits/sec
[ 4] 1.00-2.00 sec 909 MBytes 7.63 Gbits/sec
[ 4] 2.00-3.00 sec 938 MBytes 7.87 Gbits/sec
[ 4] 3.00-4.00 sec 959 MBytes 8.05 Gbits/sec
[ 4] 4.00-5.00 sec 956 MBytes 8.02 Gbits/sec
[ 4] 5.00-6.00 sec 958 MBytes 8.04 Gbits/sec
[ 4] 6.00-7.00 sec 974 MBytes 8.17 Gbits/sec
[ 4] 7.00-8.00 sec 995 MBytes 8.34 Gbits/sec
[ 4] 8.00-9.00 sec 960 MBytes 8.05 Gbits/sec
[ 4] 9.00-10.00 sec 971 MBytes 8.15 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 9.31 GBytes 8.00 Gbits/sec sender
[ 4] 0.00-10.00 sec 9.31 GBytes 8.00 Gbits/sec receiver
iperf Done.
PS E:\myfolder> iperf3.exe -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.1.220, port 49675
[ 5] local 192.168.1.201 port 5201 connected to 192.168.1.220 port 49676
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 428 MBytes 3.59 Gbits/sec
[ 5] 1.00-2.00 sec 371 MBytes 3.11 Gbits/sec
[ 5] 2.00-3.00 sec 406 MBytes 3.40 Gbits/sec
[ 5] 3.00-4.00 sec 423 MBytes 3.55 Gbits/sec
[ 5] 4.00-5.00 sec 421 MBytes 3.53 Gbits/sec
[ 5] 5.00-6.00 sec 410 MBytes 3.44 Gbits/sec
[ 5] 6.00-7.00 sec 403 MBytes 3.38 Gbits/sec
[ 5] 7.00-8.00 sec 411 MBytes 3.45 Gbits/sec
[ 5] 8.00-9.00 sec 414 MBytes 3.48 Gbits/sec
[ 5] 9.00-10.00 sec 414 MBytes 3.48 Gbits/sec
[ 5] 10.00-10.04 sec 16.8 MBytes 3.67 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-10.04 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-10.04 sec 4.02 GBytes 3.44 Gbits/sec receiver
Code:
PS E:\myfolder> iperf3.exe -c 192.168.0.220
Connecting to host 192.168.0.220, port 5201
[ 4] local 192.168.0.201 port 54721 connected to 192.168.0.220 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 113 MBytes 950 Mbits/sec
[ 4] 1.00-2.00 sec 113 MBytes 949 Mbits/sec
[ 4] 2.00-3.00 sec 113 MBytes 949 Mbits/sec
[ 4] 3.00-4.00 sec 113 MBytes 950 Mbits/sec
[ 4] 4.00-5.00 sec 113 MBytes 949 Mbits/sec
[ 4] 5.00-6.00 sec 113 MBytes 948 Mbits/sec
[ 4] 6.00-7.00 sec 113 MBytes 950 Mbits/sec
[ 4] 7.00-8.00 sec 113 MBytes 949 Mbits/sec
[ 4] 8.00-9.00 sec 113 MBytes 949 Mbits/sec
[ 4] 9.00-10.00 sec 113 MBytes 948 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 1.10 GBytes 949 Mbits/sec sender
[ 4] 0.00-10.00 sec 1.10 GBytes 949 Mbits/sec receiver
iperf Done.
PS E:\myfolder> iperf3.exe -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.0.220, port 49677
[ 5] local 192.168.0.201 port 5201 connected to 192.168.0.220 port 49678
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 69.5 MBytes 583 Mbits/sec
[ 5] 1.00-2.00 sec 72.7 MBytes 609 Mbits/sec
[ 5] 2.00-3.00 sec 72.7 MBytes 610 Mbits/sec
[ 5] 3.00-4.00 sec 72.7 MBytes 609 Mbits/sec
[ 5] 4.00-5.00 sec 72.6 MBytes 609 Mbits/sec
[ 5] 5.00-6.00 sec 72.7 MBytes 610 Mbits/sec
[ 5] 6.00-7.00 sec 72.7 MBytes 610 Mbits/sec
[ 5] 7.00-8.00 sec 72.6 MBytes 609 Mbits/sec
[ 5] 8.00-9.00 sec 72.6 MBytes 609 Mbits/sec
[ 5] 9.00-10.00 sec 72.6 MBytes 609 Mbits/sec
[ 5] 10.00-10.01 sec 1.05 MBytes 606 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-10.01 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-10.01 sec 724 MBytes 607 Mbits/sec receiver
What could be causing the transfer to be slower in one direction and not the other? Could this be a hardware issue? I'll mention that `192.168.X.220` is an "HP Slimline Desktop - 290-p0043w" with a Celeron G4900 CPU running Windows Server 2019 if that is somehow a bottleneck.
I notice the same performance difference when transferring large files from the SSD on one system to the other.
I'm hoping it's a software issue so it can be fixed, but I'm not sure. Any ideas on what could be the culprit?