Please run iperf3 -c 127.0.0.1 and post results here to make router database

I had planned on manually creating a very informal and quick little summary by just including the average once it hits 50+ and putting it in the first post to make it easy for lazy people (like myself) to see without needing to read the entire thing. Nothing fancy because I suck at this.

slh, I appreciate your viewpoint and I would agree with you on most of it but I think you might be slightly overthinking this. Nobody here is going to use these numbers to purchasing decisions or at least they should not. It is just an informal and fun thing to do sort of like the router version of a mine is bigger then yours contest LoL.

2 Likes

So what useful information can you derive from those figures?

As far as I'm concerned, these results don't provide any guidance for rating a device against others - none at all (apart from -maybe- bragging rights in a fantasy football league).

2 Likes

EA6350 V3 (ipq40xx) results follow.

root@EA6350v3:~# iperf3 -s -D && iperf3 -c 127.0.0.1
Connecting to host 127.0.0.1, port 5201
[  5] local 127.0.0.1 port 59854 connected to 127.0.0.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   186 MBytes  1.56 Gbits/sec    0   1023 KBytes       
[  5]   1.00-2.00   sec   182 MBytes  1.53 Gbits/sec    0   1023 KBytes       
[  5]   2.00-3.00   sec   182 MBytes  1.53 Gbits/sec    0   1023 KBytes       
[  5]   3.00-4.00   sec   182 MBytes  1.52 Gbits/sec    0   1023 KBytes       
[  5]   4.00-5.00   sec   184 MBytes  1.54 Gbits/sec    0   1023 KBytes       
[  5]   5.00-6.00   sec   187 MBytes  1.57 Gbits/sec    0   1023 KBytes       
[  5]   6.00-7.01   sec   188 MBytes  1.57 Gbits/sec    0   1023 KBytes       
[  5]   7.01-8.00   sec   184 MBytes  1.55 Gbits/sec    0   1023 KBytes       
[  5]   8.00-9.00   sec   186 MBytes  1.56 Gbits/sec    0   1023 KBytes       
[  5]   9.00-10.00  sec   183 MBytes  1.53 Gbits/sec    0   1023 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.80 GBytes  1.55 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  1.80 GBytes  1.55 Gbits/sec                  receiver

iperf Done.

Ahh mine sucks! :smile: Now this limit wouldn't apply to layer 2 traffic through the switched gigabit ports in the back of this router... right?

system type : Qualcomm Atheros QCA956X ver 1 rev 0
machine : TP-Link Archer A7 v5

