What WiFi speeds should realistcally be expected?

I am a new user of OpenWRT and have finally successfully set up my WiFi network.

Netgear R7800 -> Draytek Vigor 130 -> Plusnet (UK)

I'm curious as to what kind of WiFi speeds I should be expecting to see.
I have tested these via iperf3 on a Moto G6 Android mobile whilst sitting right next to the router (so rules out building construction, walls etc)

The speeds I am getting are as follows

2.4GHz - 45 MBits/sec
5GHz - 76 MBits/sec

Reading various other posts suggests that these are quite slow?
Should I be expecting faster speeds than this?

To clarify, are you testing iperf3 on your phone to iperf3 running in OpenWrt or some iperf3 endpoint on the internet?

Your 5ghz radio—is it using VHT80? What channel?

I also have an R7800 (as an AP only) and get 500-600Mb/s throughput (though not that fast bi-directionally) on a 3x3AC station to my OpenWrt x86 VM to which my R7800 is attached.

My R7800 allows my to saturate my 300Mbps connection on a 5GHz band.

Are you running iperf3 on the router?

iperf3 is running in server mode on the router itself.

5Ghz radio is running on Channel 56 at VHT80.

That is why you are seeing the slow throughput. CPU has to handle both the wireless and iperf3.

1 Like

So what is the best way to measure the performance?

I've just re-run the test with iperf3 server on a Windows PC on the same network (direct cable connection to router).
I now get an improvement to 108 MBits/sec.

Still nowhere near 300 though.

I doubt the phone will get those high speeds. My moto g5 tops out at about 100Mbps.

If you want to test highest speeds, try with a laptop.

What is the CPU utilization on the router during the test top -d 1?

iPerf3 actually sends data TO the server and does not download it from the server unless you specify the -R flag on the client.

If you're not testing from the wireless client with the -R flag, then you're actually testing upload speed, not download speed. And if you have many clients, you're contending for the access medium. So first, test from the wireless client with the -R flag set. If it is an Android phone, then specify the -Z flag too, as the zero-copy mode of operation frees up a lot of cpu-cycles that otherwise decrease your real throughput.

Have you got any QOS running on the router? Switch it off if you do.

Also, a cursory google search reveals that for most people the Moto G6 tops out somewhere in the 100 - 150mbps range. So you're limited by your wireless client, not the router

1 Like

I should have noted earlier that the testing speed will very much depend on the client’s speed capability. As for the speeds I mentioned earlier, this is generally what I get on my iPhone 11 Pro from about 20 feet away:

Is your R7800 also doing firewall/routing, or is it an AP only?
Also, did you mention which version of OpenWrt you installed?

Is the connection between your R7800 and Windows PC gigabit?

Thanks for all the replies.

@_Failsafe - what app are you using on the iPhone to test the speed. I have access to IOS devices so could try those as well.

Connection between PC and Router is Gigabit.
I am using the latest version of OpenWRT 19.07.2.
I have installed SQM with piece_of_cake. Disabling this does increase the speed to 102.
CPU usage never gets above 1% if iperf3 is running on the router.
-R and -Z flags on iperff3 do not affect the results.

I'm getting the impression here that I'm realy testing the capacity of my mobile devices and that any results are mainly influenced by their wifi capabilities.
All I'm really trying to achieve is to determine that I have configured and optimised openWrt on the router correctly.

Here's a link to the app: https://apps.apple.com/us/app/iperf-3-wifi-speed-test/id1462260546

As a side note: I would double-check your SQM configuration. Enabling/disabling SQM should not affect your LAN/WLAN speeds on LAN-to-LAN testing as SQM should be set to only act on your internet ingress/egress interface.

But, regardless of SQM, you definitely are going to be battling against mobile radio speed in this type of testing. There are a lot of factors in play there including the chipset and number of antennas in the mobile device. If you can test with a true AC 3x3 client, that would give you a much better idea of where your bottleneck lies.

