What's new

Ookla Speedtest cli binary available

  • 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!

Mikii

Regular Contributor
Hi guys,

I just discovered that the binary version of Speedtest is now available. I successfully installed the arm version on my Asus Merlin:

ookla repository:

Code:
https://ookla.bintray.com/download/
or
https://bintray.com/ookla/download/speedtest-cli/1.0.0#files

The binary version for Asus Merin I tested is:

Code:
https://bintray.com/ookla/download/download_file?file_path=ookla-speedtest-1.0.0-arm-linux.tgz

Moreover, this binary will allow you to select the interface to be tested from your Merlin, allowing, for example, speed testing of your different VPN connections:

Code:
 speedtest --interface=tun12

here's the complete command set:

Code:
# speedtest -h
Speedtest by Ookla is the official command line client for testing the speed and performance of your internet connection.

Version: speedtest 1.0.0.2

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)
  -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

 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
 
This is a good find! What bandwidth do you have - does your router survive a speedtest at over 200mbps?

EDIT: this is very promising. spdmerlin may be getting an upgrade

780b86550c.png
 
I’ve had the pip installed version of this for a while. Very handy for testing pure ISP speed. I have to use the skip pre-allocate option.m though due to the low RAM availability on the router.
I get my full 350mbps download reported.


Sent from my iPhone using Tapatalk
 
I’ve had the pip installed version of this for a while. Very handy for testing pure ISP speed. I have to use the skip pre-allocate option.m though due to the low RAM availability on the router.
I get my full 350mbps download reported.


Sent from my iPhone using Tapatalk
This version doesnt seem to have skip pre-allocate as an option, maybe you're using the python speedtest-cli which is an unofficial project?
 
This version doesnt seem to have skip pre-allocate as an option, maybe you're using the python speedtest-cli which is an unofficial project?

Yea you’re right. Although I suspect the official version was born from the fact so many are using the unofficial.
They share a lot of very similar features, almost like one was copied... ;)


Sent from my iPhone using Tapatalk
 
I should say I am using the official one on my RasberryPi as well, it’s doing a specific long term download over 4G test for me. 350GB this month so far!


Sent from my iPhone using Tapatalk
 
Yea you’re right. Although I suspect the official version was born from the fact so many are using the unofficial.
They share a lot of very similar features, almost like one was copied... ;)


Sent from my iPhone using Tapatalk
v3 of spdmerlin is being developed now, I'm not sure how but htop registers almost 0 memory usage increase. 30% or so CPU loading, so I'm not sure if it's hitting IO or something!
 
This is a good find! What bandwidth do you have - does your router survive a speedtest at over 200mbps?

HI Jack Yaz,
I am one of those few lucky B.... to have a 1 gigabit fiber line in Italy.
Here's what I am getting:

Code:
Michele@RT-AC88U-72D8:/tmp/home/root# speedtest

   Speedtest by Ookla

    Server: Telecom Italia S.p.A. - Terni (id = 15335)

        ISP: Telecom Italia

    Latency:     5.38 ms   (0.08 ms jitter)

   Download:   443.47 Mbps (data used: 502.3 MB)                             

    Upload:   103.35 Mbps (data used: 49.1 MB)                             

Packet Loss:     0.0%

I guess getting the full 900Mbps speed from the Asus is out of the question?
I can get that result from my computer.
 
HI Jack Yaz,
I am one of those few lucky B.... to have a 1 gigabit fiber line in Italy.
Here's what I am getting:

Code:
Michele@RT-AC88U-72D8:/tmp/home/root# speedtest

   Speedtest by Ookla

    Server: Telecom Italia S.p.A. - Terni (id = 15335)

        ISP: Telecom Italia

    Latency:     5.38 ms   (0.08 ms jitter)

   Download:   443.47 Mbps (data used: 502.3 MB)                            

    Upload:   103.35 Mbps (data used: 49.1 MB)                            

Packet Loss:     0.0%