[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.01  sec   444 MBytes   372 Mbits/sec    0             sender
[  5]   0.00-10.01  sec   444 MBytes   372 Mbits/sec                  receiver

Totolink X5000R

# iperf3 -s -D && iperf3 -c 127.0.0.1

Connecting to host 127.0.0.1, port 5201
[  5] local 127.0.0.1 port 51878 connected to 127.0.0.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.02   sec  60.6 MBytes   500 Mbits/sec    0   1023 KBytes       
[  5]   1.02-2.01   sec  63.6 MBytes   539 Mbits/sec    0   1023 KBytes       
[  5]   2.01-3.01   sec  64.8 MBytes   542 Mbits/sec    0   1023 KBytes       
[  5]   3.01-4.00   sec  65.0 MBytes   548 Mbits/sec    0   1023 KBytes       
[  5]   4.00-5.02   sec  63.1 MBytes   524 Mbits/sec    1   1023 KBytes       
[  5]   5.02-6.01   sec  63.8 MBytes   539 Mbits/sec    0   1023 KBytes       
[  5]   6.01-7.01   sec  68.8 MBytes   575 Mbits/sec    0   1023 KBytes       
[  5]   7.01-8.00   sec  67.5 MBytes   570 Mbits/sec    0   1023 KBytes       
[  5]   8.00-9.00   sec  66.2 MBytes   557 Mbits/sec    0   1023 KBytes       
[  5]   9.00-10.00  sec  66.2 MBytes   554 Mbits/sec    0   1023 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   650 MBytes   545 Mbits/sec    1             sender
[  5]   0.00-10.00  sec   650 MBytes   545 Mbits/sec                  receiver
# cat /etc/openwrt_release
DISTRIB_ID='OpenWrt'
DISTRIB_RELEASE='21.02.0'
DISTRIB_REVISION='r16279-5cc0535800'
DISTRIB_TARGET='ramips/mt7621'
DISTRIB_ARCH='mipsel_24kc'
DISTRIB_DESCRIPTION='OpenWrt 21.02.0 r16279-5cc0535800'
DISTRIB_TAINTS=''

Correct, the switch chip handles that and those packets shouldn't go anywhere near the CPU. This iperf test is a pretty pointless CPU benchmark only.

2 Likes
root@Cosmere:~# ubus call system board | grep model && iperf3 -s -D && iperf3 -c 127.0.0.1 && kill $(pidof iperf3)
        "model": "Linksys WRT1900AC",
Connecting to host 127.0.0.1, port 5201
[  5] local 127.0.0.1 port 51214 connected to 127.0.0.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   409 MBytes  3.43 Gbits/sec    0   1.06 MBytes
[  5]   1.00-2.00   sec   383 MBytes  3.21 Gbits/sec    1   1.06 MBytes
[  5]   2.00-3.00   sec   382 MBytes  3.21 Gbits/sec    0   1.06 MBytes
[  5]   3.00-4.00   sec   372 MBytes  3.13 Gbits/sec    0   1.06 MBytes
[  5]   4.00-5.00   sec   383 MBytes  3.21 Gbits/sec    0   1.06 MBytes
[  5]   5.00-6.00   sec   420 MBytes  3.51 Gbits/sec    0   1.06 MBytes
[  5]   6.00-7.00   sec   390 MBytes  3.28 Gbits/sec    0   1.06 MBytes
[  5]   7.00-8.01   sec   404 MBytes  3.37 Gbits/sec    0   1.06 MBytes
[  5]   8.01-9.00   sec   400 MBytes  3.38 Gbits/sec    5   1.06 MBytes
[  5]   9.00-10.00  sec   360 MBytes  3.02 Gbits/sec    0   1.06 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  3.81 GBytes  3.27 Gbits/sec    6             sender
[  5]   0.00-10.04  sec  3.81 GBytes  3.26 Gbits/sec                  receiver




root@roshar:~# ubus call system board | grep model && iperf3 -s -D && iperf3 -c 127.0.0.1 && kill $(pidof iperf3)
        "model": "Newifi-D2",
Connecting to host 127.0.0.1, port 5201
[  5] local 127.0.0.1 port 45912 connected to 127.0.0.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.01   sec  75.0 MBytes   625 Mbits/sec    0   1.12 MBytes
[  5]   1.01-2.01   sec  71.2 MBytes   594 Mbits/sec    0   1.12 MBytes
[  5]   2.01-3.00   sec  72.5 MBytes   615 Mbits/sec    0   1.12 MBytes
[  5]   3.00-4.02   sec  80.0 MBytes   661 Mbits/sec    0   1.12 MBytes
[  5]   4.02-5.00   sec  62.5 MBytes   532 Mbits/sec    0   1.12 MBytes
[  5]   5.00-6.00   sec  73.8 MBytes   619 Mbits/sec    0   1.12 MBytes
[  5]   6.00-7.00   sec  65.0 MBytes   546 Mbits/sec    0   1.12 MBytes
[  5]   7.00-8.01   sec  67.5 MBytes   562 Mbits/sec    0   1.12 MBytes
[  5]   8.01-9.01   sec  70.0 MBytes   587 Mbits/sec    0   1.12 MBytes
[  5]   9.01-10.00  sec  73.8 MBytes   623 Mbits/sec    0   1.12 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   711 MBytes   597 Mbits/sec    0             sender
[  5]   0.00-10.04  sec   711 MBytes   595 Mbits/sec                  receiver
BT HomeHub5
root@OpenWrt:~# grep name /etc/board.json
                "name": "BT Home Hub 5A"
root@OpenWrt:~# uname -a
Linux OpenWrt 5.4.143 #0 SMP Tue Aug 31 22:20:08 2021 mips GNU/Linux
root@OpenWrt:~# iperf3 -s -D && iperf3 -c 127.0.0.1
Connecting to host 127.0.0.1, port 5201
[  5] local 127.0.0.1 port 56542 connected to 127.0.0.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.02   sec  58.8 MBytes   485 Mbits/sec    0   1023 KBytes
[  5]   1.02-2.01   sec  46.2 MBytes   392 Mbits/sec    0   1023 KBytes
[  5]   2.01-3.01   sec  56.2 MBytes   473 Mbits/sec    0   1023 KBytes
[  5]   3.01-4.00   sec  58.8 MBytes   495 Mbits/sec    0   1023 KBytes
[  5]   4.00-5.01   sec  56.2 MBytes   466 Mbits/sec    0   1023 KBytes
[  5]   5.01-6.00   sec  55.0 MBytes   467 Mbits/sec    0   1023 KBytes
[  5]   6.00-7.01   sec  49.0 MBytes   406 Mbits/sec    0   1023 KBytes
[  5]   7.01-8.02   sec  56.2 MBytes   467 Mbits/sec    0   1023 KBytes
[  5]   8.02-9.01   sec  57.5 MBytes   490 Mbits/sec    0   1023 KBytes
[  5]   9.01-10.02  sec  56.2 MBytes   466 Mbits/sec    0   1023 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.02  sec   550 MBytes   461 Mbits/sec    0             sender
[  5]   0.00-10.02  sec   550 MBytes   461 Mbits/sec                  receiver

iperf Done.

Linksys EA7500v1
root@Burloga:~# grep name /etc/board.json
                "name": "Linksys EA7500 V1 WiFi Router"
root@Burloga:~# uname -a
Linux Burloga 5.4.143 #0 SMP Tue Aug 31 22:20:08 2021 armv7l GNU/Linux
root@Burloga:~# iperf3 -s -D && iperf3 -c 127.0.0.1
Connecting to host 127.0.0.1, port 5201
[  5] local 127.0.0.1 port 35716 connected to 127.0.0.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   427 MBytes  3.58 Gbits/sec    0   1023 KBytes
[  5]   1.00-2.00   sec   440 MBytes  3.69 Gbits/sec    0   1023 KBytes
[  5]   2.00-3.00   sec   421 MBytes  3.53 Gbits/sec    0   1023 KBytes
[  5]   3.00-4.00   sec   445 MBytes  3.73 Gbits/sec    0   1023 KBytes
[  5]   4.00-5.00   sec   441 MBytes  3.69 Gbits/sec    0   1023 KBytes
[  5]   5.00-6.00   sec   433 MBytes  3.63 Gbits/sec    1   1023 KBytes
[  5]   6.00-7.00   sec   393 MBytes  3.30 Gbits/sec    0   1023 KBytes
[  5]   7.00-8.00   sec   416 MBytes  3.49 Gbits/sec    0   1023 KBytes
[  5]   8.00-9.00   sec   420 MBytes  3.53 Gbits/sec    0   1023 KBytes
[  5]   9.00-10.00  sec   403 MBytes  3.38 Gbits/sec    0   1023 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  4.14 GBytes  3.56 Gbits/sec    1             sender
[  5]   0.00-10.00  sec  4.14 GBytes  3.55 Gbits/sec                  receiver

iperf Done.

Hello, the figures are off, can you do:

dmesg | grep -i mhz
cat /proc/cpuinfo

Sometimes the manufacture would underclock.

Radxa ROCK Pi 4

root@OpenWrt:~# ubus call system board
{
        "kernel": "5.15-rc7",
        "hostname": "OpenWrt",
        "system": "ARMv8 Processor rev 4",
        "model": "Radxa ROCK Pi 4B",
        "board_name": "radxa,rockpi4b",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "SNAPSHOT",
                "revision": "r17859+13-70c12d26ca",
                "target": "rockchip/armv8",
                "description": "OpenWrt SNAPSHOT r17859+13-70c12d26ca"
        }
}
root@OpenWrt:~# iperf3 -s -D && iperf3 -c 127.0.0.1
Connecting to host 127.0.0.1, port 5201
[  5] local 127.0.0.1 port 35416 connected to 127.0.0.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  1.33 GBytes  11.4 Gbits/sec    0   1.12 MBytes       
[  5]   1.00-2.00   sec  1.39 GBytes  11.9 Gbits/sec    0   1.12 MBytes       
[  5]   2.00-3.00   sec  1.39 GBytes  11.9 Gbits/sec    0   1.12 MBytes       
[  5]   3.00-4.00   sec  1.39 GBytes  12.0 Gbits/sec    0   1.12 MBytes       
[  5]   4.00-5.00   sec  1.38 GBytes  11.9 Gbits/sec    0   1.12 MBytes       
[  5]   5.00-6.00   sec  1.39 GBytes  11.9 Gbits/sec    0   1.12 MBytes       
[  5]   6.00-7.00   sec  1.39 GBytes  12.0 Gbits/sec    0   1.12 MBytes       
[  5]   7.00-8.00   sec  1.42 GBytes  12.2 Gbits/sec    0   1.12 MBytes       
[  5]   8.00-9.00   sec  1.44 GBytes  12.4 Gbits/sec    0   1.12 MBytes       
[  5]   9.00-10.00  sec  1.44 GBytes  12.3 Gbits/sec    0   1.12 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  14.0 GBytes  12.0 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  14.0 GBytes  12.0 Gbits/sec                  receiver

