What's new

LAN iperf3 speed test slower than internet speedtest.net

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

Fonkin

New Around Here
I have a desktop computer with a wireless adapter. For testing, it is the only device connected to my Wi-Fi network and the only hardwired equipment are the WAP and cable modem.

Network Topology
  • Arris Surfboard SB8200 – Connected to ISP at 1 Gbps
  • Unifi Dream Machine (UDM) Special Edition (SE) - Running iperf3 server
  • U6-LR WAP connect to UDM SE via 1GB ethernet
  • Intel(R) Wi-Fi 6E AX210 160MHz - Windows Desktop Computer
An internet speed test to speedtest.net yields me an average of 295 Mbps from my desktop computer. However, when I perform an internal LAN speed test with iperf3 I get 145 Mbps on average. I would expect the internal LAN test would be just as fast if not a wee bit faster than the internet test. I am desperate for an answer and hope one of our geniuses out there can explain to me what is going on.

I should mention the LAN test running on a Linux OS yields 188 Mbps, which I can understand why is faster than Windows but still not as fast as the internet test.

Screen shots attached. Thank you in advance.
 

Attachments

  • speedtest.net.jpg
    speedtest.net.jpg
    32.4 KB · Views: 60
  • iper3.png
    iper3.png
    20.9 KB · Views: 61
Last edited:
I'd be more concerned why you're only getting 1/3 of the plan speed. If you bypass the router and connect to the modem directly what speeds do you get?
 
I'd be more concerned why you're only getting 1/3 of the plan speed. If you bypass the router and connect to the modem directly what speeds do you get?
I didn't mention speed tests directly from my UDM SE to the ISP as that's not my concern. I do get anywhere from 800 Mbps to 950 Mbps depending upon the time of day as expected for a cable service. The issue I'm concerned about is that I'm not getting even close to 1,000 Mbps internally. That is why I setup iPerf3 to figure out how fast my actual WiFi connection is, because I knew I should be getting closer to a gigabit. I was shocked to see the speedtest.net results were faster than the iperf3 results. Maybe iperf3 isn't what I should be using to test? And before someone asks, I'm practically sitting on top of the WAP and have an excellent connection (-52dBm).
 
Last edited:
When you run iperf3 over the LAN, best to use multiple parallel streams...

iperf3 -c 192.168.1.1 -P3

This will give you more accurate results
 
When you run iperf3 over the LAN, best to use multiple parallel streams...

iperf3 -c 192.168.1.1 -P3

This will give you more accurate results
Thanks for the suggestion. I already attempted that. The results we about the same:

