To Bake or Not to Bake?
Brent Simmons has lately been advocating for “baked” blogs. In a nutshell, a baked blog is one that produces static HTML files. These days, most popular blogging software stores content in a database and runs a bunch of code for every page request: pull the post out of the database, generate the page based on a template, and finally send the finished page to the browser. Under a normal, light traffic load, this works fine, but as soon as a post is linked by a very popular site, it buckles under the load. Best case, visitors get an error page. Worst case, your server crashes.
A certain subset of geeks will be struck with the motivation to build their own blogging system that generates static pages and stores the original post in plain text, formatted with Markdown or similar. If you need a project to work on, I won’t pass judgement.
For the rest of us, as pointed out by Daniel Jalkut, one simple option is to ensure your software caches your pages. WP-SuperCache on WordPress is a good choice and it’s very easy to set up.
If there is fault to be found with the current crop of blogging platforms, it’s that the self-hosted options don’t offer caching in a standard install.
Related to that: the default MaxClients setting for Apache 2.2 in Debian Lenny is an outrageous 150. Consider that many sites will install the prefork MPM and mod_php, and each of those Apache processes will then consume a minimum of 30 MB of RAM, for a potential memory footprint of 4.5 GB. It’s a death sentence for the vast majority of sites that earn an incoming link from a popular site.