Microsoft has made certain internal-use tools available to administrators and end users, including JetStress, which load-tests Microsoft Exchange Server
JetStress simulates Exchange’s I/O patterns to determine how it will affect your storage system. For example, the tool replicates how Exchange reads and writes data to its stores and uses threads to manage I/O operations. It also simulates Exchange’s read/insert/update/delete actions.
JetStress creates a simulated disk load using the Extensible Storage Engine (ESE) component. The tool can assess your storage hardware setup and determine if your storage system can handle a new Exchange 2010 installation.
JetStress can perform two basic types of tests:
- Disk subsystem throughput -- JetStress measures how well the storage system performs at about 80% use, which is the maximum percentage that Exchange can use in a production environment. If you use attempt to exceed this percentage, the rest of your system will be starved for I/O.
- Exchange mailbox profile test -- This test simulates the load that Exchange users with a specific amount of IOPS-per-mailbox-throughput will generate.
To begin a test, run JetStress on every server and every set of disks that will be used to host an Exchange installation. This should include active and passive nodes, which should be run in tandem when possible. Simply testing the storage subsystem alone, instead of testing it in context, won’t give you a realistic idea of the type of load it can handle. This is especially true when you’re using storage area networks or iSCSI storage and you want to know how well they will hold up when all your servers are running.
Microsoft recommends that you run these tests for at least two hours and that you set enough extra time aside to rerun the tests in case you have to adjust the parameters. For example, you may need to change the number of threads JetStress uses to generate I/O.
Microsoft reworked JetStress so that it simulates more efficient I/O loads that Exchange 2007 and Exchange 2010 create; therefore, the total thread count doesn’t need to be as high. Although the tool can automatically tune the thread count, it’s best to determine the thread count yourself. The JetStress Field Guide gives detailed instructions on how to do this; see Appendix A.
Jetstress best practices and limitations
Because JetStress is designed to run on a system prior to an Exchange installation, it’s best to run it on a system that won’t be upgraded to Exchange Server 2010 in the near future. Running JetStress on a system on which Exchange has already been installed will interfere with the server’s performance counters.
Keep in mind that JetStress isn’t the only tool you need when assessing your Exchange setup. It can’t, for example, perform user profile analyses to determine what load to simulate. You’ll have to do this manually when you’re architecting your Exchange mailbox design. Additionally, JetStress exists in 32- and 64-bit versions; you’ll need to use the 64-bit edition to test Exchange 2007 or Exchange 2010 servers.
ABOUT THE AUTHOR:
Serdar Yegulalp has been writing about computers and IT for more than 15 years for a variety of publications, including SearchWinIT.com, SearchExchange.com, InformationWeek and Windows magazine.
This was first published in February 2011