spdMerlin spdMerlin exclude upload/download

R G G

Regular Contributor
The official speedtest-cli has the --no-download and --no-upload options that exclude upload and download tests. Is it possible for this to be implemented in the script?
 

Jack Yaz

Part of the Furniture
by official, do you mean the python project? AFAIK that's not official

i'm not seeing that option here:
Code:
Version: ookla 3.7.12.37

Usage: ookla [<options>]
  -h, --help                        Print usage information
  -V, --version                     Print version number
  -L, --servers                     List nearest servers
  -s, --server-id=#                 Specify a server from the server list using its id
  -I, --interface=ARG               Attempt to bind to the specified interface when connecting to servers
  -i, --ip=ARG                      Attempt to bind to the specified IP address when connecting to servers
  -o, --host=ARG                    Specify a server, from the server list, using its host's fully qualified domain name
  -p, --progress=yes|no             Enable or disable progress bar (Note: only available for 'human-readable'
                                    or 'json' and defaults to yes when interactive)
  -P, --precision=#                 Number of decimals to use (0-8, default=2)
  -f, --format=ARG                  Output format (see below for valid formats)
      --progress-update-interval=#  Progress update interval (100-1000 milliseconds)
  -u, --unit[=ARG]                  Output unit for displaying speeds (Note: this is only applicable
                                    for ‘human-readable’ output format and the default unit is Mbps)
  -a                                Shortcut for [-u auto-decimal-bits]
  -A                                Shortcut for [-u auto-decimal-bytes]
  -b                                Shortcut for [-u auto-binary-bits]
  -B                                Shortcut for [-u auto-binary-bytes]
      --selection-details           Show server selection details
      --ca-certificate=ARG          CA Certificate bundle path
  -v                                Logging verbosity. Specify multiple times for higher verbosity
      --output-header               Show output header for CSV and TSV formats
  -t, --trace-level=#               [Deprecated: See -v] Specify a log level between 1 and 2 (1=info, 2=error)
  -m, --max-transfer-updates=#      Maximum number of log outputs during download/upload tests
      --stage-timestamps            Output stage timestamps (Note: only valid for json formats)
  -l, --listen[=#]                  Start a local server, listening on the specified port, instead of running a test.
  -O, --option=ARG                  Add override option. Syntax: -O key:value.
  -c, --config-url=ARG              Config url override
      --download-conn-range=ARG     Download connection count range (min-max)
      --upload-conn-range=ARG       Upload connection count range (min-max)
or the version downloaded from here https://www.speedtest.net/apps/cli
Code:
Speedtest by Ookla is the official command line client for testing the speed and performance of your internet connection.

Version: speedtest 1.1.1.28

Usage: speedtest [<options>]
  -h, --help                        Print usage information
  -V, --version                     Print version number
  -L, --servers                     List nearest servers
  -s, --server-id=#                 Specify a server from the server list using its id
  -I, --interface=ARG               Attempt to bind to the specified interface when connecting to servers
  -i, --ip=ARG                      Attempt to bind to the specified IP address when connecting to servers
  -o, --host=ARG                    Specify a server, from the server list, using its host's fully qualified domain name
  -p, --progress=yes|no             Enable or disable progress bar (Note: only available for 'human-readable'
                                    or 'json' and defaults to yes when interactive)
  -P, --precision=#                 Number of decimals to use (0-8, default=2)
  -f, --format=ARG                  Output format (see below for valid formats)
      --progress-update-interval=#  Progress update interval (100-1000 milliseconds)
  -u, --unit[=ARG]                  Output unit for displaying speeds (Note: this is only applicable
                                    for ÔÇÿhuman-readableÔÇÖ output format and the default unit is Mbps)
  -a                                Shortcut for [-u auto-decimal-bits]
  -A                                Shortcut for [-u auto-decimal-bytes]
  -b                                Shortcut for [-u auto-binary-bits]
  -B                                Shortcut for [-u auto-binary-bytes]
      --selection-details           Show server selection details
  -v                                Logging verbosity. Specify multiple times for higher verbosity
      --output-header               Show output header for CSV and TSV formats

 Valid output formats: human-readable (default), csv, tsv, json, jsonl, json-pretty

 Machine readable formats (csv, tsv, json, jsonl, json-pretty) use bytes as the unit of measure with max precision

 Valid units for [-u] flag:
   Decimal prefix, bits per second:  bps, kbps, Mbps, Gbps
   Decimal prefix, bytes per second: B/s, kB/s, MB/s, GB/s
   Binary prefix, bits per second:   kibps, Mibps, Gibps
   Binary prefix, bytes per second:  kiB/s, MiB/s, GiB/s
   Auto-scaled prefix: auto-binary-bits, auto-binary-bytes, auto-decimal-bits, auto-decimal-bytes
 

JGrana

Very Senior Member
Interesting that "ookla" seems to support a server mode (--listen). All I can do with ookla on my AX88U is the help and version command. Needs a configuration file.
It might be interesting to be able to test router to router with this mode.
Have you ever tried it?
 

R G G

Regular Contributor
by official, do you mean the python project? AFAIK that's not official

That option is on the cli that I got from homebrew. Didn't pay attention to the fact that there are several builds and the Python one can't be used. I would suggest maybe integrating iperf3 for custom servers to solve that issue if you get bored enough. There are also a selection –– albeit small –– of iperf public servers here: https://iperf.fr/iperf-servers.php. But they are not guaranteed to work since I believe only 1 person can test at once (or per port), so they won't be reliable for the purpose of spdMerlin.
 

JGrana

Very Senior Member
IMHO iperf3 is "ok" for checks of local clients and the occasional VPN site to site stuff.
But, the method ookla (and others) use is a more accurate representation of speed.
Thats why I was interested in the Asus built in ookla app and that it might support a server mode. That would be a better LAN client-router test.
i just might play around with it tomorrow. I figured out the -c config issue (read @Jack Yaz code).
 

JGrana

Very Senior Member
Ok, ok. I tried. There doesn't appear to be any good "speedtest" servers that would work with Ookla or mimic other well know internet (WAN) speed tests.
I thought I was close with an open source speedtest - Librespeed. I installed nginx, php8 on the router (following @TeHashX fine instructions), downloaded Libraspeed test. Made various .conf changes.
I can actually run a web based speedtest with Libraspeeds code.
That was the good news. The bad news - download speeds are completely inaccurate and uploads not bad, pretty close.

So, back to iperf3. I believe that this is one of the few applications that you can use to actually test LAN-LAN performance.
It's easy to install from Entware, supports an iperf3 server in daemon mode so you can add it to services-start and there are a number of iperf3 clients on Android, iOS/Apple TV OS, Linux and Windows.

What I was looking for was something similar to spdMerlin that would also test my internal LAN. iperf3 is the closest.

I was initially hesitant about iperf3. Whenever I ran iperf3 between 2 routers on my LAN wireless (one is in Media Mode), the speed was, underwhelming to say the least.

Today I ran iperf3 between my AX88U and NAS connected via a USB 2.5 Gb adapter.
Wow, close enough LAN to LAN over ethernet (like ~2 Mb/sec).
Running another Rpi4 client connected over ethernet - again, pretty close to line speed.

Wireless.... take my advice, don't run iperf3 router to client over wireless ;-)

@Jack Yaz - you might want to consider having spdMerlin offering a LAN speed test. This would require spdMerlin to install iperf3 (and run it in server mode) and allowing some kind of LAN to LAN speedtest. This assumes the user has an iperf3 server installed on another device (router, PC, Rpi).

Just an idea for v5...
 

R G G

Regular Contributor
Wireless.... take my advice, don't run iperf3 router to client over wireless ;-)

I've done this many times and have gotten accurate results. Did it again just now and the results look fine. Make sure you're running at least 10 parallel threads.
 

Attachments

  • down.png
    down.png
    211 KB · Views: 54
  • up.png
    up.png
    216.7 KB · Views: 53
  • wifi stats.png
    wifi stats.png
    14.7 KB · Views: 53

JGrana

Very Senior Member
I've done this many times and have gotten accurate results. Did it again just now and the results look fine. Make sure you're running at least 10 parallel threads.
Thanks, your right, much better!
 

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