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:
- Understanding Processor
Configurations and Exchange Performance
- Understanding Multiple
Server Role Configurations in Capacity Planning
- Understanding Client
Access and Hub Transport Combined Role Configurations in Capacity
Planning
You'll need to understand the following terms to perform the procedures discussed in this topic:
- Megahertz/user This term refers to the
megacycles per second per user, which is the raw processor usage
required per user measured during the peak (two-hour) period on a
production server.
- IOPS/Total number of active
mailboxes This term refers to the input/output
(I/O) per second per active mailbox, which is the raw database disk
usage (IOPS) required per user measured during the peak period on a
production server. This metric doesn't include either transaction
log I/O operations or I/O to passive database copies. It also
excludes I/O to content indexing files.
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.
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:
- Select a production server with a typical user load.
- Use Performance Monitor (Perfmon.exe) to monitor the
Processor\% Processor Time_Total counter over the peak hours of
server activity.
- Calculate the average CPU usage (percent) from the data you
obtain in step 2.
- 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.
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:
- Select a production server with a typical user load.
- Use System Monitor to monitor the Processor\% Processor
Time_Total counter over the peak two hours of server activity.
- Calculate the average CPU usage (percent) from the data you
obtain in step 2.
- 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:
- Select a production server with a typical user load.
- 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)
- MSExchange Database Instances\I/O Database Reads/sec
(Information Store\database)
- 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 |