iperf Done.

NanoPi R4s 4G

Connecting to host 127.0.0.1, port 5201
[  5] local 127.0.0.1 port 43040 connected to 127.0.0.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  1.05 GBytes  9.01 Gbits/sec    0   1.50 MBytes
[  5]   1.00-2.00   sec  1.05 GBytes  9.06 Gbits/sec    0   1.50 MBytes
[  5]   2.00-3.00   sec  1.04 GBytes  8.89 Gbits/sec    0   1.50 MBytes
[  5]   3.00-4.00   sec  1.05 GBytes  8.99 Gbits/sec    0   1.50 MBytes
[  5]   4.00-5.00   sec  1.08 GBytes  9.29 Gbits/sec    0   1.50 MBytes
[  5]   5.00-6.00   sec  1.57 GBytes  13.5 Gbits/sec    0   1.62 MBytes
[  5]   6.00-7.00   sec  1.05 GBytes  9.04 Gbits/sec    0   1.62 MBytes
[  5]   7.00-8.00   sec  1.06 GBytes  9.10 Gbits/sec    0   1.69 MBytes
[  5]   8.00-9.00   sec  1.04 GBytes  8.94 Gbits/sec    0   1.69 MBytes
[  5]   9.00-10.00  sec  1.04 GBytes  8.96 Gbits/sec    0   1.69 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  11.0 GBytes  9.48 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  11.0 GBytes  9.47 Gbits/sec                  receiver
root@OpenWrt:~# ubus call system board
{
        "kernel": "5.10.75",
        "hostname": "OpenWrt",
        "system": "Intel(R) Celeron(R) J4115 CPU @ 1.80GHz",
        "model": "Hardkernel Odroid H2+",
        "board_name": "hardkernel-odroid-h2",
        "rootfs_type": "ext4",
        "release": {
                "distribution": "OpenWrt",
                "version": "SNAPSHOT",
                "revision": "r17812-9501ce909f",
                "target": "x86/64",
                "description": "OpenWrt SNAPSHOT r17812-9501ce909f"
        }
}
root@OpenWrt:~# iperf3 -c 127.0.0.1
Connecting to host 127.0.0.1, port 5201
[  5] local 127.0.0.1 port 41674 connected to 127.0.0.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  2.35 GBytes  20.2 Gbits/sec    0   1.94 MBytes
[  5]   1.00-2.00   sec  2.27 GBytes  19.5 Gbits/sec    0   1.94 MBytes
[  5]   2.00-3.00   sec  2.35 GBytes  20.2 Gbits/sec    0   1.94 MBytes
[  5]   3.00-4.00   sec  2.25 GBytes  19.3 Gbits/sec    0   1.94 MBytes
[  5]   4.00-5.00   sec  2.43 GBytes  20.9 Gbits/sec    0   1.94 MBytes
[  5]   5.00-6.00   sec  2.35 GBytes  20.2 Gbits/sec    0   1.94 MBytes
[  5]   6.00-7.00   sec  2.38 GBytes  20.4 Gbits/sec    0   1.94 MBytes
[  5]   7.00-8.00   sec  2.39 GBytes  20.5 Gbits/sec    0   1.94 MBytes
[  5]   8.00-9.00   sec  2.31 GBytes  19.9 Gbits/sec    3   1.94 MBytes
[  5]   9.00-10.00  sec  2.30 GBytes  19.8 Gbits/sec    0   1.94 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  23.4 GBytes  20.1 Gbits/sec    3             sender
[  5]   0.00-10.00  sec  23.4 GBytes  20.1 Gbits/sec                  receiver

