Microsoft Exchange Server 2003

It is easy for system designers to become preoccupied by performance. It is good to know that a specific system configuration can cope with a specific workload, and you can run performance tests until the cows come home to demonstrate that Exchange is able to cope with thousands of mailboxes. Unfortunately, this position guarantees that you miss two facts. First, because it is difficult to assemble thousands of real-life users and get them to create a workload for a server, the normal course is to run performance tests with a simulated workload. Of course, this demonstrates that the server can cope with a simulated workload and therefore creates a certain amount of confidence before deployment, but it is no guarantee that the system will achieve the desired performance in production. Real users have an annoying habit of doing things that no self-respected simulated user would, such as deciding to send a message with a 10-MB attachment to a huge distribution list, and this type of behavior skews system predictability.
The second factor is raw CPU performance. An Exchange benchmark exceeded the 3,000 mailboxes per server level in 1997, yet few system designers rush to put more than 3,000 mailboxes on a production server even though CPU clock speed has increased dramatically since. Benchmarks now suggest that you can easily support tens of thousands of Exchange mailboxes on the latest servers, but few go past the 3,000 sticking point unless they are sure that they have the right combination of...