Load testing has been part of the Microsoft Exchange Server landscape for a long time. The MAPI Messaging Benchmark (MMB) suite of tests was designed to provide a way to measure the performance of a given set of hardware; see this 9-year-old Exchange UPDATE article for more details. The problem with benchmarks, of course, is that they provide an almost endless number of ways to get things wrong.

There are two ways to resolve this problem. One way is to have an ever-more regimented set of benchmark procedures, which is the approach taken in the database world with the Transaction Processing Performance Council (TPC) series of benchmarks. The other way is to move away from benchmarking—which tries to answer the question, "Who's the fastest?"—and do load testing instead, which tries to answer the question, "Is this hardware fast enough?" For Exchange Server, Microsoft has adopted the latter approach.

You might remember that when Exchange 2007 launched, Microsoft made some fairly strong claims about the improvement in I/O performance compared to Exchange 2003. In fact, I/O reduction was one of the major design elements of both Exchange 2007 and Exchange 2010. Reducing the number of disk I/O operations required to service a given workload means that you can get by with smaller numbers of disk spindles, which means that many workloads no longer need SANs because they can efficiently use large-capacity SATA disks instead of faster, smaller, more expensive SAN disks. (Stay tuned to Windows IT Pro for more in-depth articles on the storage and database layout changes in Exchange 2010.)

However, you'd have to be very, very trusting to take Microsoft's word about the impact of these changes. There are so many variables that can influence Exchange disk performance that the only way to be sure is to test Exchange on the hardware you plan to use (or a reasonable facsimile) and see how it performs. That's what the Exchange Load Generator (Loadgen) toolset is for; it was originally released in January 2007 and has been periodically updated. The newest update was released last week. It's a superset of the Exchange 2007 version of Loadgen that adds support for Exchange 2010 in a number of ways:

  • It properly generates load for Exchange 2010's all-new OWA implementation.
  • It can dynamically generate mail content according to a profile you specify so that you get on-demand messages instead of having to use a canned set.
  • It incorporates support for Exchange ActiveSync (EAS). I haven't tested this feature yet, but I'm eager to because scaling Client Access servers for EAS devices is still very much a black art that requires a lot of guesswork and overprovisioning.

At the same time, Microsoft also released a new version of Jetstress, the I/O load tester that lets you validate whether your storage subsystem design can deliver enough I/O operations per second (IOPS) to meet a given Exchange load. The big news here is that the new version implements the Exchange 2010 database I/O profile, including the change to a 32Kb page size. It also imitates the behavior of Exchange 2010's log replication toolset.

Running these tools doesn't guarantee that you won't have performance-related problems, but it certainly does make it less likely!