Internet Quality Test

TheOracle

Well-Known Member
Joined
Nov 5, 2010
Messages
306
Reaction score
348
I have build a Internet Quality Test tool.

A speed test tells you how many Mbps you get; this tool test tells you whether your line actually holds up when it gets busy. It measures your latency on a quiet line, then again while deliberately saturating your download and upload, and grades the difference, called bufferbloat, from A+ to F.

Anyone interested can have a look here:

 
Looks good - you're building up quite a nice set of tools there
 
Why is it that I get horrible latency under no load and atrocious latency under load with an F score, yet on waveform & libreqos I get A+ scores? In a real-life scenario with the link being hammered there's no noticeable increase in latency either.
 
Why is it that I get horrible latency under no load and atrocious latency under load with an F score, yet on waveform & libreqos I get A+ scores? In a real-life scenario with the link being hammered there's no noticeable increase in latency either.
A few things could explain it.
My idle probes and the saturating downloads all share one connection to Cloudflare, so any queueing that only shows up when everything's funnelled through a single connection will hit my test but not tools that spread load across multiple flows. It's also all timed in the browser's JS thread, so if your CPU is busy chewing through four parallel downloads, that can skew the probe timing itself, separate from actual router queueing. And LibreQOS measures at your ISP's edge, so it won't catch congestion further out on the path to Cloudflare specifically.

None of these tools are the final word alone, but an F with zero real-world impact points at the Cloudflare path rather than your line.

What's your setup, fibre or LTE, which router, any VPN running? Keen to dig into it properly.
 
Why is it that I get horrible latency under no load and atrocious latency under load with an F score, yet on waveform & libreqos I get A+ scores? In a real-life scenario with the link being hammered there's no noticeable increase in latency either.
Wired or WiFi?
 
What's your setup, fibre or LTE, which router, any VPN running? Keen to dig into it properly.

Cudy wr1300, openwrt 25.12.5, sqm qos, no vpn,, fibre, linux pc via ethernet with idle cpu & network usage.

In general network is running great, just found those test results weird as they don't align with anything else.
 
Last edited:
Cudy wr1300, openwrt 25.12.5, sqm qos, no vpn,, fibre, linux pc via ethernet with idle cpu & network usage.

In general network is running great, just found those test results weird as they don't align with anything else.
I also notice the latency is a bit off. I do not have the latency shown in the tool. My latency is generally low (single digits), not in the 40's as shown in the test.
 
I also notice the latency is a bit off. I do not have the latency shown in the tool. My latency is generally low (single digits), not in the 40's as shown in the test.
Wonder what server location and path it is using to measure the latency
 
Wonder what server location and path it is using to measure the latency
The tool tests latency under load against Cloudflare's servers, usually Johannesburg or Cape Town if you are in South Africa.

It does list the test server in the result.
 
The tool tests latency under load against Cloudflare's servers, usually Johannesburg or Cape Town if you are in South Africa.

It does list the test server in the result.
Depending where the test was done from there might be some routing issues, e.g. Durban / EC sometimes routes funny if NLDs are broken
 
I also notice the latency is a bit off. I do not have the latency shown in the tool. My latency is generally low (single digits), not in the 40's as shown in the test.

I just ran it again and it's still weird, idle latency 61ms, under load 65/66ms, CT server.

61ms idle is way off, the waveform bufferbloat test uses cloudflare cdn and they're 8ms at idle.
 
I get an A on PC wired fibre, C on phone WiFi fibre, and F on phone LTE, so the basic functionality works. I could probably improve the phone by changing the WiFi settings (prioritising bandwidth versus signal strength and distance). If I run both phone and PC tests simultaneously I get C for both. Not bad for a 25/25Mbps fibre line...

Edit: Interestingly I get a B on an 11 year old Samsung J5, so my hardware and line speed are sorta matched (modest capacity). However the overall rating does not match all the glitches and spikes reported by the test.
 
Last edited:
I had a look at the code and there was definitely a problem.

The test was measuring Cloudflare's own server processing time and reporting it as your latency. Their endpoint sends back a Server-Timing header telling you how long they spent on the request, and that was running anywhere from 20 to 100ms of pure noise. I was timing the whole round trip and blaming your line for all of it. Over 40 samples my "latency" figure correlated 1.000 with how busy their server was, so it was essentially a Cloudflare load meter with your ISP's name on it.

Fixed. It now uses the browser's resource timing and subtracts the server side, same approach Waveform uses. On my test box the idle reading went from about 26ms to 3ms, against a real ping of 0.5ms. Most of the jitter was that same noise, so the spikes should settle too, which is likely what @Gordon_R was seeing.

@ponder your idle should line up with Waveform now. I'm less confident about the F, the server noise on its own does not account for a swing that big, so if it still grades badly after a retest give me a shout and I'll dig further.
@TofuMofu the 40s should be gone.
@netstrider if it still looks odd, post fresh screenshots and I'll take a look.

You might have to refresh your browser to get the latest code.
 
Definitely better now, with consistent numbers. WiFi is still a big constraint, so you need to emphasise that. Saturday morning is not exactly a busy time, so the results may not be representative of peak hour traffic...
 
Definitely better now, with consistent numbers. WiFi is still a big constraint, so you need to emphasise that. Saturday morning is not exactly a busy time, so the results may not be representative of peak hour traffic...
Yes, I agree on the WiFi point, it now warns you explicitly on any C or worse that a weak signal or busy LTE cell can cause it, and says to retest on a cable before blaming your ISP. Also added a nudge to retest during the evening peak, since you're right that Saturday morning proves nothing
 
Bufferbloat grade: B
Good. Latency rises a little under load. Most households will not notice, though competitive gamers might. Your latency went from 12 ms idle to 44 ms under load


(wifi) .
 
I had a look at the code and there was definitely a problem.

The test was measuring Cloudflare's own server processing time and reporting it as your latency. Their endpoint sends back a Server-Timing header telling you how long they spent on the request, and that was running anywhere from 20 to 100ms of pure noise. I was timing the whole round trip and blaming your line for all of it. Over 40 samples my "latency" figure correlated 1.000 with how busy their server was, so it was essentially a Cloudflare load meter with your ISP's name on it.

Fixed. It now uses the browser's resource timing and subtracts the server side, same approach Waveform uses. On my test box the idle reading went from about 26ms to 3ms, against a real ping of 0.5ms. Most of the jitter was that same noise, so the spikes should settle too, which is likely what @Gordon_R was seeing.

@ponder your idle should line up with Waveform now. I'm less confident about the F, the server noise on its own does not account for a swing that big, so if it still grades badly after a retest give me a shout and I'll dig further.
@TofuMofu the 40s should be gone.
@netstrider if it still looks odd, post fresh screenshots and I'll take a look.

You might have to refresh your browser to get the latest code.
That's more accurate :D This is over Wi-Fi as well

1785579968286.png
 
Top
Sign up to the MyBroadband newsletter
X