I thought I'd share my recent adventures down the rabbit hole of internet “performance”. As many work from home to some extent, it seems a good area.

Plus who doesn’t appreciate faster loading of the Friday Thread? Exactly.

Background: I haven’t changed my ISP for 15+ years as my house is limited to an ancient ADSL line, of max advertised capacity 160Mbps (down) and 16Mbps (up). But as I can't get fibre without seemingly funding it for the whole street, it is what it is and I have to make the most of it. I also still use my old Apple Airport (802.11ac, aka Wi-Fi 5) routers, which are super stable but not the latest and greatest, so bear that in mind.

This is far from a “state of the art” demo. But it may be more representative because of that.

I begin with my usual go-to, and many others it seems, Speedtest.net:



Well, not too bad! Quite close to the max advertised download speed, and the upload speed is fine - I rarely see it in the 10Mbps or over range. This is using wi-fi, from the iPad I am typing this on, and others in the house are online.

But…!

This hides some very pertinent things. It is based off a large data transfer from one site. Whereas typical household usage has many devices, all accessing the internet at various speeds. App updates, cloud photo syncing, game downloads, DNS requests, NTP updates, Teams meetings, Netflix, important threads about buns, and so on.

Regardless of download speed, some of these are latency sensitive. Such as voice and video services, and gaming.

If we look at a test that measures latency changes during high network activity, the picture is not rosy at all:


(From http://www.dslreports.com/speedtest)

Now bear in mind this is ADSL which has a degree of variability in latency anyway, but look at that middle “lag” bar: over 4 seconds of latency for some packets! Many are around 1 second or more.

That’s in just a one minute download test. It would be similar to when an app, OS or game updates, cloud files/photos synchronize, or an HD movie is streaming. Anything latency sensitive such as Teams/Webex/FaceTime/Gaming could potentially be impacted.

So…

I add some Quality of Service (QoS) to my router. This a huge subject. Hence the rabbit hole. There are many approaches and options. I choose a simple one: apply “fq-codel” to the bridge between my LAN and the internet.

This is a traffic shaper that attempts to fairly arbitrate multiple packet flows through an interface. So big transfers that may saturate the internet bandwidth are gently slowed down, and small flows are prioritized. Without QoS, any large transfer meeting the relative bottleneck of the ISP connection may buffer regardless of priority, and “hold up” packets from other sources.

I set it to shape to 100Mbps down, 10Mbps up (with a temporary “burst” allowable of up to 160Mbps down and 16Mbps up)

The result:



Note that the vertical scale on the chart has lost a couple of zeroes. Worst case latency is now under 60ms, and most under 30ms! Anything under 100ms should be unnoticeable on a live stream or call. For gaming, the lower the better.

A drastic improvement. Compared to Speedtest.net, this is telling me better information. Overall real world speed actually increased too, despite setting the QoS limits to less than my notional bandwidth.

Caveats include that this is over wifi infra, to an ADSL connection that is intrinsically variable latency, and my family is using the internet too. Results may vary. But it is representative of how our household uses the internet. I did run all the tests above on the same device (my old iPad, the one that that I'm typing this on) in the same location, within minutes of each other, with no changes other than enabling the QoS.

I think it’s a reasonable demo of “download speed isn’t everything” when it comes to network performance, at least as perceived by application response. I used my Mikrotik firewall/router to set this up, but some modern Wi Fi routers have QoS available as an option, which on this evidence suggests it would be well worth trying. But it’s a very deep rabbit hole indeed!