Where I live, there is not much choice for high speed internet access - it is either old-school DSL, or some 5G thingy.

I recently intended to switch my DSL provider, but of course the service hotline tried to upsell me to 5G. And I thought: ok, lets see what I can get with that. Long story short: it is 3-4 times faster compared to what I have right now, but performance depends on time of the day and at least for me not worth the additional ~150€ per year. Read on to understand why …

So I got the package with the Xiaomi AX5400 5G modem with wifi and two ethernet ports, put the SIM card in, and was online. Super easy! The contractual limits for Internet speed were up to 600 Mbit/s downlink and up to 60 MBit/s uplink.

Ookla speedtest over 5G

Not bad, but also not perfect. At first I liked that it is much faster then what I got currently over DSL, but as always: the devil is in the details.

Cloudflare speedtest over 5G

Upon testing the performance with the Cloudflare Speedtest , one can see that the variability between the differnet test runs can differ significantly (hence the broad bargraphs at the bottom).

Inception meme on how often I measured

I set out to automate the measuring process, and collect some nice statistics over time. I envisioned something like curl in a cron job, but a friend recommended Speedtest Tracker which can measure and visualize speedtest results over time. Nice! It is available on github under MIT license, and dockerized for easy setup.

Once set up, I had it running for about a week measuring the performance of 5G every 10 minutes, and the results were quite impressive:

Speedtest Tracker running for 1 week

One can clearly see a pattern in downlink performance over time, with decreased speed during the day and an additional drop in performance in the evenings. 5G uses a shared (and limited) medium after all, and shares its frequencies among all currently active endpoints within the same cell. So over time, and with more end users using 5G, I would expect this pattern to get stronger and performance to suffer further.

Early outliers with particular bad performance

To get rid of the outliers during the early measurements I modified the backend speedtest endpoints via the SPEEDTEST_SERVERS environment variable with the output from this link as documented here . My provider does not seem to like peering for best user performance, so the variability of the default set was skewing the statistics. Upload was visibly without any pattern, also jitter and ping were stable.

Ookla speedtest over DSL

Some statistics & numbers: in total Speedtest Tracker logged 1130 test results. Over the entire time I got an average download rate of 383 MBit/s, hitting the technically configured maximum by the provider of 600 MBit/s only about 10 times, always between 2am and 5am. Packet loss was observed only 27 times during measurements, or roughly 2%.

Cloudflare speedtest over 5g

For my particular use cases, I prefer having low pings and constant performance over time, as I only download large chunks (i.e. >10 gigabyte data) only occasionally. For the time being, I’ll stick with my DSL line & hope that fibre connections reach my city, eventually.

Ookla 854 partners

PS: Shout out to Ookla, because even though their measurement network is nice having 854 “partners” is both obscene AND f***ed up!