I would highly advise using the official speedtest.net CLI.
The dev of speedtest-cli nuked the issues page of his repo due to complaints about this, and refuses to acknowledge it, leading to people using this tool without understanding its limitations.
I haven't tried it or even created an account, because "get started for free" scares me off. Here's why:
As a consumer, to be honest-- I really don't like these offers: "Get started for free", because they often imply "Create an account for free" rather than "Use the product for free". I'd prefer it say "Try the free trial!"
For example, I wonder:
Does "get started for free" mean one of these?
- Create an account for free, but anything after that involves payment. I've encountered many such situations where creating an account is free, but after creating an account you can't even try the product without paying. It feels very "bait and switch".
- Add your billing info to try the free product
- Make a payment to actually try the product
- Or is there actually a useable free tier account?
I'm not even going to create an account on the basis of "get started for free" because it's very vague what "getting started for free" means.
I love seeing all these approaches to the same basic problem. Catching your ISP in the act of providing poor service.
Here's mine: https://github.com/zaphar/durnitisp No readme sorry. It uses UDP packets to various different stun servers to export network statistics to prometheus. Then I just use grafana to review the results.
iirc Netflix set up a dashboard to show just this - how shit is your ISP when it comes to (specifically) passing Netflix data. They can use that to point out violations of net neutrality as well: https://ispspeedindex.netflix.net/. It seems pretty healthy nowadays, although they only seem to measure up to 3.6 Mbit/s
Either I'm not reading this correctly, or this cannot be accurate. As an example, in the UK, Virgin Media has a coverage of 96.98% for speeds greater than 24Mbps. A far cry from Netflix's 3.6 Mbps figure.
I also use fast.com to test and have noticed that while using nordvpn I get no service at all (errors out.) I wonder if this is nord or Netflix since I can watch Netflix under the VPN it’s just painfully slow.
Cool project. Looks a little bit like the one i've been using as a basis: https://github.com/brennentsmith/internet-speed-logger I just combined it with a CosmosDB and put the dashboard online with the actual tester running locally of course.
For a similar project run by RIPE check out https://atlas.ripe.net. Atlas is a terrible name because everything seems to be named Atlas nowadays, but it's a fitting name for a cool project.
I use this docker container `roest/docker-speedtest-analyser` [0] to auto-run a speedtest every hour. I am running Unraid on my home servers and also like the Speedtest plugin [1]. Lastly I use a docker container `adolfintel/speedtest` [2] so that I can test the speed to/from my house from outside the house (or on cellular). This is a pretty cool idea but if you are already comfortable running docker containers locally I encourage you to take a look at the first container I linked so you can keep all the data local.
During the throttling wars, I seem to remember hearing somewhere that ISPs recognize speedtest.net runs and optimize for them, while also throttling competing content providers like NF. That is why fast.com was built: if ISPs throttle Netflix, they'll also be throttling fast.com so it will be reflected there.
This is true and still is. Most larger ISP will have Speedtest servers in their infrastructure. I remember installing one of their servers in 2010 in the ISP I was working for at the time. The thing it doesn't mask is last mile type issues. So if the node you're on in an HFC is oversubscribed and you start complaining about it, and can show this during peak hours using their own Speedtest server, they'll likely shuffle RF or split the node to relieve the congestion. In that case it does have value. You can also select the server you want to test against so it's not hard to validate speeds and latency outside of the, potentially, local-only test.
I leveraged Speedtest's CLI in a little mashup of Docker, Python, Grafana And InfluxDB because I had found some inconsistencies with other CLI speed testing applications and needed something to log a remote internet connection for a few months to prove bad and repetitive specific time of day latency [0].
This makes me wonder if there could be a version of this that attempts to extrapolate the ISP network topology, at least to the node level, and to arm users with information at the level of ‘your issue is shared with at least 5 others in your area’.
Setup seemed easy enough, but the speed results just don't seem accurate. I can saturate my full pipe using the official Ookla CLI tool but the speedtest-cli python package only sees about 250mbps of the 1Gbps I'm getting.
Spot on. The Python speedtest-cli package is wildly inaccurate. Not sure if this project is based on it but if so the Speedtest CLI [0] is much better as someone else has already mentioned.
My ISP in Germany was lending cables from another ISP. They failed to fulfill the "up to 100 MBit/s" claim all the time.
So I set up a Raspberry Pi (which is a bit flawed, as the network interface on the older models was too slow, to begin with) and let it run speedtests every 5 minutes for four weeks.
The graph looked terribly enough that I was allowed to change ISPs without any cancellation period or something else.
Sometimes they care, probably because I blogged and tweeted about it, too.
I gets very confused by marketing terms. But doesn't giving you only 1MBit/s during the whole day counts in "up to 100Mbit/s"? I'm trying to understand the legal merits in a case like this.
Marketing-wise that's true (and probably also from a legal point of view). But they were constantly delivering 25 MBit/s or less, even through the night. That's pretty bad for a large german city.
Not sure if you couldn't "sue" them or whatnot for not fulfilling their part of the contract. I was fine with being able to change, that's where my journey ended.
Point for me was: It's a good idea to collect "evidence" and it sometimes helps to have numbers at hand.
Yes, netzpolitik.org has some info [0], I'll give you a deepl translation of the section:
In the future, performance not in compliance with the contract will be deemed to have occurred if
- 90 percent of the contractually agreed maximum speed is not achieved at least once on each of at least two measurement days, or
- the normally available speed is not achieved in 90 percent of the measurements, or
- the contractually agreed minimum speed is not reached on at least two measurement days respectively.
To be recognized as valid, users must also perform at least 20 measurements on two different days and have their computer connected to the Internet via LAN.
In my case as well this is true. ISPs ( especially when they have monopolies) don't care about this. I live in a town with 8K people and the whole town is sharing an uplink of 300Mbit/s. And we complained a lot but due to how only one single ( governmental) provider have the rights to install cable internet, we're stuck with what we have.
All major UK ISPs abide to Ofcom's Code of Practice which means you have the right to get out of the contract with no consequences if they fail to reach their minimum advertised speed. This feels like a bit of a raw deal, since they get to keep the months payment for a service they failed to provide, but it's better than nothing.
I've actually had pretty good luck with pingplotter's sidekick + mediacom twitter support. The phone people would not give me the time of day, however.
I would highly advise using the official speedtest.net CLI.
The dev of speedtest-cli nuked the issues page of his repo due to complaints about this, and refuses to acknowledge it, leading to people using this tool without understanding its limitations.