Quick Drupal Cacherouter and Boost benchmarks
In the discussion following my last post about cron and the cache hit rate, I promised to do some testing of the different cacherouter backends, as well as Boost. Again, these tests focus on the needs of a smallish site with 500 nodes and 1200 requests per day. Boost is the clear winner for response time (which shouldn't be a surprise given that it allows the web server to deliver HTML files directly from disk). What's interesting though is that the response times are all close enough that it doesn't really matter what caching backend you choose (An end user cannot perceive the difference between 6ms and 2ms, and throughput isn't an issue at this scale). The only factor that's really relevant is how good your system's cache expiration and regeneration logic is. I haven't yet had a chance to explore this aspect in detail, but it seems like Boost is the clear winner here as well.
JMeter is used to generate a more realistic traffic profile that ab:
A few people have brought up Pressflow and Varnish. I'm not sure that those technologies help solve this particular problem: Pressflow naturally sets the Cache-Control: max-age to the admin's chosen value, which Varnish will then honor. Varnish has dropped the idea of a prefetch, in favor of a grace period during which stale pages can be served while a fresh copy is retrieved from the backend. If the page is never requested after max-age + grace period, then that cache entry will grow cold. (That's not a criticism of Varsish; at scale that's exactly the behavior you'd want. However on a small site I'm willing to burn a little extra CPU power to regenerate cache entries that may never be used.)