iPerf3 for beginners

Hi GLiNet folks. I recently set up my first WireGuard server/client system on a Brume/SlateAX and have had fun testing it out. However I’ve noticed some speed issues that I want to investigate. In forums I’ve read that the iPerf3 function is great to test this, however I don’t know how it works.

Are there any beginning guides on how to use iPerf3 to test network speeds on GLiNet server/client WG system? The furthest I’ve gotten is to install it via the plugins menu on the SlateAX. Thanks for any help in getting this working. Cheers.

Hey :wave:

the use of iperf3 is very simple and does not require much study :wink: I will now go into the use via SSH - presumably the plug-in only takes care of the installation.

On the router

  1. connect to your router via SSH (e.g. ssh root@192.168.177.1)
  2. update the software database: opkg update
  3. install iperf3: opkg install iperf3
  4. start iperf3 in server mode: iperf3 -s

On any client, e.g. Windows:

  1. Download iperf3: iPerf - Download iPerf3 and original iPerf pre-compiled binaries
  2. Connect iperf3 to the server via command line: .\iperf3.exe -c 192.168.177.1
    The IP naturally corresponds to the IP of the router.
  3. Read the results.

Both programs can be interchanged - i.e. you can start the server mode (-s) on the client and the client mode (-c [IP of the client]) on the router. And vice versa.

iperf3 without any command will guide you.

Result


Hint

You can use the “reverse” switch -R on the client to test from router → client without need to change the server/client options. So .\iperf3.exe -c 192.168.177.1 -R will send the traffic from router to client.

4 Likes

Thank you! So here’s what I did to test my wg server/client connection.

  1. ssh into Brume 2 wg server (located remotely in my apartment) at ####.glddns.com
  2. install iperf3
  3. start iperf3 server
  4. ssh into SlateAX wg client (currently with me at a friend’s house) at 192.168.8.1
  5. install iperf3
  6. run iperf3 client to Brume 2 server

Results:

1 Like

By running iPerf on the routers you may not get accurate throughput speeds as the router’s cpu may affect the results. If I were doing the testing I’d have two capable computers on either end of the iPerf connection. In your case one computer attached to the Brume AX and the other computer attached to the SlateAX. Of course both computers would be connected with ethernet.

2 Likes

Interesting ideas. I actually did test the client on both the SlateAX and my PC that was connected to the SlateAX via wifi (also tried ethernet, same results).

I was also monitoring the Slate and Brume’s CPU on the status page, but I barely noticed a rise in CPU activity when running the test (which was surprising). Even if I ran concurrent tests with -P.

I was able to get a better throughput with -P 5. On the download got up to 50Mbps whereas single connection was around 35Mbps.

Interesting stuff!

However when trying the same tests with UDP it wouldn’t work and just kept sending 0kb over and over. Haven’t figured that one out yet

I am unable to get UDP to work with the -P option. However, when I use:

iperf3 -c 192.168.1.4 -u

I get 1.05 Mbits/sec per the iPerf documentation for “-b” (Set target bandwidth to n bits/sec (default 1 Mbit/sec for UDP, unlimited for TCP).

Using
iperf3 -c 192.168.1.4 -u -b 10G

I only manage 3.21 Gbits/sec over my 10 Gbit connection. I can hit the full 10 Gbps using TCP.

When testing over wifi I’ve found that the -w 4M option gets me better results.

I also just realized that when running TCP I only hit 4 Gbps with
iperf3 -c 192.168.1.4
When I add either -P 4 or -w 4M I get the full 10 Gbps.

These two webpages are useful.

http://software.es.net/iperf/invoking.html#iperf3-manual-page

1 Like

Thanks for the info… Any idea how to set it to run all unattendend? ie after reboot, I wish for it to be like a service so I always have access to it.

Add to the crontab

@reboot
iperf3 -s -D

should do the trick.

Thank you so much for the response. I also just found out you can simply add it to start up in Luci