iperf Done.

Seems like the memory bandwidth is the limit not CPU in the iperf3 test, because it is pretty close to my memory speed.

root@test:~# mbw 50
Long uses 8 bytes. Allocating 2*6553600 elements = 104857600 bytes of memory.
Using 262144 bytes as blocks for memcpy block copy test.
Getting down to business... Doing 10 runs per test.
0       Method: MEMCPY  Elapsed: 0.01512        MiB: 50.00000   Copy: 3307.535 MiB/s
1       Method: MEMCPY  Elapsed: 0.01546        MiB: 50.00000   Copy: 3234.571 MiB/s
2       Method: MEMCPY  Elapsed: 0.01519        MiB: 50.00000   Copy: 3291.206 MiB/s
3       Method: MEMCPY  Elapsed: 0.01505        MiB: 50.00000   Copy: 3322.701 MiB/s
4       Method: MEMCPY  Elapsed: 0.01504        MiB: 50.00000   Copy: 3324.468 MiB/s
5       Method: MEMCPY  Elapsed: 0.01514        MiB: 50.00000   Copy: 3302.074 MiB/s
6       Method: MEMCPY  Elapsed: 0.01507        MiB: 50.00000   Copy: 3316.970 MiB/s
7       Method: MEMCPY  Elapsed: 0.01518        MiB: 50.00000   Copy: 3293.374 MiB/s
8       Method: MEMCPY  Elapsed: 0.01621        MiB: 50.00000   Copy: 3084.896 MiB/s
9       Method: MEMCPY  Elapsed: 0.01637        MiB: 50.00000   Copy: 3054.741 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.01538        MiB: 50.00000   Copy: 3250.362 MiB/s
0       Method: DUMB    Elapsed: 0.01044        MiB: 50.00000   Copy: 4786.979 MiB/s
1       Method: DUMB    Elapsed: 0.01029        MiB: 50.00000   Copy: 4858.614 MiB/s
2       Method: DUMB    Elapsed: 0.01047        MiB: 50.00000   Copy: 4777.831 MiB/s
3       Method: DUMB    Elapsed: 0.01009        MiB: 50.00000   Copy: 4954.910 MiB/s
4       Method: DUMB    Elapsed: 0.01013        MiB: 50.00000   Copy: 4934.373 MiB/s
5       Method: DUMB    Elapsed: 0.01011        MiB: 50.00000   Copy: 4946.088 MiB/s
6       Method: DUMB    Elapsed: 0.01012        MiB: 50.00000   Copy: 4940.223 MiB/s
7       Method: DUMB    Elapsed: 0.01014        MiB: 50.00000   Copy: 4929.508 MiB/s
8       Method: DUMB    Elapsed: 0.01081        MiB: 50.00000   Copy: 4624.491 MiB/s
9       Method: DUMB    Elapsed: 0.01027        MiB: 50.00000   Copy: 4870.446 MiB/s
AVG     Method: DUMB    Elapsed: 0.01029        MiB: 50.00000   Copy: 4860.220 MiB/s
0       Method: MCBLOCK Elapsed: 0.00793        MiB: 50.00000   Copy: 6305.170 MiB/s
1       Method: MCBLOCK Elapsed: 0.00802        MiB: 50.00000   Copy: 6232.083 MiB/s
2       Method: MCBLOCK Elapsed: 0.00839        MiB: 50.00000   Copy: 5960.186 MiB/s
3       Method: MCBLOCK Elapsed: 0.00823        MiB: 50.00000   Copy: 6072.383 MiB/s
4       Method: MCBLOCK Elapsed: 0.00792        MiB: 50.00000   Copy: 6314.726 MiB/s
5       Method: MCBLOCK Elapsed: 0.00805        MiB: 50.00000   Copy: 6211.180 MiB/s
6       Method: MCBLOCK Elapsed: 0.00793        MiB: 50.00000   Copy: 6302.786 MiB/s
7       Method: MCBLOCK Elapsed: 0.00803        MiB: 50.00000   Copy: 6228.977 MiB/s
8       Method: MCBLOCK Elapsed: 0.00825        MiB: 50.00000   Copy: 6064.281 MiB/s
9       Method: MCBLOCK Elapsed: 0.00843        MiB: 50.00000   Copy: 5930.495 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.00812        MiB: 50.00000   Copy: 6159.153 MiB/s

