Jetstress Nuances

In my last blog entry, I talked about several reasons why people want or need to run Jetstress. If you are new to Jetstress, the first hurdle is to pass a Jetstress test. And this is not a trivial task. As you know, there is the latency requirement (i.e., database read and write latencies must be less than 20 msec); and there is the IOPS requirement (i.e., the achieved IOPS must meet or exceed the targeted IOPS).

Next, it is important to know that two Jetstress tests can have the same number of mailboxes, yet still be two very different tests. Why is that? That’s when the nuances come into play. And I’ll just name a few common ones below.

  • Mailbox Size. Even with the number of mailboxes fixed, the size of mailbox can still vary widely. One test may use 1GB per mailbox, the other 2GB or even 5GB per mailbox. These tests will have very different capacity requirement, leading to different type of hard disk drives and different number of drives needed. What’s more, if you are counting on some type of cache to boost the performance, you may find out that the cache may not be as effective for 5GB mailbox as for 1GB mailbox. This is simply because the larger the mailbox, the smaller the ratio of cache size to database size; which, in turn, could lead to lower cache hit percentage.
  • IOPS per Mailbox. At first, you might think that if the number of mailboxes is set, then the IO load is also set. In reality, this is not true. Consider a simple example: customer A has 1000 mailboxes and only requires 0.10 IOPS per mailbox, and customer B also has 1000 mailboxes but requires 1.00 IOPS per mailbox. Customer B would have ten times higher IO load than customer A, even though the number of mailboxes is the same.
  • Number of Databases. For Exchange 2010, larger databases (say, 2TB per database) are preferred to smaller databases (200GB per database). For a given number of mailboxes and a given mailbox size, larger database means fewer databases are needed. Since the background database maintenance (BDM) is done to each database, fewer databases will lead to lower BDM overhead.

These details are important if you want to optimize the Jetstress configuration as well as compare one Jetstress test to another.

Thanks for reading.