Readers often ask me what hardware configuration is required for a Microsoft Exchange server supporting "n" users. I explain that I can't tell exactly what a specific Exchange environment requires without simulating that environment. I have many rules of thumb that often prove useful, but in the end, the only way to be certain is to test the environment. So this week, I look at capacity simulation for Exchange.
A benchmarking guru once told me a capacity-simulation exercise is only as good as the workload characterization. All your efforts to benchmark your environment will be in vain unless you accurately determine your users' workload characteristics. Understanding exactly how people use Exchange services takes a lot of research and can involve several methods and tools such as user surveys, historical data, mail-gateway analysis, and mailbox analysis.
Next, you need to evaluate and select the methods and tools for performing the capacity simulation. Many options are available, depending on how much time and money you want to spend. You can even use a package such as Rational's Test Suite to develop your Exchange testing models. Fortunately for Exchange administrators, Microsoft provides some freeware that does a good job in most cases.
For simulating Messaging API (MAPI) workloads, Microsoft provides the load simulator tool, LoadSim, which the Exchange development team first developed for Exchange Server 4.0. Hardware vendors perform Exchange benchmarks using this tool, which supports MAPI Messaging Benchmark (MMB) and MMB2 workloads. LoadSim is relatively easy to use and provides excellent reporting capabilities for capacity simulations. You can download the latest version here.
If you want to perform capacity simulations for non-MAPI protocols (e.g., IMAP, POP3, and SMTP), I recommend Microsoft's Exchange Stress and Performance (ESP) Tool. Although ESP takes some work to set up and configure, it offers a high degree of customization. With ESP, scripts control each simulated client's actions. Depending on the hardware and workload these scripts require, you can simulate 5000 or more end users on one client machine. You can download ESP here.
Another important aspect of capacity simulation for Exchange is proper interpretation of simulation results. The available tools have varying degrees of data collection and reporting capabilities. For example, LoadSim reports a great deal of information and generates a score for each simulation exercise you run. Understanding how the tool calculates this score and how to interpret the results can make a huge difference in your simulation exercise's success. LoadSim typically reports a response-time score (in milliseconds) and reports scores for each MAPI task (e.g., Send, Read, and Deliver) as well as the different ways it calculates the score (e.g., mean, 95th percentile, average). If you don't understand what these scores mean and how to relate them to the success or failure of the simulation exercise, you might as well not perform the simulation. Simulation results also include performance data about the server configuration in your test environment. If you haven't captured and properly interpreted your simulation's performance and response-time data, you can't make decisions about the server configuration you need to deploy.
Capacity simulation exercises for Exchange (and other environments) aren't trivial. If you're serious about determining the hardware-configuration requirements for Exchange, you must do the work. Take time to understand Exchange usage patterns, the capacity-simulation methods and tools available, and how to properly interpret the results.