UPDATE 2: Exchange 2007 Processor and Memory Recommendations
NOTE: This article has also been published in the official Exchange 2007 documentation. We recommend that you check the documentation for the most up-to-date version. Please see the following links:
- Planning Processor Configurations - http://technet.microsoft.com/en-us/library/aa998874.aspx
- Planning Memory Configurations - http://technet.microsoft.com/en-us/library/bb738124.aspx
- Planning Server Role Ratios - http://technet.microsoft.com/en-us/library/bb738159.aspx
- Running the x64 version of Exchange 2007
- Running on Windows 2003 x64 Editions
- Running on x64 compatible processors
- AMD Opteron
- Intel Xeon processor with Intel® EM64T
- Server Maximum Memory Configuration - Different server architectures have different memory limits. We recommend that you check the following technical specifications of the server to determine the criteria that affect the maximum memory configuration to ensure that the appropriate amount of RAM can be installed in to an Exchange 2007 server economically:
- Memory Speed - Some server architectures require slower memory to scale up the memory to ten's of gigabytes in a given server (e.g., maximum server memory is limited to 16GB with PC3200 or 32GB using PC2700). You should check with the manufacturer to make sure that the memory configuration target for Exchange 2007 is compatible in terms of speed.
- Memory Module Size - What is the largest memory module size the server will support? Generally, the larger the memory module, the more expensive it is; 2x1GB DDR SDRAM memory modules generally cost much less than 1x2GB DDR SDRAM memory modules. When planning for an Exchange 2007 server, make sure the maximum memory module size allows you to meet your target memory requirements.
- Total Number of Memory Slots - How many memory modules will a given server support? The total number of slots multiplied by the maximum memory module size will provide the maximum memory configuration for the server. Also, keep in mind that memory modules must sometimes be installed in pairs.
Minimum: The minimum processor/memory configuration suitable for specific Exchange 2007 server roles (also defined in System Requirements). Minimum hardware requirements must be met to receive Microsoft Product Support Services. Recommended: This is the recommended processor/memory configuration for specific Exchange 2007 server roles. Recommended can be defined as "the best configuration based on price and performance." The recommended configuration also provides a balance between processor and memory capacity. The goal is to match the memory configuration to the processor configuration so the system will effectively utilize the processors without becoming bottlenecked on memory and vice versa. Maximum: This is the maximum recommended processor/memory configuration for specific Exchange 2007 server roles. Maximum is defined as "the upper bound of viable processor/memory configurations for Exchange 2007 based on price and performance." Maximum is a guideline and not a "support criteria" and does not take in to account the resource requirements of 3rd party applications. The recommended maximum may change over time based on price changes and technology advancements.Processor Configuration Table for Exchange 2007
Role |
Minimum |
Recommended |
Maximum |
Edge Transport |
1 x Processor Core |
2 x Processor Cores |
4 x Processor Cores |
Hub Transport |
1 x Processor Core |
4 x Processor Cores |
8 x Processor Cores |
Client Access Server (CAS) |
1 x Processor Core |
4 x Processor Cores |
4 x Processor Cores |
Unified Messaging Server (UM) |
1 x Processor Core |
4 x Processor Cores |
4 x Processor Cores |
Mailbox Server |
1 x Processor Core |
4 x Processor Cores |
8 x Processor Cores |
Multi Role (Hub, CAS, UM, Mailbox) |
1 x Processor Core |
4 x Processor Cores |
4 x Processor Cores |
- www.spec.org ratings may be used to rationalize unlike processors/server configurations.
User Type |
Send/Receive per day (~50kb Message size) |
Light |
5 sent/20 received |
Average |
10 sent/40 received |
Heavy |
20 sent/80 received |
Very Heavy |
30 sent/120 received |
*** Concurrency: Concurrency is defined as the percentage of the total number of users on a server that are connected and using the server at a given peak period of time. Concurrency is difficult to measure since users may use multiple clients/devices and different versions of Outlook have various connection counts to the server. For a fully utilized server, concurrency is generally in the 75-80% range. The guidance in this article assumes this average concurrency profile.Sizing additional processing capacity for Local Continuous Replication (LCR) Local Continuous Replication (LCR) has all of the Exchange 2007 Mailbox role services as well as the Exchange 2007 Replication Service running on the same server. On an LCR Mailbox server, there is additional processing overhead generated from the Replication Service copying and playing in logs to the target database copy. This additional processing cost is roughly 20% and should be factored in when sizing LCR Mailbox servers. Multi-Role (Mailbox, Hub, CAS) The Multi-Role configuration has similar guidance and limitations as the Mailbox role. To accommodate CAS and Hub Transport utilization on a single server with the mailbox, reduce the 1000 Mailboxes/core calculation based on the Average client profile by 20% (800 Mailboxes/core) when performing rule of thumb sizing for Multi-Role servers. The maximum recommended processor core configuration is listed at 4 for the Multi-Role configuration to indirectly provide guidance on the maximum number of users recommended to be hosted in this scenario. Neither Clustered Continuous Replication (CCR) nor Single Copy Cluster (SCC) support hosting the Hub nor CAS server so a Multi-Role server has to be non-clustered by definition. It is a good idea to cluster Mailbox servers that host thousands of user to ensure patch management and server failures do not have a significant impact on up time. The more users hosted on a Mailbox server the more user "pain" is caused by server downtime. For this reason, the recommended maximum processor core configuration for the Multi-Role server is listed at 4. While the this configuration will perform well up to 8 processor cores, it is not recommended due to the availability concerns outlined above. Memory Configuration Table for Exchange 2007 Once the number of processor cores have been estimated to be required per server role are understood; baseline memory recommendations can be applied. The following table illustrates the Minimum, Recommended and Maximum memory configurations for Exchange 2007 server roles.
Role |
Minimum |
Recommended |
Maximum |
Edge Transport |
2GB/Server |
1GB/Core (2GB minimum) |
16GB/Server |
Hub Transport |
2GB/Server |
1GB/Core (2GB minimum) |
16GB/Server |
Client Access Server (CAS) |
2GB/Server |
2GB/Core (2GB minimum) |
16GB/Server |
Unified Messaging Server (UM) |
2GB/Server |
1GB/Core (2GB minimum) |
4GB/Server |
Mailbox Server |
2GB/Server: Variable based on Storage Group Count. See below |
2GB +2MB to 5MB/mailbox: Variable based on user profile, see Mailbox Memory Recommendation in table below |
32GB/Server |
Multi Role (Hub, CAS, UM, Mailbox) |
4 GB:
also depends on number of storage groups (For information, see later in this topic.) |
8 GB plus from 2 MB to 5 MB per mailbox.
This is variable based on user profile. For more details, see "Mailbox Server Role" later in this topic. |
32GB/Server |
Large Queue Scenarios: Exchange 2007 Edge/Hub Transport servers are designed to handle scenarios where extremely large queues build up (e.g. 1 million messages in a single server queue). Edge/Hub Transport servers hold the queued message recipient information in memory to optimize the SMTP send and message retry operations. When sizing Edge/Hub Transport servers for large queue scenarios, use the following table to estimate the memory requirements:
Memory Factors/Queued Message |
Memory Consumed |
Per Message Overhead |
3KB |
Per Recipient Overhead |
1KB |
User Type |
Mailbox Memory Recommendation |
Light |
2GB + 2MB/Mailbox |
Average |
2GB + 3 ½MB/Mailbox |
Heavy |
2GB + 5MB/Mailbox |
Cost: Based on current memory prices (specifically 4GB DIMMs), it is cost prohibitive to expand the physical memory capacity of a server beyond 32GB. Generally, the cost of physical RAM is linear up to 32GB; beyond this the cost trend is exponential. Beyond 32GB, for many configurations, it is less expensive to add disk drives as opposed to memory. Non-Transactional I/O: The Mailbox server utilizes additional physical RAM by caching more data and thus reducing the database I/O footprint for transactional I/O (I/O that is generated by send/receive/client processing of email). There are several sources of non-transactional I/O generated on the Mailbox server. These include Online Maintenance (e.g. Online Defrag), Offline Maintenance (e.g. offline defrag, database repair operations), Backup/Restore operations, Mailbox Management Processes (e.g. Messaging Records Management (MRM)), All of these operations require database I/O to properly maintain and recover the server. Although Exchange 2007 has reduced transactional I/O significantly; adequate storage performance is still required for proper maintenance of the Mailbox server. For this reason, there is a point of diminishing returns when adding memory to the server. In general, the purpose of adding memory to the Exchange Mailbox server is to reduce the storage requirements (specifically performance) and thus storage cost. Due to non-transactional I/O requirements; the storage requirements of the system may not be significantly reduced by adding server memory beyond 32GB. Cold State Operation: Cold state is defined as the state of the Mailbox server immediately following a server reboot or store.exe process restart. The Database Cache, which is used to cache database read/write operations, is small in size (or "cold") during this period so it has a significantly diminished ability to reduce read I/O operations. As the Mailbox server processes messages, the Database Cache Size grows which increases the effectiveness of the cache and subsequently reduces the I/O footprint of the server. The larger the physical memory size of the server the longer it takes the Database Cache size to reach its optimal size. If the storage is designed/sized for a server with a large amount of physical RAM (>32GB), and the I/O profile of the users assumes an optimal Database cache state (large/warm cache); then the client experience may be compromised due to insufficient disk performance during these "cold state" periods. Similar to the Non-Transactional I/O case; the storage subsystem requirement may be the same for a server that has been populated with 32GB of RAM as a server that has been populated with greater than 32GB of RAM.While the Exchange 2007 Mailbox role will utilize memory greater than 32GB, for the reasons outlined above; 32GB is the maximum recommended memory config and is considered the point of diminishing returns in terms of both cost and performance. Required Minimum Memory Configuration for Mailbox based on the number of Storage Groups The maximum number of Storage Groups configurable in Exchange 2007 has been increased to 50 in the Enterprise Edition (up from 4 with Exchange 2003). This increase provides much greater flexibility in server/storage architecture, but the increase has a significant effect on the memory utilization of the Exchange 2007 Mailbox server so Storage Group count is now a factor in minimum memory configuration for Mailbox and Multi-Role servers. Increasing the number of Storage Groups primarily effects the Database Cache utilization of ESE (Extensible Storage Engine). The ESE Database Cache is used for both read and write activity. Due to the way Checkpointing works, adding a Storage Group effectively increases the amount of the Database Cache used for write activity. This has a positive impact of reducing database write I/O; but if too many Storage Groups are configured on a server with insufficient physical memory, the effectiveness of the database read cache may be reduced which may have an overall negative effect on the performance of the server. For this reason, minimum hardware requirements for Mailbox and Multi-Role uses the following table to provide specific minimum memory requirements based on Storage Group count configured on a per server basis.
Storage Group Count |
Minimum Required Physical Memory |
1-4 |
2GB |
5-8 |
4GB |
9-12 |
6GB |
13-16 |
8GB |
17-20 |
10GB |
21-24 |
12GB |
25-28 |
14GB |
29-32 |
16GB |
33-36 |
18GB |
37-40 |
20GB |
41-44 |
22GB |
45-48 |
24GB |
49-50 |
26GB |
*** This table includes the 2GB minimum memory requirement. Mailbox and Multi-Role Server configurations must meet the requirements outlined in the above table to receive Microsoft support.The minimum physical memory requirements based on SG count closely match our recommendations on memory sizing based on mailbox count and profile (detailed above).
Example 1: A 4000 user Mailbox server with a heavy user profile would calculate out to 22GB of RAM (2048MB+ (4000*5MB)). Based on the above support requirements, the administrator will have the flexibility to use up to 44 Storage Groups. Additional RAM would be required to deploy greater than 44 Storage Groups based on the above supportability requirements. Example 2: A 1000 user Mailbox server with a light user profile would calculate out to 4GB of RAM (2048MB+(1000*2MB)). Based on the above support requirements the administrator will have the flexibility to use up to 8 Storage Groups. Additional RAM would be required to deploy greater than 8 Storage Groups based on the above supportability requirements.Memory Recommendations for Local Continuous Replication (LCR) Local Continuous Replication (LCR) has all of the Exchange 2007 Mailbox role services as well as the Exchange 2007 Replication Service running on the same server. The Exchange 2007 Replication Service will work well on a LCR server based on the provided memory guidance but to ensure that the ESE Database Cache maintains optimal efficiency under LCR, it is recommended to provision an additional 1GB of physical RAM to Exchange Mailbox and Multi-Role servers (above and beyond the memory guidance listed above). Multi-Role (Mailbox, Hub, CAS) Guidance and limitations similar to the Mailbox server role apply to multiple server role configurations. To accommodate the Client Access and Hub Transport server roles on the same server as the Mailbox server role, the recommended base memory configuration is 8 GB. Memory guidance based on mailbox count and profile is the same as the Mailbox server role. The recommended maximum amount of memory is 32 GB. Neither cluster continuous replication (CCR) nor single copy cluster (SCC) supports hosting the Hub Transport or Client Access server roles in a failover cluster. A multiple role server is non-clustered by definition. It is a good idea to cluster Mailbox servers that host thousands of mailboxes to ensure that server maintenance or failures do not have a significant impact on uptime or availability. The minimum memory requirements based on the number of storage groups listed in the preceding table apply to multiple role server configurations, including configurations that contain the Mailbox server role. Server Role "Rule of Thumb" Ratio Recommendations Once optimal server role processor/memory configurations have been finalized, the next logical sizing task is to make a rough prediction of how many server roles of each type are required for your deployment. As with any sizing exercise, every environment is different; so these recommendations should be considered starting points that can then be tailored to specific environments. The recommendations are also based off of Microsoft's own Exchange 2007 deployment with the following characteristics:
User Profile |
Heavy->Very Heavy |
Primary Client (Weekday working hours) |
Outlook 2003/2007 Cached Mode (MAPI/RPC) |
Primary After Hours/Weekend Clients |
Outlook 2003/2007 Cached Mode (RPC/HTTPS) & OWA |
Percentage of user base utilizing AirSync |
25% |
Role Ratio |
Processor Core Ratio Rule of Thumb |
Mailbox:Hub |
7:1 (no A/V on Hub) |
5:1 (with A/V on Hub) |
|
Mailbox:CAS |
4:1 |
- Ratio is a "rule of thumb" and may not be valid for every topology (not a support requirement or hard and fast rule).
- Ratios can change dramatically based on user profiles. E.g. A profile that creates correspondingly more load against the Mailbox role than the Hub role will increase the Mailbox:Hub ratio; and vice versa.
- This guidance follows Microsoft's internal Exchange deployment for Mailbox servers which is based on the ~500 "Heavy" users per processor core.
- Ratio assumes Mailbox role servers are +60% processor utilized during peak period with corresponding processor utilization on Hub or CAS.
- Processors used on Mailbox role and Hub/CAS roles are of same type and speed.
- www.spec.org ratings may be used to rationalize unlike processors/server configurations.
- A minimum of two Hub and two CAS servers should be deployed for redundancy to ensure uninterrupted service in case of planned or unplanned server downtime.
- The Exchange 2007 Management Pack for MOM 2005 SP1 combined with the Performance Troubleshooter, built in to the Exchange 2007 Management Console; can be used to determine when/if a given deployment requires additional Hub, Edge, CAS or Mailbox server roles based on performance. This method can be used to fine tune the server role ratios for a specific deployment.
- Hub ratio rule of thumb where A/V is enabled assumes Forefront A/V with five engines scanning.
- CAS ratio rule of thumb assumes SSL is enabled for all appropriate access protocols.
- Connections/sec
- Messages/sec
- Avg. Message Size
SMTP Connections/Sec |
55 |
% Connections Accepted |
80% |
Avg. Recipients/Msg |
1.25 |
Recipients Rejected/Sec |
3.5 |
SMTP Messages IMF Scanned/Sec |
3.7 |
% SMTP Messages passed IMF Scanning |
80% |
SMTP Messages A/V Scanned/Sec |
3 |
Avg. Message Size |
70KB |
CPU Utilization |
20%** |
** Based on a 2 socket, dual-core AMD Opteron 275 2.2 GHz based server.
- A minimum of two Edge servers should be deployed for redundancy to ensure uninterrupted service in case of planned or unplanned server downtime.
You Had Me at EHLO.