Hi,
I’ve been trying to figure this out for quite some time and was unable to make any progress wanted to see if there was anyone who could help me figure out what’s wrong here.
Personal System Specs:
-
CPU: AMD Ryzen 7 5800x
-
Motherboard: Gigabyte B550I AORUS PRO AX 1.0
-
Memory: 32gb DDR4 @ 3600 MHz
-
NIC: Realtek Gaming 2.5GbE Family Controller
-
NIC Driver Version: 10.74.1128.2024
-
NIC Driver Date: 11/28/2024
-
Driver Provider: Realtek
-
OS: Windows 10 Home 22H2
Environment Dumps:
TCP Stack:
Querying active state…
TCP Global Parameters
Receive-Side Scaling State : enabled
Receive Window Auto-Tuning Level : experimental
Add-On Congestion Control Provider : default
ECN Capability : enabled
RFC 1323 Timestamps : enabled
Initial RTO : 1000
Receive Segment Coalescing State : enabled
Non Sack Rtt Resiliency : disabled
Max SYN Retransmissions : 4
Fast Open : enabled
Fast Open Fallback : enabled
HyStart : enabled
Proportional Rate Reduction : enabled
Pacing Profile : off
The TCP global default template is internet
TCP Supplemental Parameters
Minimum RTO (msec) : 300
Initial Congestion Window (MSS) : 10
Congestion Control Provider : ctcp
Enable Congestion Window Restart : disabled
Delayed ACK timeout (msec) : 40
Delayed ACK frequency : 2
Enable RACK : enabled
Enable Tail Loss Probe : enabled
Description of problem:
I have a TrueNas server set up in my home. It is wired through ethernet throughout my home and should be able to achieve close to gigabit speeds.
I originally noticed that specifically from my PC when I transfer files through SMB to the TrueNas server (192.168.1.125) it seemed like it would cap at ~100MBps
I then went ahead and tried iperf3 utility
On TrueNas I would run:
- iperf3 --server
On my desktop I would run:
./iperf3.exe -c 192.168.1.125
Unfortunately, I get these speeds:
Connecting to host 192.168.1.125, port 5201
[ 5] local 192.168.1.67 port 52266 connected to 192.168.1.125 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.01 sec 11.1 MBytes 92.5 Mbits/sec
[ 5] 1.01-2.01 sec 9.75 MBytes 81.3 Mbits/sec
[ 5] 2.01-3.00 sec 9.75 MBytes 82.7 Mbits/sec
[ 5] 3.00-4.01 sec 10.0 MBytes 83.6 Mbits/sec
[ 5] 4.01-5.01 sec 10.1 MBytes 84.7 Mbits/sec
[ 5] 5.01-6.02 sec 9.88 MBytes 82.4 Mbits/sec
[ 5] 6.02-7.00 sec 9.62 MBytes 81.6 Mbits/sec
[ 5] 7.00-8.01 sec 10.4 MBytes 86.6 Mbits/sec
[ 5] 8.01-9.01 sec 11.8 MBytes 98.0 Mbits/sec
[ 5] 9.01-10.00 sec 9.62 MBytes 81.6 Mbits/sec
[ 5] 10.00-11.01 sec 9.50 MBytes 79.2 Mbits/sec
[ 5] 11.01-12.00 sec 9.50 MBytes 80.5 Mbits/sec
[ 5] 12.00-13.00 sec 9.62 MBytes 80.4 Mbits/sec
[ 5] 13.00-14.01 sec 9.25 MBytes 77.4 Mbits/sec
[ 5] 14.01-15.01 sec 11.4 MBytes 94.8 Mbits/sec
[ 5] 15.01-16.00 sec 10.5 MBytes 89.0 Mbits/sec
[ 5] 16.00-17.01 sec 10.5 MBytes 87.7 Mbits/sec
[ 5] 17.01-18.01 sec 10.4 MBytes 86.8 Mbits/sec
[ 5] 18.01-19.01 sec 10.8 MBytes 89.9 Mbits/sec
[ 5] 19.01-20.00 sec 11.6 MBytes 98.7 Mbits/sec
[ 5] 20.00-21.01 sec 11.2 MBytes 93.7 Mbits/sec
[ 5] 21.01-22.00 sec 9.88 MBytes 83.6 Mbits/sec
[ 5] 22.00-23.00 sec 9.62 MBytes 80.4 Mbits/sec
[ 5] 23.00-24.01 sec 11.2 MBytes 93.8 Mbits/sec
[ 5] 24.01-25.01 sec 11.2 MBytes 94.0 Mbits/sec
[ 5] 25.01-26.00 sec 11.0 MBytes 93.3 Mbits/sec
[ 5] 26.00-27.01 sec 12.0 MBytes 100 Mbits/sec
[ 5] 27.01-28.00 sec 11.8 MBytes 99.5 Mbits/sec
[ 5] 28.00-29.01 sec 12.2 MBytes 102 Mbits/sec
[ 5] 29.01-30.01 sec 9.62 MBytes 80.4 Mbits/sec
[ ID] Interval Transfer Bitrate
[ 5] 0.00-30.01 sec 315 MBytes 88.0 Mbits/sec sender
[ 5] 0.00-30.01 sec 315 MBytes 88.0 Mbits/sec receiver
As you can see the speeds are much slower than gigabit.
However, when I run this command on my desktop:
./iperf3.exe -R -c 192.168.1.125
I get this:
Connecting to host 192.168.1.125, port 5201
Reverse mode, remote host 192.168.1.125 is sending
[ 5] local 192.168.1.67 port 54745 connected to 192.168.1.125 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 111 MBytes 930 Mbits/sec
[ 5] 1.00-2.01 sec 113 MBytes 940 Mbits/sec
[ 5] 2.01-3.00 sec 111 MBytes 939 Mbits/sec
[ 5] 3.00-4.01 sec 110 MBytes 918 Mbits/sec
[ 5] 4.01-5.02 sec 109 MBytes 911 Mbits/sec
[ 5] 5.02-6.01 sec 111 MBytes 941 Mbits/sec
[ 5] 6.01-7.01 sec 112 MBytes 937 Mbits/sec
[ 5] 7.01-8.01 sec 111 MBytes 942 Mbits/sec
[ 5] 8.01-9.01 sec 112 MBytes 934 Mbits/sec
[ 5] 9.01-10.01 sec 104 MBytes 882 Mbits/sec
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.01 sec 1.08 GBytes 930 Mbits/sec 0 sender
[ 5] 0.00-10.01 sec 1.08 GBytes 927 Mbits/sec receiver
Clearly, sending data from the TrueNas to my PC has no problem transferring at gigabit speeds, but it is unable to achieve this symmetrically when sending data from my PC to the TrueNas
Everything I’ve tried so far:
-
Swapped Cables
-
Ran Iperf utility on a different windows computer in the house and got symmetric gigabit speeds
-
Verified that link speed is set to 1 Gbps full-duplex
- Booted Ubuntu off a USB on the same machine and got the full gigabit speeds (indicating it’s not a hardware issue)
-
TCP Tuning using experimental autotuning, ECN, CTCP via netsh interface tcp set global/supplemental
-
Disabled all offloads (LSO, RSS, checksum offload etc) → no change
-
Tried power-plan tweaks → no change
-
Reinstalled vendor driver → no change
-
Network Reset in Settings → no change
-
Disabled ethernet adapter; plugged in a USB-C → ethernet adapter → no change
-I tried this same adapter on a mac laptop I have and I was able to achieve symmetric gigabit speeds from the same outlet, cable, location, etc.
I’m truly at a loss here of why windows is preventing me from sending gigabit packets.
Is there some windows-only filter, policy, bug, driver issue that could throttle my desktop → TrueNas stream?
If anyone has ANY insight that would be greatly appreciated. If you need any additional information from me please let me know as this is something I really want to fix and figure out why it isn’t working :(.