In order to tune performance you have to benchmark your site first, so that's what we did. Please remember that we're not really interested in absolute numbers but rather in relative performance gains and losses when tweaking different parts of the system. On the other hand, our server setup is certainly quite common, especially in current root server hosting. You might therefore be interested in the actual numbers, so you can get a rough estimate of what your server should be able to deliver. If your performance is far worse than ours, think about tuning it. If it is far better, please drop us a line on how you did it.
Hardware
We used several servers and clients for these benchmarks, but most of them were taken on a fairly similar and commonly used hardware and software: an AthlonXP 2200 with 1 GB RAM, basically commodity hardware.
Software
Since we were interested in the effects of various software versions, we used the following platforms for testing:
GNU/Linux: Debian Sarge and Ubuntu Breezy
MySQL 4.0 and 4.1
Apache 1.3 and 2.0, lighttpd 1.4.8
PHP4 and PHP5
TYPO3 3.8, Quickstart package
Note that even if we used Linux to test our installation, most of the recommendations are valid for Windows users, too.
Benchmarks
Before we begin, a disclaimer: We are aware that, for one reader or another, we used the wrong methods, got the wrong results, made wrong assumptions and drew wrong conclusions. Our point is not giving you all the low-level tricks on file systems, database tuning and kernel hacking. We were not experts on those fields, and plenty of information on this is available already. We concentrated on two things:
How much requests could our website handle simultaneously?
How much load did the server have when being heavily used or even being slashdotted?
For those purposes, we found various tools around in the web. Our favourite candidate was Apachebench (ab), part of the Apache utilities, to measure the HTTP output of our site. There were other tools such as siege and flood for less synthetic testing, but we certainly did not expect any fundamental differences in the results.