Microsoft Exchange Server Jetstress 2007


Topic Last Modified: 2013-02-25

Microsoft Exchange Server is a disk-intensive application that requires a fast, reliable disk subsystem to function correctly. Jetstress is a tool that helps administrators verify the performance and stability of the disk subsystem before putting their Exchange server in a production environment.

Jetstress works with Exchange Server Database Storage Engine to simulate the Exchange database and log disk I/O load. If you run Jetstress and have missing libraries, you will receive a message that states that you must copy any missing DLL files from Exchange 2000/2003/2007 installation CD/DVDs to the Jetstress installation directory and rerun Jetstress.

There are two categories of test scenarios: disk subsystem throughput and the Exchange mailbox profile.

In the disk subsystem throughput test scenario, you can do the following types of tests:

  • Performance of database transactions

  • Streaming backup

  • Soft recovery

In the Exchange mailbox profile test scenario, you can specify the number of mailbox users and I/O per seconds per mailbox to simulate the profiled Exchange mailbox load. The performance test becomes a stress test when its duration is longer than six hours so that it uses a lenient set of the disk I/O latency thresholds.

We recommend that you use System Monitor and Event Viewer with Jetstress to validate that the performance criteria is met or exceeded and that no errors are logged during a test run. After successfully completing all the tests in a non-production environment, you can move to the next stage in your Exchange Server deployment process. You will have ensured that your Exchange Server disk subsystem is adequately sized (with regard to performance criteria) for the user count and the user profiles required.

Jetstress is supported only when you run versions of ESE.DLL from Exchange 2000 Server SP3, Exchange Server 2003 SP2, or Exchange Server 2007, or newer versions of ESE.DLL. Also, because of this support limitation, Jetstress is supported only on Microsoft Windows 2000 Server; Microsoft Windows Server 2003, Microsoft Windows Advanced Server, Microsoft Windows Datacenter Server, and newer Microsoft Windows operating systems.
Microsoft Windows NT 4.0 and older versions are not supported.
The .NET Framework Version 2.0 must be installed for Jetstress to run. For information about this requirement, see How to Install Jetstress.
If possible, Jetstress should be run on a computer in a workgroup mode instead of joined to a domain, because Jetstress does not rely on any information in the domain to work correctly. This helps reduce the risk that is associated with running a test tool in a domain environment.

In this latest download package for Jetstress, there are two separate Jetstress applications:

  • JetstressWin.exe (the graphical user interface (GUI) version of Jetstress)

  • JetstressCmd.exe (the command-line version of Jetstress)

JetstressWin.exe enables you to open, edit, and save a test scenario from and into an XML configuration file. JetstressCmd.exe enables you to run an existing test scenario from a given XML configuration file. The results from both applications are comparable with the same XML configuration input file, because they both use common Jetstress core library files.

JetstressWin.exe can be used to easily configure and execute a test scenario, whereas JetstressCmd.exe requires some expertise to manually edit parameters in an XML configuration file. We recommend that you use JetstressWin.exe to create new test scenarios and JetstressCmd.exe to run the saved test scenarios.

The graphical user interface configuration pages of JetstressWin.exe have group parameters that you can use in your Exchange pre-deployment planning. Each configuration page validates the user input and displays errors, if any, as you continue with the next page.

The following are items that have changed in this version of Jetstress.

  • Simplified configuration   JetstressWin.exe has exposed many parameters on configuration pages to help the beginner to intermediate users focus on the important parameters of a test scenario, and has hidden the rest of the parameters in the XML configuration file. The XML configuration file can be used by the more advanced users to fine-tune a test run.

  • Test Pass/Fail criteria   Jetstress still reports memory system, performance counters such as Memory/Available/Available MBytes, Memory\Free System Page Table Entries, Memory\Pool Nonpaged Bytes, Memory\Pool Paged Bytes. It no longer uses them as criteria on 64-bit Windows systems. Jetstress uses Memory\Transition Pages Repurposed/Sec criterion on Windows Server 2003 systems, but continues to use Memory\Pages/sec criterion on Windows 2000 Server systems.

  • Memory requirements   Jetstress limits the number of storage groups based on the physical memory of the system to ensure consistent database and log disk drive I/O ratios and patterns of burstiness. This requires the minimum physical memory of 1 GB and additional 256 MB for each storage group as you define more storage groups. This memory requirement applies only to the Exchange 2007 Database Engine library to replicate the Exchange 2007 Mailbox server disk I/O. Jetstress does not require additional physical memory for the Exchange 2000 Server and Exchange Server 2003 Database Engine libraries.

  • Disk I/O ratios and patterns   Jetstress is designed to match the Exchange 2007 server disk I/O ratios and patterns of burstiness whereas the Exchange Mailbox server is configured to match memory sizing guidance based on mailbox count and profile in the Exchange blog article, Processor and memory configurations for Exchange Server 2007 Server Roles. This is approximately a 1:1 Database Read: Write ratio and a .5-1:1 Log Write: DB Write ratio.

The content of each blog and its URL are subject to change without notice.
  • Maximum/Minimum Cache Size   Jetstress sets the maximum database cache size to be 256 MB multiplied by the number of storage groups. The minimum database cache size is set to be 32 MB multiplied by the number of storage groups. For example, for four storage groups, the maximum cache size would be 1 GB and the minimum cache size would be 128 MB.

  • Throttled Load Generation   This is also known as fine-grained disk throughput. Jetstress artificially throttles the amount of disk I/O that a thread generates in order to support the fine grained control on the overall I/O throughput and to accommodate a case of 50 storage groups where a few threads could lead to overly large changes in I/O per seconds.

  • Suppress Tuning and Use Thread Count   Automatic tuning works effectively only when you choose to host individual database and log paths on distinct disk drives (separate LUN). Jetstress may frequently fail the automatic tuning if you decide to host many storage groups on the same disk drive. We recommend that you suppress tuning and use a static number of threads for frequent automatic tuning failures.

  • Selecting Time Range of Performance Log   Jetstress saves a performance log for the whole time range of a test run. But the test report accounts for a valid time range of performance samples from a point where it has reached 90% of the maximum cache size.