Link speed slower over fiber SFP28 vs cooper SFP+?

It’s been a long time since I posted an update.

After a lot of testing and changes, I’m still running into this issue, but not as bad as before kinda sorta.:

  1. I replaced the ConnectX-6 NIC in my PC with a smaller low-profile one and put it on the x16 slot under my GPU (making it PCIe 4.0 x8 speeds even though it’s only an x4 card). The previous ConnectX-6 would readily drop speeds and sometimes not even connect. That’s probably one reason the fiber couldn’t keep up.
  2. I upgraded the iperf3 version with an unofficial build. Windows hasn’t had a compiled build since 2016, but some folks are doing it themselves like this one: GitHub - ar51an/iperf3-win-builds: iperf3 binaries for Windows. Benchmark your network limits..

The issue

This is the issue I was running into:

image

The NAS is capable of much faster read speeds, and the NVMe drive is capable of 7GB/s writes. Both of these should be maxing out 25Gb Ethernet.

I can’t test this with 10Gb copper right now, but it was transferring 1GB/s in the past with the same file to the same drive.

I already enabled SMB Multichannel enabled on both fiber lines:

PS > Get-SmbMultichannelConnection

Server Name    Selected Client IP   Server IP   Client Interface Index Server Interface Index Client RSS Capable Client
                                                                                                                  RDMA
                                                                                                                 Capabl
                                                                                                                 e
-----------    -------- ---------   ---------   ---------------------- ---------------------- ------------------ ------
storeman.octen True     10.1.0.49   10.1.0.6    12                     4                      True               False
storeman.octen True     192.168.6.3 192.168.6.2 11                     5                      True               False

More transfers

I did more transfers tonight to see what was going on, and this file transferred a lot faster, but not fast enough:

image

And here’s the way back:

image

I unplugged and re-plugged in the fiber jacks and this is what I got from NAS to PC:

image

And PC to NAS (even faster):

image

The NAS is running 2 x 25Gb fiber just like my PC. They both go through a UniFi switch, but I tried going direct in the past and saw no difference.

iperf3 benchmarks

2.5Gb PC onboard NIC to 10Gb NAS onboard NIC

# iperf3.exe -c 192.168.6.10
Connecting to host 192.168.6.10, port 5201
[  5] local 192.168.6.12 port 56533 connected to 192.168.6.10 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.01   sec   301 MBytes  2.50 Gbits/sec
[  5]   1.01-2.00   sec   292 MBytes  2.47 Gbits/sec
[  5]   2.00-3.01   sec   295 MBytes  2.47 Gbits/sec
[  5]   3.01-4.00   sec   286 MBytes  2.42 Gbits/sec
[  5]   4.00-5.01   sec   298 MBytes  2.47 Gbits/sec
[  5]   5.01-6.01   sec   291 MBytes  2.47 Gbits/sec
[  5]   6.01-7.01   sec   296 MBytes  2.47 Gbits/sec
[  5]   7.01-8.00   sec   290 MBytes  2.46 Gbits/sec
[  5]   8.00-9.01   sec   295 MBytes  2.47 Gbits/sec
[  5]   9.01-10.01  sec   293 MBytes  2.44 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.01  sec  2.87 GBytes  2.46 Gbits/sec                  sender
[  5]   0.00-10.02  sec  2.87 GBytes  2.46 Gbits/sec                  receiver

# iperf3.exe -c 192.168.6.10 -R
Connecting to host 192.168.6.10, port 5201
Reverse mode, remote host 192.168.6.10 is sending
[  5] local 192.168.6.12 port 56605 connected to 192.168.6.10 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   294 MBytes  2.46 Gbits/sec
[  5]   1.00-2.00   sec   293 MBytes  2.46 Gbits/sec
[  5]   2.00-3.00   sec   291 MBytes  2.44 Gbits/sec
[  5]   3.00-4.01   sec   295 MBytes  2.46 Gbits/sec
[  5]   4.01-5.01   sec   293 MBytes  2.46 Gbits/sec
[  5]   5.01-6.01   sec   294 MBytes  2.45 Gbits/sec
[  5]   6.01-7.01   sec   285 MBytes  2.39 Gbits/sec
[  5]   7.01-8.01   sec   284 MBytes  2.40 Gbits/sec
[  5]   8.01-9.01   sec   294 MBytes  2.46 Gbits/sec
[  5]   9.01-10.01  sec   290 MBytes  2.45 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.01  sec  2.85 GBytes  2.44 Gbits/sec    0             sender
[  5]   0.00-10.01  sec  2.85 GBytes  2.44 Gbits/sec                  receiver

25Gb fiber PC (Port 1) to 25Gb fiber NAS (Port 1)

# iperf3.exe -c 10.1.0.6
Connecting to host 10.1.0.6, port 5201
[  5] local 10.1.0.49 port 56904 connected to 10.1.0.6 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.01   sec  2.52 GBytes  21.5 Gbits/sec
[  5]   1.01-2.01   sec  2.46 GBytes  21.0 Gbits/sec
[  5]   2.01-3.01   sec  2.56 GBytes  22.0 Gbits/sec
[  5]   3.01-4.00   sec  2.54 GBytes  22.1 Gbits/sec
[  5]   4.00-5.01   sec  2.63 GBytes  22.3 Gbits/sec
[  5]   5.01-6.01   sec  2.62 GBytes  22.6 Gbits/sec
[  5]   6.01-7.01   sec  2.59 GBytes  22.2 Gbits/sec
[  5]   7.01-8.01   sec  2.61 GBytes  22.6 Gbits/sec
[  5]   8.01-9.01   sec  2.67 GBytes  22.8 Gbits/sec
[  5]   9.01-10.01  sec  2.54 GBytes  21.7 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.01  sec  25.7 GBytes  22.1 Gbits/sec                  sender
[  5]   0.00-10.02  sec  25.7 GBytes  22.1 Gbits/sec                  receiver