I guess getting the full 900Mbps speed from the Asus is out of the question?
I can get that result from my computer.
Does the computer hit the same speedtest server? What hardware acceleration do you have enabled (though this may not applied to router-specific traffic)
 
Does the computer hit the same speedtest server? What hardware acceleration do you have enabled (though this may not applied to router-specific traffic)

Yes, the computer hits the same local speed test server. I have no idea about checking hardware acceleration on merlin (sorry, I am not an expert). Anyway, Tools_Sysinfo.asp reports HW acceleration: Enabled, while QoS is Disabled.
Also, I noticed that cpu 1 use gets to 100% during speedtest.
 
Just a heads-up, this binary does "phone home" to get a list of local servers and report the results back to https://www.speedtest.net
See the last line in the run output for your specific test run. I'm not saying that's a problem. Just something to be aware of.

BTW, runs fine on a 68U with stock ASUS f/w.
 
Last edited:
Just a heads-up, this binary does "phone home" to report the results back to https://www.speedtest.net
See the last line in the run output for your specific test. I'm not saying that's a problem.

Which is likely the primary reason they have developed it, to get stats from all the users of the unofficial one already out there.


Sent from my iPhone using Tapatalk
 
Which is likely the primary reason they have developed it, to get stats from all the users of the unofficial one already out there.


Sent from my iPhone using Tapatalk
The unofficial one probably created logs by using their servers anyway
 
Just a heads-up, this binary does "phone home" to get a list of local servers and report the results back to https://www.speedtest.net
See the last line in the run output for your specific test run. I'm not saying that's a problem. Just something to be aware of.

BTW, runs fine on a 68U with stock ASUS f/w.

Yes thank you for reporting that. I just realised it, since after running it provides a link to a webpage to "see your results".
 
Last edited:
This is a good find! What bandwidth do you have - does your router survive a speedtest at over 200mbps?
The most I can get out of this is 270Mbps which loads one of the router's CPUs to 75%. As opposed to a LAN web client testing to the same server which returns 380Mbps with zero load on the router's CPU (because of hardware accel.).

I'm not sure it's fair to compare this to the browser version though. This appears to be single threaded whereas normally the browser is multi-threaded. If I change the browser version to single-threaded mode the servers appear to be capped at 135Mbps. So the server-side behaviour appears to be different depending on the client.
 
The most I can get out of this is 270Mbps which loads one of the router's CPUs to 75%. As opposed to a LAN web client testing to the same server which returns 380Mbps with zero load on the router's CPU (because of hardware accel.).

I'm not sure it's fair to compare this to the browser version though. This appears to be single threaded whereas normally the browser is multi-threaded. If I change the browser version to single-threaded mode the servers appear to be capped at 135Mbps. So the server-side behaviour appears to be different depending on the client.
I suspect you're right, my 86U is cranking out near full speeds at 350Mbps for most of my tests so it does seem to be cpu-bound. It's still an improvement over the python script which would overload the router!
 
I suspect you're right, my 86U is cranking out near full speeds at 350Mbps for most of my tests so it does seem to be cpu-bound. It's still an improvement over the python script which would overload the router!

As I reported on my test I get 443.47 Mbps with CPU load at 100%, so I believe that is pretty much the best we can get.
The other major improvement over the python script is the possibility to test different
tun interfaces!
 
As I reported on my test I get 443.47 Mbps with CPU load at 100%, so I believe that is pretty much the best we can get.
The other major improvement over the python script is the possibility to test different
tun interfaces!
Are you limited to just tun interfaces or can you speed test br0 interface as well?
 
I could test this:


Code:
Michele@RT-AC88U-72D8:/tmp/home/root# speedtest --interface=br0:pixelserv-t

   Speedtest by Ookla

    Server: Telecom Italia S.p.A. - Perugia (id = 6512)

        ISP: Telecom Italia

    Latency:     5.42 ms   (0.06 ms jitter)

   Download:   398.29 Mbps (data used: 367.6 MB)                              

    Upload:   103.31 Mbps (data used: 50.3 MB)                              

Packet Loss:     0.0%
 

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