Speed Tests

I long have monitored my ISP connection. Generally the connection is stable but not always. What ISPs see at their end is not always the same as what customers see. When those moments arise a helpful way to motivate the owner to investigate is data and graphs.

For several years I ran two tests every hour. To monitor the connection I used a local ISP speed test that did not depend on the bane of the web and could be tested from the command line. I wrote a shell script to access the speed test service and store data in a text file. I use gnuplot to create pretty graphs. This worked well for me until I decided I wanted to avoid potential ISP snooping. Using that specific speed test service no longer seemed palatable.

I am using a virtual private network (VPN) more often. That introduced an additional desire to collect data to monitor those connections.

After much weeping and gnashing of teeth I decided to use the speedtest-cli tool. I appreciate that the service is free in cost to customers, but these days the meme with “free” means that user habits and data are the products. I presume the owners of the speedtest.net network make money partly through data mining and selling data. I prefer to avoid such efforts or at least skewer the results to nominally protect my privacy.

To somewhat protect my privacy I wanted to randomly selecting different speedtest.net servers. Now that I am regularly using a VPN I decided that randomizing the speedtest servers was doable. A likable idea too.

I modified my original shell script to distinguish how I connected. I still need data and graphs should my direct ISP connection deteriorate. None of that data collection or plotting changed.

I reduced the test period to hourly.

I modified my respective cron job. Testing VPN servers occurs at 10 minutes after the hour. Testing the ISP connection occurs at 40 minutes after the hour.

I added support for the various VPN IP addresses I connected. Same data collection but different text files to store the data. I expanded the script to randomly select a speedtest.net server and ensure I did not use the same servers within the past two days.

I suspect, or at least hope, that when using the VPN and not using the same speed test server for two days that my speed tests look more random. The random selection also applies to testing the local ISP connection. While the ISP public IP address is fixed the randomness remains the same.

After some weeks of collecting data I verified my suspicions. Using the VPN results in a slower connection. The local ISP does not provide high speeds. Because of the slow ISP speeds, noticing the speed decrease with the VPN is easy without any data. The main difference is I have pretty graphs to show the decrease.

I now have a nice way to monitor my connection with or without the VPN.

Posted: Category: Usability Tagged: General

Next: Tech Writing and Hemingway

Previous: Thunderbird and Movemail