[
This topic's current status is: Editing.]
Applies to: Exchange Server 2010
Topic Last Modified: 2009-10-19
There are many factors to consider when selecting hardware for use by Microsoft Exchange 2010. Three of the most critical factors to consider are choice of processor, amount of memory, and selection of storage. This topic provides guidelines for memory configurations that provide good performance and a strong platform for Exchange Server. For detailed guidance and recommended configurations for processors, see Understanding Processor Configurations and Exchange Performance.
When selecting hardware for Exchange 2010, we recommend that you consider the 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 most cost-efficient maximum memory configuration for your servers:
-
Memory speed Some server architectures require slower memory to scale the memory to dozens of gigabytes in a specific server. For example, maximum server memory is limited to 16 GB with PC3200 or 32 GB using PC2700. You should check with the manufacturer to ensure that the memory configuration target for Exchange 2010 is compatible in terms of speed.
-
Memory module size Consider the largest memory module size that the server will support. Generally, the larger the memory module, the more expensive. For example, two 1 GB DDR SDRAM memory modules generally cost much less than one 2 GB DDR SDRAM memory module. Make sure the maximum memory module size allows you to meet your target memory requirements for Exchange 2010.
-
Total number of memory slots Consider how many memory modules that a specific server will support. The total number of slots multiplied by the maximum memory module size provides the maximum memory configuration for the server. Keep in mind that memory modules must sometimes be installed in pairs.
One caveat with this planning method is that some servers experience a performance improvement when more memory slots are filled, while others experience a reduction in performance. Check with your hardware vendor to understand this effect on your server architecture.

Recommended Memory Configurations
After the number of processor cores estimated to be required per server role is understood, baseline memory recommendations can be applied. The following table illustrates the minimum, recommended, and maximum memory configurations for Exchange 2010 server roles.
Note: |
|---|
|
Our recommended memory configuration for the server roles below are a best practice. For servers running more than 8 cores, increasing the memory to greater than 16GB does not greatly improve performance.
|
Memory configurations for Exchange 2010 servers based on installed server roles
|
Exchange 2010 server role
|
Minimum per server
|
Maximum per server
|
Recommended
|
|---|
|
Edge Transport
|
4 GB
|
16 GB
|
1 GB per core (4 GB minimum, 8 GB maximum)
|
|
Hub Transport
|
4 GB
|
16 GB
|
1 GB per core (4 GB minimum, 8 GB maximum)
|
|
Client Access
|
4 GB
|
16 GB
|
2 GB per core (2 GB minimum, 8 GB maximum)
|
|
Unified Messaging
|
4 GB
|
16 GB
|
2 GB per core (4 GB minimum, 8 GB maximum)
|
|
Mailbox
|
4 GB
|
64 GB
|
4GB plus 2-10MB/mailbox:
Variable based on user profile, see Mailbox Memory Recommendation in table below
|
|
Multiple roles (combinations of Hub Transport, Client Access, and Mailbox server roles)
|
8 GB
|
64 GB
|
8GB plus 2-10MB per mailbox.
This is variable based on user profile. For more details, see "Mailbox Server Role" later in this topic
|
Important: |
|---|
|
The chart above contains recommendations based on the new Exchange 2010 feature, RPC Client Access. This feature requires a larger memory and processor configuration to manage the increase loads placed on the Client Access server role. The RPC Client Access feature is enabled by default.
|

Edge Transport and Hub Transport Server Roles
The Edge Transport and Hub Transport server roles do not require substantial quantities of memory to perform well in optimal conditions. Generally, 1 GB of RAM per processor core (2 GB minimum total) is sufficient to handle all but the most demanding loads. Most deployments will be optimally configured with the recommended memory configuration of 1 GB per processor core (2 GB minimum total).

Client Access Server Role
In general, memory utilization on Client Access servers has a linear relationship with the number of client connections and the transaction rate. Based on the current recommendations for processor and memory configurations, a Client Access server will be balanced in terms of memory and processor utilization, and it will become processor bound at approximately the same time it becomes memory bound. For the majority of deployments, 8GB (2GB/core) is sufficient and recommended for CAS operations. Large scale deployments, which utilize RPC/HTTP (Microsoft Office Outlook Web App) as the primary client access type; should consider 2GB/core or 16GB max recommended. This is because the Client Access Server only proxies Outlook client requests to the Mailbox server and the memory footprint per client connection is much more of a factor than the processor utilization per connection.
These recommendations are based on the Exchange 2010 feature, RPC Client Access. This feature requires a larger memory and processor configuration to manage the increase loads placed on the Client Access server role.

Mailbox Server Role
The memory configuration process for the Mailbox server role is more complex than the other roles because the optimal memory configuration depends upon the mailbox count and the client profile (similar to estimating processor core requirements). Memory sizing for the Mailbox server role is critical to reducing disk input/output (I/O) on the server. The more memory you add to the Mailbox server, the less disk I/O that will be generated by Exchange. There is, however, a point of diminishing returns at which adding memory to the server may not be justifiable based on price and performance. The memory recommendations outlined in this section consider this point of diminishing returns, and are based on current memory prices and performance metrics.
Defining the memory configuration of a Mailbox server is required prior to defining the storage requirements and configuration for that server. You can use the following table to estimate the memory requirements of a database cache depending on email messages sent and received per day. For more information, see Understanding Database Cache.
|
Message Profile
|
Messages Sent/Received per day (75KB message size)
|
Database Cache per mailbox (MB)
|
|---|
|
50
|
10 sent/40 received
|
3
|
|
100
|
20 sent/80 received
|
6
|
|
150
|
30 sent/120 received
|
9
|
|
200
|
40 sent/160 received
|
12
|
|
250
|
50 sent/200 received
|
15
|
|
300
|
60 sent/240 received
|
18
|
|
350
|
70 sent/280 received
|
21
|
|
400
|
80 sent/320 received
|
24
|
|
450
|
90 sent/360 received
|
27
|
|
500
|
100 sent/400 received
|
30
|

Sizing and Memory Recommendations
You can use the following table to estimate the memory requirements of a specific Mailbox server on a given node in a DAG. These recommendations are based on single node failures for small DAG’s (2 - 3) and double node failures for large DAG’s (4+). When you are configuring memory based on these two tables, always make sure to configure for max memory. For example, if mailbox size is +10GB, then you would size with 10MB of memory.
Mailbox sizing and memory recommendations
|
Mailbox Size
|
Memory
|
|---|
|
0 - 1GB
|
2MB
|
|
1GB - 3GB
|
4MB
|
|
3GB - 5GB
|
6MB
|
|
5GB - 10GB
|
8MB
|
|
+10GB
|
10MB
|

Recommended Maximum Memory Configuration for Mailbox Servers
Recent x64-based servers have the ability to scale their memory configuration to 64 GB and beyond. There are several reasons why we do not recommend maximum memory configurations beyond 64 GB for Mailbox servers, including cost, the impact of non-transactional disk I/O, and cold state operations:
-
Cost Based on current memory prices, specifically the current average price of 4-GB dual in-line memory modules (DIMMs), it is cost prohibitive to install more than 64 GB on a single Mailbox server. Generally, the cost of physical RAM is linear up to 64 GB. Beyond 64 GB, the cost trend is exponential, and for many configurations, it is less expensive to add disk drives instead of memory.
-
Non-transactional disk I/O The Mailbox server utilizes additional physical RAM by caching more data, which reduces the database disk I/O footprint for transactional disk I/O (I/O that is generated by client activity). There are several sources of non-transactional disk I/O on the Mailbox server. These include online maintenance (for example, online database defragmentation); offline maintenance (for example, offline database defragmentation or database repair operations); backup, restore, or recovery operations; and mailbox management operations. All of these operations require disk I/O to properly maintain the server. Although Exchange 2010 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 Mailbox server is to reduce the disk I/O requirements, which in turn reduces the overall cost of the storage solution. Due to non-transactional I/O requirements, the storage requirements of the server may not be significantly reduced by adding more than 64 GB of memory.
-
Cold state operation Cold state is defined as the state of the Mailbox server immediately following a server restart or a restart of the Microsoft Exchange Information Store service. The database cache, which is used to cache read/write operations, is small in size (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, increasing the effectiveness of the cache and subsequently reducing disk I/O on the server. The more physical memory in the server, the longer it takes the database cache to reach its optimal size. If the storage solution is designed and sized for a server with a large amount of physical RAM (greater than 64 GB), and the disk I/O profile of the users assumes an optimal database cache state (for example, a large, warm cache), the client experience may be compromised due to insufficient disk performance during the cold state periods. Similar to the issue of non-transactional I/O, the storage requirements may be the same for a server with 64 GB of memory as a server with more than 64 GB of RAM. On a properly configured Mailbox server, it should take about 15 minutes to reach the optimal cache state after a cold operation has occurred.
Although the Mailbox server role will utilize memory greater than 64 GB, for the reasons outlined earlier, 64 GB is the maximum recommended memory configuration and is considered the point of diminishing returns in terms of both cost and performance.

Multiple Server Roles
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 64 GB.