Applies to: Exchange Server 2010 SP3, Exchange Server 2010

Topic Last Modified: 2012-07-23

Knowing how to estimate the resource consumption of an Exchange user helps you with hardware and capacity planning. You can use the procedures in this topic to determine the megacycles and input/output per second (IOPS) per user for Microsoft Exchange Server 2010. For more information related to your hardware and capacity planning, see the following topics:

You'll need to understand the following terms to perform the procedures discussed in this topic:

Prerequisites

If the active mailboxes in a company have diverse usage requirements, you may want to measure usage profiles separately for different groups of users. For example, sales engineers may have a different usage profile than the marketing group. However, be aware that separate measurements are helpful only if the groups of users have significantly different requirements.

To accurately measure the megacycles and IOPS of the different types of users, you need to:

  • Isolate the user groups on distinct databases and Mailbox servers.

  • Associate those Mailbox servers with distinct Hub Transport and Client Access servers.

  • Create unique namespaces for each profile.

You can then use the values of the following counters to determine the relative weight of the users:

  • MSExchangeIS Mailbox\Messages Delivered/sec

  • MSExchangeIS Mailbox\Messages Sent/sec

For an example, consider the following calculation. If the database with 100 sales engineers receives 0.5 messages per second and sends 0.3 messages per second, while the database with 50 marketing employees receives 0.1 messages per second and sends 0.1 messages per second, the resulting value of 2.0 indicates that one sales engineer generates twice the megacycles and IOPS on all roles as one marketing employee.

Approximate impact of user groups

Calculate total megacycles per user for the Client Access, Hub Transport, and Mailbox server roles without mailbox resiliency

You can use the example in this section to help you calculate megacycles for your server roles.

The total megacycles consumed per second is the product of the (percent total CPU) × (number of cores) × (speed of each core in megahertz (MHz)).

To calculate the MHz per mailbox, perform the following steps:

  1. Select a production server with a typical user load.

  2. Use Performance Monitor (Perfmon.exe) to monitor the Processor\% Processor Time_Total counter over the peak hours of server activity.

  3. Calculate the average CPU usage (percent) from the data you obtain in step 2.

  4. Calculate your current MHz per user as described in the following formula:

     

    MHz per mailbox = ((average CPU usage) × (number of processors × number of cores per processor) × (speed of processors in MHz)) ÷ (number of mailboxes)

For example, let’s assume the following values for a Mailbox server:

  • Average CPU usage = 30 percent of total CPU during the user peak period

  • Number of processors = 2

  • Number of cores per processor = 4

  • Speed of processors in megacycles = 3,000 MHz

  • Number of active mailboxes = 6,000

Given these values, and using the formula described earlier in step 4 of this section, we find that the CPU cost per mailbox is:

30% × (2 processors × 4 cores) × (3,000 MHz) ÷ 6,000

= 1.2 megacycles per mailbox

Calculate the total megahertz per user for the Mailbox server role with mailbox resiliency

If mailbox resiliency is enabled, you should identify the costs of supporting the database copies. For example, estimate that a passive user's mailbox consumes 15 percent less megahertz than an active user's mailbox, and additionally that each passive copy hosted elsewhere adds 10 percent to the user's CPU footprint on the active server.

Use the following equation to calculate megahertz consumed with mailbox resiliency enabled:

Megahertz consumed = (active users) × (megacycles per user) + (0.1) × (active users) × (number of passive copies) × (megacycles per user) + (0.15) × (passive users) × (megacycles per user)

Combine the preceding equation with the following:

Megahertz consumed = %_Total CPU × (number of cores) × (speed of a core)

The following figure shows the solution for the preceding equations.

Solve for megahertz per user

For example, assume the following values for the Mailbox server:

  • Average CPU usage = 30 percent of total CPU during the user peak period

  • Number of processors = 2

  • Number of cores per processor = 4

  • Speed of processors in megacycles = 3,000 MHz

  • Number of active mailboxes = 3,000

  • Number of passive mailboxes = 2,000

  • Number of database copies = 2

