I just discovered (after asking about it in the #drupal IRC channel) the wonderful little program ab, included in an Apache installation. This little nugget does one thing, and does it well: It beats the heck out of your server, then tells you how your server did in terms of page serving. I tested a few different configurations on a dedicated, 4-core, 4 GB RAM server from SoftLayer, and used the following two commands:
1. Download the specified URL 1,000 times, with KeepAlive turned off (each request gets a new http connection):
ab -n 1000 -c 5 http://ip.address.of.site/path-to-page.php
2. Downlaod the specified URL 1,000 times, with KeepAlive turned on (thus allowing the connection to be maintained for as many http downloads as you have set in your httpd.conf file):
ab -n 1000 -kc 5 http://ip.address.of.site/path-to-page.php
I ran these tests a few different ways, and here are the results of the tests I ran with KeepAlive on, with the number of pages per second ab reported listed after the method:
- Drupal - normal page caching turned on, css/js aggregation, 55kb page – 12.5 pages/sec
- Joomla - no page caching (disabled due to buggy 1.x caching), 65kb page – 8.2 pages/sec
- Drupal - boost module enabled, serving up the boost-cached file – 3,250 pages/sec
- Joomla - custom page caching system enabled, serving static html file – 2,600 pages/sec
Speed boost due to caching: ~250x faster!