Saturday, August 04, 2007

Restricting RAM usage in Exchange 2007

I have seen a number of discussions over the past couple of weeks about how much RAM the Exchange 2007 store.exe uses. On a server with 8GB of RAM, it may well be consuming over 7GB. This is a feature, not a bug. In order to achieve the improvements in disk I/O performance, store.exe (which runs the ESE database engine) consumes as much RAM as it possibly can.

This is great on a production Exchange 2007 Mailbox server with hundreds or thousands of mailboxes. But it can be an annoyance on a server in a classroom, lab, or where you have a small Exchange 2007 combined function server sharing a number of applications. I figured there was not a way to restrict the amount of RAM that Exchange 2007 was consuming, but fellow MVP Henrik Walther pointed out to me that you could restrict the amount of cache just like you could adjust it in Exchange 2003.

Before I proceed with instructions, please take note of this disclaimer: The performance gains you might get by providing Exchange 2007 with sufficient memory may be lost if you restrict the memory to the point that Exchange cannot cache mail data effectively.

To restrict the amount of RAM that Exchange is using, you need to use ADSIEdit (from the Windows 2003 Support Tools) and you need to logon as someone that has permissions to edit the Exchange configuration. Navigate down through the Configuration container as follows, the organization name is Somorita and the server name is HNLEX04:
Configuration -> Services -> Microsoft Exchange -> Somorita -> Administrative Groups -> Exchange Administrative Group (FYDIBHOHF23SPDLT) -> Servers -> HNLEX01 -> Information Store.

Right click on CN=Information Store and choose Properties; locate the msExchESEParamCacheSizeMax property.

I have experimented with a couple of different values. If I set the pages to 73728, then the RAM used is about 656MB, but if I set it to 147456 then the RAM used is about 1,260MB. Please read Microsoft KB article How to optimize memory usage in Exchange Server 2003 for more information on this process, but keep in mind that the page size is 8192 rather than 4096 (which is what it was for E2K3).



At 4:57 AM, Blogger Daniel said...

The ram usage on our exchange 2007 server is fine. The problem is actually virtual memory it is using way more then it should causing errors for low virtual memory and such. Any Ideas?

At 9:19 AM, Blogger felipe said...

daniel did you ever figure out how to fix your virtual memory problem

At 4:39 AM, Blogger slatronica said...

Great article, thanks for the info.

At 9:40 PM, Blogger Sitaram Pamarthi said...

> have experimented with a couple of different values.
>If I set the pages to 73728, then the RAM used is about 656MB,
>but if I set it to 147456 then the RAM used is about 1,260MB

Actually, there is a calculation here. If you want to restrict the size to 10GB. Convert that into KBs(10GB = 10485760 KB) and devide that by 8(10485760/8 = 1310720) and keep that value in msExchESEParamCacheSizeMax.

Reference :

Sitaram Pamarthi

At 9:41 AM, Blogger Francois Lepine said...

Thx very helpfull!


Post a Comment

<< Home