[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 62.1 MBytes 52.1 Mbits/sec sender
[ 4] 0.00-10.00 sec 62.1 MBytes 52.0 Mbits/sec receiver
[ 6] 0.00-10.00 sec 61.1 MBytes 51.3 Mbits/sec sender
[ 6] 0.00-10.00 sec 61.1 MBytes 51.3 Mbits/sec receiver
[ 8] 0.00-10.00 sec 57.6 MBytes 48.3 Mbits/sec sender
[ 8] 0.00-10.00 sec 57.6 MBytes 48.3 Mbits/sec receiver
[SUM] 0.00-10.00 sec 181 MBytes 152 Mbits/sec sender
[SUM] 0.00-10.00 sec 181 MBytes 152 Mbits/sec receiver
 
I do get anywhere from 800 Mbps to 950 Mbps
Ok.... then LAN <> LAN seems to have a bottleneck for processing packets.

For my setup LAN<>LAN is the priority and I can get 1.7gbps (wifi) out of things as they stand right now. I would take a stab and say look at the QOS settings in the UDM devices to check to make sure you're not throttling yourself.

Now, the 800-950 is from the WIFI client or the wired?
 
Thanks for the suggestion. I already attempted that.

The iperf3 source (the host/server), is this on the router itself - if so, don't do that, it's not representative - run iperf3 in server mode on another connected LAN device...

You'll get better numbers.
 
I've played around with this type of scenario, too. Invariably I get about half speed when wirelessly sending /to/ the iperf daemon running on the router itself. If you really want to see what your wireless connection is /capable/ of you need to be running the daemon on something (anything) else which is wired to the router using a connection greater than 1Gb.
 
Yeah, testing with an iperf3 instance on the router itself will often yield poor numbers. Modern routers/APs/etc are typically built with a high-speed switch chip, or switch chip and radio chip, plus a general-purpose CPU that's sort of hanging off to the side and is only meant to manage command and control functions. The CPU cannot push bits through at anywhere near the rate that the switch can. But the switch is dedicated hardware and can't run random programs like iperf3. So iperf3 runs on the CPU, and can only send/receive data at whatever rate the CPU can manage. This is usually a good deal less than the data rate of the high-speed chips. So if you want to see what transfer rate actual clients would see, you've got to measure throughput through the switch between two clients.

I don't own a UDM-SE, but I've seen this sort of behavior with other Ubiquiti equipment (EdgeRouter-X and U6-Enterprise) and IIRC other people have observed it with other makes such as ASUS.
 
It's not that the router can't do it (based on XT8 and GT-AX6000 personally). Whenever they're iperfing with each other (only checked by wire) or any client not "personally" associated they push/pull just fine. For some reason, it's only about half from client to self over the air, and mayde 90% /to/. Doesn't concern me too much. Shell and web interaction is certainly snappy enough. Other than the odd management or DNS packets, what else do I ever interact that way directly anyway?
 
It's not that the router can't do it (based on XT8 and GT-AX6000 personally). Whenever they're iperfing with each other (only checked by wire) or any client not "personally" associated they push/pull just fine. For some reason, it's only about half from client to self over the air, and mayde 90% /to/. Doesn't concern me too much. Shell and web interaction is certainly snappy enough.

Other than the odd management or DNS packets, what else do I ever interact that way directly anyway?
Samba on the router, obviously =) Yes, I know it's not a NAS. But it CAN be, if only using wires.

I'm very interested about said reason though. If the CPU couldn't do it, it would show on ethernet as well. But it's only on wireless that the upload to router is halved and it's baffling!
 
Actually...
They hit the CPU differently.
Wireless client to router:
wl.png


Wired client:
eth.png


Ok, back to trying to get to the bottom of this.
 
@doomdog Instead of running htop run top and then press 1 to show individual threads. Run your wireless test again and I expect you will see that one core is spending a lot of time waiting for sirq's to complete. This doesn't happen with switched (wired) connections.
 
@doomdog Instead of running htop run top and then press 1 to show individual threads. Run your wireless test again and I expect you will see that one core is spending a lot of time waiting for sirq's to complete. This doesn't happen with switched (wired) connections.
Colin, thanks for pointing me in (possibly) the right direction.
(htop can also show softirqs, per core, in magenta below)
After seeing core 0 getting swamped, I tried to help it by enabling receive packet steering with the other 3, command also in pic below.
Throughput has improved to around double. But not stable enough for my liking. Back to testing.

1703803175419.png
 
First I want to say thank you to everyone for their insights. It has truly helped me grow in my understanding of Wi-FI networking. Finally got a chance to test again with 1 PC on WiFi and the other connected directly to a LAN port on the switch. Guess what! I got much better speeds. Topping out at exactly 400 Mbits/s. So, that did improve the benchmark. (Thank you.) It's still falling short of the ~700 Mbps I was expecting from a Wi-Fi 6E AX210 at only three feet away from the WAP. I realize other radios in the area can interfere with performance. Would love to see those same benchmarks that Tom's Hardware is touting.
 
