First of all, a big shout out to les hommes et femmes at http://korben.info/, who today have taught me an important lesson.
At about 9:30 today, they posted a list of 50 things to do with your Raspberry Pi, which included the Raspberry Tank. At about 9:40, my web server melted. This is the disk I/O graph:
Somewhere around five Apache instances per second were being spawned, all of which seemed to be waiting for each others’ I/O operations, and combined together managed to slow everything else to a crawl. It took twenty minutes to successfully
ssh into the server and stop Apache. In that whole time, I think about five visitors might have actually have seen a properly-formed web page.
From that point, it was a dainty command-line dance to get enough of WordPress up and running that I could set up a page caching plugin, but not so much of it that visitors could actually request pages themselves.
At around 1pm, I finally managed to get back up and running again – and the floodgates opened.
So, today I learned two important lessons about running your own web server:
If you are going to do something cool with a Raspberry Pi and post about it on your blog, CACHE THE PAGES.
It’s a great idea for your web server to send out e-mail alerts when it is dying. It’s a less great idea to host your e-mail system on the same machine.
Thanks, crazy French blog.