what's the point of running iperf on localhost (itself?) This is too synthetic to mean anything in practice. Are you trying to displace the BogoMIPS test https://en.wikipedia.org/wiki/BogoMips

Is this a troll post? :rofl:

1 Like

Linksys Wrt1900acs

Tp link archer c7

As if to illustrate that point, here's a Pi 3 model B (not +, so only 100Mbps Ethernet):

[  5]   0.00-1.00   sec   358 MBytes  2.99 Gbits/sec    0   1.19 MBytes       
[  5]   1.00-2.00   sec   350 MBytes  2.94 Gbits/sec    0   1.19 MBytes       
[  5]   2.00-3.00   sec   346 MBytes  2.90 Gbits/sec    0   1.19 MBytes       
[  5]   3.00-4.00   sec   345 MBytes  2.89 Gbits/sec    0   1.19 MBytes       
[  5]   4.00-5.00   sec   345 MBytes  2.89 Gbits/sec    0   1.19 MBytes       
[  5]   5.00-6.00   sec   344 MBytes  2.88 Gbits/sec    0   1.19 MBytes       
[  5]   6.00-7.00   sec   348 MBytes  2.92 Gbits/sec    0   1.19 MBytes       
 ...etc

Needless to say, given the USB2 bus, nothing on Earth will allow you to route more than the tiniest fraction of that hypothetical ~3Gbps in real life.