Code:
glen@tpad:~$ ssh mimis
glen@mimis's password:
Last login: Thu Dec 28 20:50:03 2023 from 192.168.50.210
glen@mimis:~$ wlink
    wlp1s0     : 192.168.50.175 (mimis) [Intel(R) Wi-Fi 6 AX210 160MHz, REV=0x420]
    ap         : zenslave (192.168.50.66)
    ssid       : SanftNetHi
    channel    : 100 (5500 MHz), width = 160 MHz, center1 = 5570 MHz
    txpower    : 22.00 dBm
    signal     : -58 dBm
    link_qual  : 52/70
    pwr_mgmt   : off
    rx bitrate : 2041.2 MBit/s 160MHz HE-MCS 10 HE-NSS 2 HE-GI 1 HE-DCM 0
    tx bitrate : 1297.1 MBit/s 160MHz HE-MCS 6 HE-NSS 2 HE-GI 0 HE-DCM 0
glen@mimis:~$
logout
Connection to mimis closed.
glen@tpad:~$ wlink
    wlp4s0     : 192.168.50.210 (tpad) [Intel(R) Wi-Fi 6 AX200 160MHz, REV=0x340]
    ap         : roger (192.168.50.1)
    ssid       : SanftNet
    channel    : 40 (5200 MHz), width = 160 MHz, center1 = 5250 MHz
    txpower    : 22.00 dBm
    signal     : -33 dBm
    link_qual  : 70/70
    pwr_mgmt   : off
    rx bitrate : 2401.9 MBit/s 160MHz HE-MCS 11 HE-NSS 2 HE-GI 0 HE-DCM 0
    tx bitrate : 2401.9 MBit/s 160MHz HE-MCS 11 HE-NSS 2 HE-GI 0 HE-DCM 0
glen@tpad:~$ iperf3 -t 5 -c mimis
Connecting to host mimis, port 5201
[  5] local 192.168.50.210 port 38690 connected to 192.168.50.175 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   105 MBytes   878 Mbits/sec    0   3.50 MBytes      
[  5]   1.00-2.00   sec   121 MBytes  1.02 Gbits/sec    0   3.50 MBytes      
[  5]   2.00-3.00   sec   122 MBytes  1.03 Gbits/sec    0   3.50 MBytes      
[  5]   3.00-4.00   sec   119 MBytes   996 Mbits/sec    0   3.50 MBytes      
[  5]   4.00-5.00   sec   120 MBytes  1.01 Gbits/sec    0   3.50 MBytes      
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-5.00   sec   587 MBytes   985 Mbits/sec    0             sender
[  5]   0.00-5.11   sec   587 MBytes   963 Mbits/sec                  receiver

iperf Done.
glen@tpad:~$ iperf3 -t 5 -c roger
Connecting to host roger, port 5201
[  5] local 192.168.50.210 port 35426 connected to 192.168.50.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  55.7 MBytes   467 Mbits/sec   35    232 KBytes       
[  5]   1.00-2.00   sec  60.0 MBytes   503 Mbits/sec   10    307 KBytes       
[  5]   2.00-3.00   sec  58.5 MBytes   491 Mbits/sec   23    276 KBytes       
[  5]   3.00-4.00   sec  59.0 MBytes   495 Mbits/sec   13    264 KBytes       
[  5]   4.00-5.00   sec  64.6 MBytes   542 Mbits/sec   33    327 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-5.00   sec   298 MBytes   500 Mbits/sec  114             sender
[  5]   0.00-5.00   sec   296 MBytes   496 Mbits/sec                  receiver

iperf Done.

glen@tpad:~$
 
Last edited:
Yes, so upload to another wireless client, even if it's associated with a slave AP, is around 1Gbps, while the main router only does half that. Expected and tested as such.
Have you tried to enable RPS for your 5GHz interface? (echo e > /sys/class/net/eth7/queues/rx-0/rps_cpus)
 
No, I have not done anything to try to improve it. I suspect it may be indicative of what one might expect for throughput on a VPN.