# iperf3.exe -c 10.1.0.6 -R
Connecting to host 10.1.0.6, port 5201
Reverse mode, remote host 10.1.0.6 is sending
[  5] local 10.1.0.49 port 56877 connected to 10.1.0.6 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.01   sec  1.55 GBytes  13.2 Gbits/sec
[  5]   1.01-2.01   sec  1.58 GBytes  13.5 Gbits/sec
[  5]   2.01-3.00   sec  1.45 GBytes  12.5 Gbits/sec
[  5]   3.00-4.00   sec  1.44 GBytes  12.4 Gbits/sec
[  5]   4.00-5.01   sec  1.54 GBytes  13.2 Gbits/sec
[  5]   5.01-6.01   sec  1.45 GBytes  12.5 Gbits/sec
[  5]   6.01-7.01   sec  1.46 GBytes  12.5 Gbits/sec
[  5]   7.01-8.02   sec  1.62 GBytes  13.6 Gbits/sec
[  5]   8.02-9.01   sec  1.39 GBytes  12.1 Gbits/sec
[  5]   9.01-10.01  sec  1.43 GBytes  12.2 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.01  sec  14.9 GBytes  12.8 Gbits/sec    1             sender
[  5]   0.00-10.01  sec  14.9 GBytes  12.8 Gbits/sec                  receiver

# iperf3.exe -c 10.1.0.6 -P 10
Connecting to host 10.1.0.6, port 5201
[ ID] Interval           Transfer     Bitrate
[SUM]   0.00-10.01  sec  26.8 GBytes  23.0 Gbits/sec                  sender
[SUM]   0.00-10.02  sec  26.8 GBytes  23.0 Gbits/sec                  receiver

# iperf3.exe -c 10.1.0.6 -P 10 -R
Connecting to host 10.1.0.6, port 5201
Reverse mode, remote host 10.1.0.6 is sending
[SUM]   0.00-10.01  sec  14.3 GBytes  12.3 Gbits/sec    0             sender
[SUM]   0.00-10.01  sec  14.2 GBytes  12.2 Gbits/sec                  receiver

25Gb fiber PC (Port 2) to 25Gb fiber NAS (Port 2)

# iperf3.exe -c 192.168.6.2
Connecting to host 192.168.6.2, port 5201
[  5] local 192.168.6.3 port 56640 connected to 192.168.6.2 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  2.84 GBytes  24.3 Gbits/sec
[  5]   1.00-2.01   sec  2.87 GBytes  24.4 Gbits/sec
[  5]   2.01-3.00   sec  2.84 GBytes  24.6 Gbits/sec
[  5]   3.00-4.01   sec  2.90 GBytes  24.8 Gbits/sec
[  5]   4.01-5.00   sec  2.83 GBytes  24.6 Gbits/sec
[  5]   5.00-6.01   sec  2.60 GBytes  22.0 Gbits/sec
[  5]   6.01-7.01   sec  2.83 GBytes  24.5 Gbits/sec
[  5]   7.01-8.01   sec  2.79 GBytes  23.8 Gbits/sec
[  5]   8.01-9.01   sec  2.49 GBytes  21.4 Gbits/sec
[  5]   9.01-10.00  sec  2.86 GBytes  24.8 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  27.8 GBytes  23.9 Gbits/sec                  sender
[  5]   0.00-10.00  sec  27.8 GBytes  23.9 Gbits/sec                  receiver

# iperf3.exe -c 192.168.6.2 -R
Connecting to host 192.168.6.2, port 5201
Reverse mode, remote host 192.168.6.2 is sending
[  5] local 192.168.6.3 port 56652 connected to 192.168.6.2 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.01   sec  1.64 GBytes  14.0 Gbits/sec
[  5]   1.01-2.00   sec  1.55 GBytes  13.3 Gbits/sec
[  5]   2.00-3.00   sec  1.68 GBytes  14.4 Gbits/sec
[  5]   3.00-4.01   sec  1.72 GBytes  14.6 Gbits/sec
[  5]   4.01-5.01   sec  1.68 GBytes  14.4 Gbits/sec
[  5]   5.01-6.00   sec  1.65 GBytes  14.3 Gbits/sec
[  5]   6.00-7.00   sec  1.78 GBytes  15.3 Gbits/sec
[  5]   7.00-8.00   sec  1.63 GBytes  14.0 Gbits/sec
[  5]   8.00-9.00   sec  1.73 GBytes  14.8 Gbits/sec
[  5]   9.00-10.00  sec  1.64 GBytes  14.1 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  16.7 GBytes  14.3 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  16.7 GBytes  14.3 Gbits/sec                  receiver

Conclusion

Something is definitely wonky for the NAS → PC transfers on BOTH fiber wires. I don’t think that’s a coincidence.

At this point, it’s definitely not the zpool of the drives in Windows, it’s something wonky with the network traffic from the NAS to Windows.