1 Like

I think this is a really good test! It tells you the theoretical maximum routing speed of the device, if the Ethernet ports were not a bottleneck. If you have a 100Mbps Internet connection and your router has gigabit ports but this test only comes back with 50Mbps then you know you're not going to get your full Internet speed through the device.

Here's the output for an old TP-Link WDR4300, no longer supported by the latest OpenWRT releases:

$ iperf3 -c localhost
Connecting to host localhost, port 5201
[  4] local 127.0.0.1 port 60432 connected to 127.0.0.1 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  49.0 MBytes   409 Mbits/sec    0   1.06 MBytes       
[  4]   1.00-2.00   sec  47.3 MBytes   398 Mbits/sec    0   1.06 MBytes       
[  4]   2.00-3.01   sec  49.0 MBytes   409 Mbits/sec    0   1.06 MBytes       
[  4]   3.01-4.00   sec  46.7 MBytes   394 Mbits/sec    0   1.06 MBytes       
[  4]   4.00-5.00   sec  48.4 MBytes   406 Mbits/sec    0   1.06 MBytes       
[  4]   5.00-6.00   sec  47.9 MBytes   402 Mbits/sec    0   1.06 MBytes       
[  4]   6.00-7.00   sec  47.7 MBytes   400 Mbits/sec    0   1.06 MBytes       
[  4]   7.00-8.00   sec  47.8 MBytes   401 Mbits/sec    0   1.06 MBytes       
[  4]   8.00-9.00   sec  47.7 MBytes   400 Mbits/sec    0   1.06 MBytes       
[  4]   9.00-10.00  sec  47.7 MBytes   401 Mbits/sec    0   1.06 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   479 MBytes   402 Mbits/sec    0             sender
[  4]   0.00-10.00  sec   478 MBytes   401 Mbits/sec                  receiver

This sort of data would be useful when planning to buy a device to use as a router. A while back I bought a Mikrotik CRS309, a managed 10 gigabit switch. Unfortunately the mangement side of it is almost useless because after buying it I found that while the switch part will pass traffic at 10G, if you want to do anything interesting it falls back to passing packets via the CPU...which is connected to the switch at 1G. And the CPU is so underpowered it only starts at 500 Mbps and each firewall rule you add drops the throughput by around 100Mbps. So despite it having 10 Gbps ports, it's a slower router than the above TP-Link, which tops out at around 112 Mbps with a dozen or so firewall/port forwarding rules.

As an experiment I tried adding an extra five dummy iptables rules that would match the lo interface before the default ACCEPT rule to see what kind of impact it would have, and it made no difference at all! So not sure what the Mikrotik was doing but OpenWRT seems to route much more efficiently.

