How Much Memory is Too Much?
Written by Brett Callow on April 3, 2009“The more the better,” is a common mantra when it comes RAM but, in the case of Exchange Server 2007, that’s certainly not the case (OK, so it isn’t really the case in relation to other operating systems either, but that’s for another story).
With Exchange Server, Microsoft recommend no more than 32 GB of RAM. That’s because a) more than 32 GB will not substantially improve performance (and so you’d be wasting your money) and b) it may actually negatively impact performance. Here’s why (from Microsoft):
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.
So, does this mean that you need to put exactly 32 GB of memory into your Exchange Server in order to derive the best performance from it? Nope, it most certainly does not. Adding up to 32 GB wouldn’t degrade performance, but it wouldn’t necessarily improve performance either – and so you’d be wasting your money. The optimal amount of RAM that you’ll want to put into your Exchange Server will depend on its role, but here’s how you’d work it out for a mailbox server. The first thing to do is to grab a copy of the Microsoft Exchange Server Profile Analyzer and work out whether you have “light” users, “average” users or “heavy” users (no, that doesn’t mean that you need to weigh Big Bertha in accounts, it simply means you need to work out how many messages she – and the other users – send and receive on average). Armed with that information, you can then work out how much memory you need as follows:
2 GB + 2 MB per user (light users) = Total memory needed
2 GB + 3 MB per user (light users) = Total memory needed
2 GB + 5 MB per user (light users) = Total memory needed
So, for example, if you were to have 1000 light users, you’d want 4 GB of RAM (2 GB + (1000 x 2 MB). Additional memory would be needed if you need to create more than 8 Storage Groups (which is the maximum that 4 GB will support).
For more detailed information, see Microsoft’s Exchange 2007 Processor and Memory Recommendations.