Given these values, the CPU cost per user is 1.8, as shown in the preceding figure.

Therefore, to calculate megacycles per mailbox for a Mailbox server with mailbox resiliency, perform the following steps:

  1. Select a production server with a typical user load.

  2. Use System Monitor to monitor the Processor\% Processor Time_Total counter over the peak two hours of server activity.

  3. Calculate the average CPU usage (percent) from the data you obtain in step 2.

  4. Calculate your current MHz per user as described in the following formula:

    MHz per mailbox = ((average CPU usage) × (number of processors × number of cores per processor) × (speed of processors in megacycles)) ÷ [(number of active mailboxes)(1 + 0.1) × (number of database copies) + (0.15) × (number of passive mailboxes)]

Calculate the mailbox disk IOPS per user

Random database reads and writes are a concern when considering mailbox disk IOPS per mailbox. However, sequential log writes are lower cost and rarely a problem. To find the number of IOPS on an active database, add the values of the following MSExchange database counters at the peak load period:

  • Instances\I/O Database Reads/sec (Information Store\database)

  • Instances \I/O Database Writes/sec (Information Store\database)

To measure IOPS per mailbox, perform the following steps:

  1. Select a production server with a typical user load.

  2. Use System Monitor to monitor the following counters over the peak two hours of server activity:

    • MSExchange Database Instances\I/O Database Reads/sec (Information Store\database)

    • MSExchange Database Instances\I/O Database Writes/sec (Information Store\database)

  3. Calculate current mailbox disk IOPS per mailbox as described in the following formula:

     

    Mailbox disk IOPS per mailbox = (MSExchange Database Instances\I/O Database Reads/sec (Information Store\database)) + MSExchange Database Instances\I/O Database Writes/sec (Information Store\database) ÷ (number of mailboxes on that database)

 

For example, assume the following values for a database:

  • MSExchange Database Instances\I/O Database Reads/sec (Information Store\database) = 7

  • MSExchange Database Instances\I/O Database Writes/sec (Information Store\database) = 8

  • Number of mailboxes = 250

Given these values, the following determines the IOPS per mailbox:

(7 + 8) ÷ 250 = 0.06 IOPS per user

For more information, see the values recommended for planning a topology in Mailbox Server Processor Capacity Planning.

Estimates of Mailbox Database Cache, IOPS, and CPU Usage

The following table provides data estimates that you can use to determine the megacycles and IOPS per user for your Exchange 2010 system.

In the table, the megacycles estimate is based on the measurement of Intel Xeon x5470 3.33 gigahertz (GHz) processors (2 × 4 core arrangement). A 3.33 GHz processor core provides 3300 megacycles of performance throughput. You can consider other processor configurations by comparing this measured platform to server platforms tested by the Standard Performance Evaluation Corporation (SPEC) at SPEC CPU2006.

Note:
You must increase the megacycles per active mailbox by 10 percent for each additional database copy after the one active copy.

Per mailbox database cache, IOPS, and CPU estimates based on message activity

Messages sent or received per mailbox per day Database cache per mailbox in megabytes (MB) Single database copy (stand-alone) with estimated IOPS per mailbox Multiple database copies (mailbox resiliency) with estimated IOPS per mailbox Megacycles for active mailbox or stand-alone mailbox Megacycles for passive mailbox

50

3

0.06

0.05

1

0.15

100

6

0.12

0.1

2

0.3

150

9

0.18

0.15

3

0.45

200

12

0.24

0.2

4

0.6

250

15

0.3

0.25

5

0.75

300

18

0.36

0.3

6

0.9

350

21

0.42

0.35

7

1.05

400

24

0.48

0.4

8

1.2

450

27

0.54

0.45

9

1.35

500

30

0.6

0.5

10

1.5