I did a bunch of tests today:
Replacement Cables for both systems plus a direct connection between workstation and switch
Initially produced a SINGLE test run that was above the speeds i was getting:
C:\temp\iperf-3.1.3-win64>iperf3.exe -c 192.168.0.11
Connecting to host 192.168.0.11, port 5201
[ 4] local 192.168.0.101 port 50593 connected to 192.168.0.11 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 534 MBytes 4.48 Gbits/sec
[ 4] 1.00-2.00 sec 614 MBytes 5.15 Gbits/sec
[ 4] 2.00-3.00 sec 662 MBytes 5.55 Gbits/sec
[ 4] 3.00-4.00 sec 586 MBytes 4.91 Gbits/sec
[ 4] 4.00-5.00 sec 680 MBytes 5.70 Gbits/sec
[ 4] 5.00-6.00 sec 730 MBytes 6.13 Gbits/sec
[ 4] 6.00-7.00 sec 670 MBytes 5.62 Gbits/sec
[ 4] 7.00-8.00 sec 706 MBytes 5.92 Gbits/sec
[ 4] 8.00-9.00 sec 605 MBytes 5.08 Gbits/sec
[ 4] 9.00-10.00 sec 601 MBytes 5.04 Gbits/sec
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 6.24 GBytes 5.36 Gbits/sec sender
[ 4] 0.00-10.00 sec 6.24 GBytes 5.36 Gbits/sec receiver
Second, thrid and further testing revealed this to be a fluke… still ~4.0-.4.8 Gbps in general.
Direct connection between the two PCs
Does not make any difference it seems
Reset the device, reinstalled latest drivers
Does not make any difference it seems
Additional when running multiple tests i get results like these intermittently:
C:\temp\iperf-3.1.3-win64>iperf3.exe -c 192.168.0.11
Connecting to host 192.168.0.11, port 5201
[ 4] local 192.168.0.101 port 50602 connected to 192.168.0.11 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 91.2 MBytes 765 Mbits/sec
[ 4] 1.00-2.00 sec 283 MBytes 2.38 Gbits/sec
[ 4] 2.00-3.00 sec 0.00 Bytes 0.00 bits/sec
[ 4] 3.00-4.00 sec 83.5 MBytes 701 Mbits/sec
[ 4] 4.00-5.00 sec 404 MBytes 3.39 Gbits/sec
[ 4] 5.00-6.00 sec 55.6 MBytes 467 Mbits/sec
[ 4] 6.00-7.00 sec 66.4 MBytes 554 Mbits/sec
[ 4] 7.00-8.00 sec 0.00 Bytes 0.00 bits/sec
[ 4] 8.00-9.00 sec 0.00 Bytes 0.00 bits/sec
[ 4] 9.00-10.00 sec 0.00 Bytes 0.00 bits/sec
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 984 MBytes 825 Mbits/sec sender
[ 4] 0.00-10.00 sec 983 MBytes 825 Mbits/sec receiver
I then just wait a few seconds and run iperf3 again and results are back at ~4.5 Gbps.
I’ve double checked: Both cards sit in X16 PCIe slots. In the Server in the primary PCIe x16 slot, in my PC in the secondary x16 slot that runs at x4 speed.
I don’t quite know what to do next
The advanced settings are heavily modified by now - are they correct?
Setting (default)
Downshift Retries: disabled (enabled)
Flow Control: disabled (enabled)
Interrupt Moderation: disabled (enabled)
Interrupt Moderation rate: Off (Medium)
IPv4 Checksum Offload: disabled (enabled)
Jumbo Packet: 9014 Bytes (off) (max limit of my 10g switch)
Large send Offload V1/V2 ipv4/6: disabled (enabled)
RSS Queues: 8 (8)
Recieve Buffers: 4096 (512)
Recieve Side Scaling: enabled (enabled)
Recv Segment Coalescing ipv4/6: Disabled (enabled)
TCP/UDP Checksum Offload IPv4/6: disabled (enabled)
Transmit Buffers: 8184 (2048)
Any thoughts on these settings?
Could this be a CPU related issue?
My Workstation runs a ryzen 2700x, my fileserver a Pentium Gold G5400. I see that iperf 3 utilizes ~23-25% of the CPU which would suggest 1 core?!
Thanks!
EDIT2:
WTF… I’ve just did some testing with a long term iperf3 transfer and noticed that the transmit speed cuts out to zero, goes up again etc etc.
I’ve limited the iperf3.exe on the server via taskmanager to use only one core and guess what: transfer becames stable. Also, speed INCREASED:
I start off with no settings in taskmanager:
[ 4] 33.01-34.00 sec 347 MBytes 2.95 Gbits/sec
[ 4] 34.00-35.00 sec 511 MBytes 4.28 Gbits/sec
[ 4] 35.00-36.00 sec 0.00 Bytes 0.00 bits/sec
[ 4] 36.00-37.00 sec 0.00 Bytes 0.00 bits/sec
[ 4] 37.00-38.00 sec 74.1 MBytes 622 Mbits/sec
[ 4] 38.00-39.00 sec 521 MBytes 4.37 Gbits/sec
[ 4] 39.00-40.00 sec 586 MBytes 4.92 Gbits/sec
[ 4] 40.00-41.02 sec 290 MBytes 2.39 Gbits/sec
[ 4] 41.02-42.00 sec 0.00 Bytes 0.00 bits/sec
[ 4] 42.00-43.00 sec 0.00 Bytes 0.00 bits/sec
[ 4] 43.00-44.00 sec 0.00 Bytes 0.00 bits/sec
[ 4] 44.00-45.01 sec 0.00 Bytes 0.00 bits/sec
[ 4] 45.01-46.00 sec 386 MBytes 3.28 Gbits/sec
[ 4] 46.00-47.02 sec 197 MBytes 1.63 Gbits/sec
[ 4] 47.02-48.00 sec 0.00 Bytes 0.00 bits/sec
[ 4] 48.00-49.00 sec 0.00 Bytes 0.00 bits/sec
[ 4] 49.00-50.00 sec 0.00 Bytes 0.00 bits/sec
[ 4] 50.00-51.00 sec 0.00 Bytes 0.00 bits/sec
(Switched taskmanager to let iperf3.exe only use one core and set priority to realtime:)
[ 4] 51.00-52.00 sec 608 MBytes 5.11 Gbits/sec
[ 4] 52.00-53.00 sec 761 MBytes 6.38 Gbits/sec
[ 4] 53.00-54.00 sec 763 MBytes 6.40 Gbits/sec
[ 4] 54.00-55.00 sec 852 MBytes 7.15 Gbits/sec
[ 4] 55.00-56.00 sec 857 MBytes 7.19 Gbits/sec
[ 4] 56.00-57.00 sec 854 MBytes 7.16 Gbits/sec
[ 4] 57.00-58.00 sec 852 MBytes 7.15 Gbits/sec
[ 4] 58.00-59.00 sec 846 MBytes 7.10 Gbits/sec
[ 4] 59.00-60.00 sec 824 MBytes 6.91 Gbits/sec
[ 4] 60.00-61.00 sec 838 MBytes 7.03 Gbits/sec
[ 4] 61.00-62.00 sec 842 MBytes 7.07 Gbits/sec
[ 4] 62.00-63.00 sec 867 MBytes 7.27 Gbits/sec
[ 4] 63.00-64.00 sec 772 MBytes 6.48 Gbits/sec
[ 4] 64.00-65.00 sec 861 MBytes 7.22 Gbits/sec
uhmm… what gives? Why would limiting to one core actually improve performance?
Also: when using CPU cores 1 or 2 i get ~7Gbps - when using either core 3 or 4 i only get the ~4Gbps from before.