How to hose your web server by releasing free software

By | June 18, 2017

I run a virtual server on Linode which hosts, among other things, the blog you are currently reading. The server doesn’t get a lot of traffic and is rarely busy or overloaded, so when I get an alert from Linode that its CPU has been pegged for the past two hours, as I did early Friday morning, I usually take the time to find out what’s going on:

One of the pages on my blog is the user guide for the Send Later add-on, which I wrote and maintain, for Thunderbird, SeaMonkey, and Postbox. It turns out that this is the explanation for the load spike on my server, and it’s an interesting enough explanation (just barely) that I figured it was worth a blog posting.

Send Later has around 77,000 average daily Thunderbird and SeaMonkey users (Postbox users aren’t tracked). That means that there are on average around 77,000 copies of Thunderbird and SeaMonkey running every day with Send Later installed.

Thunderbird and SeaMonkey (this is getting cumbersome, so from now on when I say “Thunderbird” assume that I mean both Thunderbird and SeaMonkey) automatically check for add-on updates when they start up, and daily in the background when they’re kept running for more than a day. When I release a new version of Send Later, Thunderbird upgrades to the new version the next time it starts up.

Send Later version numbers are in the format major.minor.patch, for example, “6.1.3”. Patch releases, e.g., for translation updates or bug fixes, happen invisibly in the background when Thunderbird starts. However, major or minor releases are visible to the user because they cause Thunderbird to automatically display the release notes by opening a link to them at the end of the user guide (see where this is going?).

In short, when I released a new minor release of Send Later at around 2:15pm (US/Eastern) on June 15, I invited 77,000 people to download the Send Later user guide from my Linode server. Here’s what that looked like:

So, yeah, I could see how nearly 1,400 people per hour (one every 2.7 seconds) downloading not only the user guide, including all of the scripts, style sheets, and images required to display it,  could put a bit of a load on my server.

Note, incidentally, that only 26% of the users of my add-on are using it in English. The second highest percentage, 22%, is Japanese. So it is understandable that the daily upswing in the graph when people turn on their computers and start working for the day happens very early in the morning US/Eastern time — it’s not early in the morning where there are more users than in the United States!

Things settled down over the weekend, but then — no surprise — there were even bigger load spikes on Monday morning when literally tens of thousands of people came in to work and fired up Thunderbird for the first time that week. Then — again, no surprise — things tapered off as almost everybody was finished being upgraded to the new version.

If the upward trend in the number of users of the add-on continues, I may just need to upgrade my server before the next time I do a major or minor release of the add-on.

Print Friendly, PDF & Email
Share

4 thoughts on “How to hose your web server by releasing free software

  1. Pingback: How to get browsers AND Cloudflare to cache a single page on your WordPress site – Something better to do

  2. Alexis

    Hello Jonathan, my name is Alexis, I speak Spanish but I write this with Google Translator. First of all I want to thank you for donating your time and effort (I use the “Send Later” plugin every day). I completely read your article “How to hose your web server by releasing free software”, but what struck me the most was the text of the page heading “Musings of an indignant mind”, I hope you do not cancel the plugin. I just donated USD 10 .-, I know it’s nothing, but it’s what I can contribute right now, I’m sorry. I reiterate my thanks, and I wish you well.

    Reply
    1. jik Post author

      Thanks for the contribution! Don’t worry, barring unforeseen circumstances, I plan on continuing to maintain Send Later for a good long time. And the source code is publicly available, so even if I disappeared, somebody else could take it over and continue to make it available.

      Reply
      1. Alexis

        I’m glad to know Jonathan, I wish you many successes! I think the world needs the generosity of all, thanks again for yours.

        Reply

Leave a Reply

Your email address will not be published. Required fields are marked *