Out of curiosity, have you tried to perform an iperf3 test between your wired PC and the R7800? You should be able to get pretty close to 920-940 Mbps (somewhat lower on a bi-directional test though).

Here is an example between my R7800 and my OpenWrt x86 router:

root@OpenWrt:~# iperf3 -c 192.168.XX.5 -i1
Connecting to host 192.168.X.5, port 5201
[  5] local 192.168.X.15 port 57268 connected to 192.168.XX.5 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   106 MBytes   888 Mbits/sec    0   1.37 MBytes
[  5]   1.00-2.00   sec   111 MBytes   931 Mbits/sec    0   1.37 MBytes
[  5]   2.00-3.00   sec   111 MBytes   932 Mbits/sec    0   1.37 MBytes
[  5]   3.00-4.00   sec   110 MBytes   926 Mbits/sec    0   1.37 MBytes
[  5]   4.00-5.00   sec   111 MBytes   933 Mbits/sec    0   1.37 MBytes
[  5]   5.00-6.00   sec   110 MBytes   923 Mbits/sec    0   1.37 MBytes
[  5]   6.00-7.01   sec  80.0 MBytes   663 Mbits/sec   25   1.39 MBytes
[  5]   7.01-8.00   sec   110 MBytes   930 Mbits/sec    0   1.39 MBytes
[  5]   8.00-9.00   sec   105 MBytes   883 Mbits/sec    0   1.39 MBytes
[  5]   9.00-10.00  sec   110 MBytes   924 Mbits/sec    0   1.39 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.04 GBytes   893 Mbits/sec   25             sender
[  5]   0.00-10.01  sec  1.04 GBytes   890 Mbits/sec                  receiver

iperf Done.
root@OpenWrt:~# iperf3 -c 192.168.X.5 -i1 -R
Connecting to host 192.168.X.5, port 5201
Reverse mode, remote host 192.168.X.5 is sending
[  5] local 192.168.X.15 port 57272 connected to 192.168.X.5 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   111 MBytes   928 Mbits/sec
[  5]   1.00-2.00   sec   110 MBytes   922 Mbits/sec
[  5]   2.00-3.00   sec   110 MBytes   927 Mbits/sec
[  5]   3.00-4.00   sec   111 MBytes   927 Mbits/sec
[  5]   4.00-5.00   sec   111 MBytes   927 Mbits/sec
[  5]   5.00-6.00   sec   110 MBytes   926 Mbits/sec
[  5]   6.00-7.00   sec   111 MBytes   927 Mbits/sec
[  5]   7.00-8.00   sec   111 MBytes   927 Mbits/sec
[  5]   8.00-9.00   sec   110 MBytes   924 Mbits/sec
[  5]   9.00-10.00  sec   110 MBytes   927 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.08 GBytes   928 Mbits/sec  657             sender
[  5]   0.00-10.00  sec  1.08 GBytes   926 Mbits/sec                  receiver

iperf Done.

The Moto G6 doesn’t support 802.11ac, it only supports 802.11n. It is a 1x1 client that supports max 64 QAM. You are probably getting a reported PHY rate of max 150mbps. Real world speeds will cap out at around 100mbps.


It's actually a Moto G5 (typo in my original post).
But your point still stands.

That's something else I've just learnt. Because I was connecting on a 5GHz radio, I assumed I was using the .ac protocol. Didn't realise I could still be using .n.


I swapped my last 802.11n device (old iPad) for a newer device about a year ago. It wasn’t slow...but it was getting noticeably slower compared to other device’s internet speed. Wireless AC is so much better. Hope an upgrade is in your future. :sunglasses:


I can get around 440Mbps testing between wired-wireless links and around 950Mbps between wired-wired links. I have Archer c7 v2.
Make sure that you are using 80MHz 5G band. Run iperf server on the wired link and client on the wireless and use multiple iperf streams using -P flag. Use 2 laptops for iperf don't run on the AP.