"mimis" rperfing to its AP is maybe 350 (it's an XT8 connected over 2.5Gb ethernet to the router "roger", a GT-AX6000). Yet when the router/AP is not an endpoint it has no "trouble" shuffling the data through, and that's all that matters to me at this time.
 
iperf3 -t 5 -c mimis

Add more streams - iperf3 -c mimis -p 3

That should give you a better feel...

another option - and this is dependent on the iperf3 version...


Code:
$ iperf3 -c blue.local --bidir -i 10 -P 3

Connecting to host blue.local, port 5201
[  5] local 192.168.15.20 port 51870 connected to 192.168.15.120 port 5201
[  7] local 192.168.15.20 port 51876 connected to 192.168.15.120 port 5201
[  9] local 192.168.15.20 port 51890 connected to 192.168.15.120 port 5201
[ 11] local 192.168.15.20 port 51900 connected to 192.168.15.120 port 5201
[ 13] local 192.168.15.20 port 51912 connected to 192.168.15.120 port 5201
[ 15] local 192.168.15.20 port 51926 connected to 192.168.15.120 port 5201
[ ID][Role] Interval           Transfer     Bitrate         Retr  Cwnd
[  5][TX-C]   0.00-10.02  sec   373 MBytes   312 Mbits/sec    0   5.66 KBytes       
[  7][TX-C]   0.00-10.02  sec   373 MBytes   312 Mbits/sec    0   5.66 KBytes       
[  9][TX-C]   0.00-10.02  sec   372 MBytes   312 Mbits/sec    0   5.66 KBytes       
[SUM][TX-C]   0.00-10.02  sec  1.09 GBytes   936 Mbits/sec    0             
[ 11][RX-C]   0.00-10.02  sec   371 MBytes   311 Mbits/sec                  
[ 13][RX-C]   0.00-10.02  sec   371 MBytes   310 Mbits/sec                  
[ 15][RX-C]   0.00-10.02  sec   370 MBytes   310 Mbits/sec                  
[SUM][RX-C]   0.00-10.02  sec  1.09 GBytes   931 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID][Role] Interval           Transfer     Bitrate         Retr
[  5][TX-C]   0.00-10.02  sec   373 MBytes   312 Mbits/sec    0             sender
[  5][TX-C]   0.00-10.02  sec   370 MBytes   310 Mbits/sec                  receiver
[  7][TX-C]   0.00-10.02  sec   373 MBytes   312 Mbits/sec    0             sender
[  7][TX-C]   0.00-10.02  sec   370 MBytes   310 Mbits/sec                  receiver
[  9][TX-C]   0.00-10.02  sec   372 MBytes   312 Mbits/sec    0             sender
[  9][TX-C]   0.00-10.02  sec   370 MBytes   310 Mbits/sec                  receiver
[SUM][TX-C]   0.00-10.02  sec  1.09 GBytes   936 Mbits/sec    0             sender
[SUM][TX-C]   0.00-10.02  sec  1.08 GBytes   929 Mbits/sec                  receiver
[ 11][RX-C]   0.00-10.02  sec   374 MBytes   313 Mbits/sec    0             sender
[ 11][RX-C]   0.00-10.02  sec   371 MBytes   311 Mbits/sec                  receiver
[ 13][RX-C]   0.00-10.02  sec   374 MBytes   313 Mbits/sec    0             sender
[ 13][RX-C]   0.00-10.02  sec   371 MBytes   310 Mbits/sec                  receiver
[ 15][RX-C]   0.00-10.02  sec   374 MBytes   313 Mbits/sec    0             sender
[ 15][RX-C]   0.00-10.02  sec   370 MBytes   310 Mbits/sec                  receiver
[SUM][RX-C]   0.00-10.02  sec  1.10 GBytes   939 Mbits/sec    0             sender
[SUM][RX-C]   0.00-10.02  sec  1.09 GBytes   931 Mbits/sec                  receiver
iperf Done.
 
Last edited:

Latest threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top