Internet Speed Test
Internet Speed Tester
Github Link
Having your internet drop a single time can be pretty annoying. Having your internet drop several times within an hour can be exponentially worse, especially if you're dishing out some of your hard earned cash for some premo download capacity. Luckily there's simple speed tests online that can provide you with empirical data that your internet provider is dropping the ball on you. Even more fortunately there exists a Python package for running a simple speed test and reporting the results. There's already several programmers who've created programs to do exactly this, I thought I'd make my own to add to the mix. One of the major differences is that it runs on a Raspberry Pi and also connects to your Google Drive.
​
I've had the code running every 10 minutes via a cron job on my Raspberry Pi for about a month, so I now have some interesting data to show. All plots generated are using a Jupyter Notebook script.
​
Plotting by Hour

Plotting by hour yields some important information. First off, my download speed is much slower than what's advertised. Although I'm paying for 60mbit/s, I'm getting on average 15-20mbit/s. Also, it's clear that my ping is higher and download speed slower in the evening. The fact that there is so much variability at hours that I'm consistently not using my internet suggests that the speed provided by Comcast is not consistent. However there's still more ways to look at the data.
​
Plotting by Day/Hour of the Week


Here I decided to make two plots. One of speed by day of the week, the other of speed by day of the week and hour (7 * 24 = 168 points). The results are shown on the right. Plotting by day of the week is not particularly interesting. The only main conclusion here is that my provider consistently offers the highest internet speeds at some point on Wednesday and the lowest speeds on Friday/Saturday/Sunday. Also ping is worst on Tuesday/Wednesday/Sunday.
The plot of download speed by hour of the week seems to be by far the most interesting. Each day of the week is split by a dotted black line with the first region and last regions representing Monday and Sunday respectively.
Like the last plot, it clearly shows that I'm getting my fastest speed on Wednesday, but also reveals that this is only between midnight and 8AM, hardly a time when the internet is useful. This is almost true every Wednesday since the spread is actually quite small. What a bizarre finding. Likewise, my download speed tends to drop seem to consistently dip during certain hours of the week, such as Saturday at 4AM and 4PM, and Tuesday at 8AM and 8PM. More strange results.
​
As for ping, it's clear again that the worst times are Tuesday, Wednesday and Thursday. The dips on Wednesday are especially interesting. Since I'm usually not home until 8PM or so, it's clear that the poor ping is regardless of my own activity, again pointing to the provider.
​
Number of Internet Drops
​


​
The last thing I'm interested in looking at is the number of times my internet has dropped before a certain threshold, say a ping over 1s. Since I started this experiment, my internet has dropped less frequently so I know this will produce a good visualization.
Plotting this versus day seems to confirm my suspicions. This time, the shaded area is 3-sigma (99.6%). Just before I started gathering data, along the first few days, my internet connection was quite poor and seems to drop very frequently. Over the next two weeks, it seems to have stabilized. However there was a several day period just after labor day week where it seemed to have dropped consistently again. Again, there seems to be little going on on my side that could be causing these drops.