It would be interesting to try these tests multithreaded. iperf v2 seems to be multicore, so just for a fun comparison here is a test on an old Dell server (PowerEdge R720), not running OpenWRT:

$ iperf -c localhost
------------------------------------------------------------
Client connecting to localhost, TCP port 5001
TCP window size: 2.76 MByte (default)
------------------------------------------------------------
[  3] local 127.0.0.1 port 41078 connected with 127.0.0.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  31.2 GBytes  26.8 Gbits/sec

And the same test running in parallel, one thread per CPU core:

$ iperf -c localhost -P16
------------------------------------------------------------
Client connecting to localhost, TCP port 5001
TCP window size: 2.76 MByte (default)
------------------------------------------------------------
[ ID] Interval       Transfer     Bandwidth
[ 11]  0.0-10.0 sec  21.4 GBytes  18.4 Gbits/sec
[ 12]  0.0-10.0 sec  21.3 GBytes  18.3 Gbits/sec
[  7]  0.0-10.0 sec  21.1 GBytes  18.1 Gbits/sec
[  8]  0.0-10.0 sec  21.3 GBytes  18.3 Gbits/sec
[  3]  0.0-10.0 sec  21.3 GBytes  18.3 Gbits/sec
[  6]  0.0-10.0 sec  21.4 GBytes  18.4 Gbits/sec
[  4]  0.0-10.0 sec  21.3 GBytes  18.3 Gbits/sec
[  5]  0.0-10.0 sec  21.1 GBytes  18.1 Gbits/sec
[ 10]  0.0-10.0 sec  21.1 GBytes  18.2 Gbits/sec
[ 18]  0.0-10.0 sec  21.4 GBytes  18.4 Gbits/sec
[  9]  0.0-10.0 sec  21.2 GBytes  18.2 Gbits/sec
[ 22]  0.0-10.0 sec  21.2 GBytes  18.2 Gbits/sec
[ 14]  0.0-10.0 sec  21.2 GBytes  18.2 Gbits/sec
[ 13]  0.0-10.0 sec  21.2 GBytes  18.2 Gbits/sec
[ 16]  0.0-10.0 sec  21.4 GBytes  18.4 Gbits/sec
[ 17]  0.0-10.0 sec  21.3 GBytes  18.3 Gbits/sec
[SUM]  0.0-10.0 sec   340 GBytes   292 Gbits/sec

26 Gbps vs 292 Gbps is quite a big difference!

No it doesn't tell you that, there is no routing involved in this test, actually it doesn't tell you anything because the only usecase that comes close to this is serving garbage data from ram without nic driver overhead which you need if you want to DOS flood somebody. So this is pretty much a very imprecise RAM bandwidth test and nothing more.

4 Likes

Linksys E8450 UBI

root@OpenWrt:/# iperf3 -s -D && iperf3 -c 127.0.0.1
Connecting to host 127.0.0.1, port 5201
[  5] local 127.0.0.1 port 49906 connected to 127.0.0.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   435 MBytes  3.65 Gbits/sec    0   1.31 MBytes       
[  5]   1.00-2.00   sec   434 MBytes  3.63 Gbits/sec    0   1.81 MBytes       
[  5]   2.00-3.00   sec   435 MBytes  3.65 Gbits/sec    0   1.87 MBytes       
[  5]   3.00-4.00   sec   435 MBytes  3.65 Gbits/sec    0   2.00 MBytes       
[  5]   4.00-5.00   sec   438 MBytes  3.66 Gbits/sec    0   2.00 MBytes       
[  5]   5.00-6.00   sec   439 MBytes  3.68 Gbits/sec    0   2.00 MBytes       
[  5]   6.00-7.00   sec   436 MBytes  3.66 Gbits/sec    0   2.00 MBytes       
[  5]   7.00-8.00   sec   428 MBytes  3.59 Gbits/sec    0   2.00 MBytes       
[  5]   8.00-9.00   sec   434 MBytes  3.63 Gbits/sec    0   2.00 MBytes       
[  5]   9.00-10.00  sec   419 MBytes  3.51 Gbits/sec    0   2.00 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  4.23 GBytes  3.63 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  4.23 GBytes  3.63 Gbits/sec                  receiver

iperf Done.
1 Like

It does make you wonder how many people who've done this test still have a backgrounded iperf3 server idling on their router.

2 Likes