How to limit Exchange 2010 memory usage
Came across sites recently where the information store process on an SBS 2011 box tends to take most of the available memory. In normal circumstances Exchange 2010 is designed to use as much memory as possible for performance optimization. As long as Exchnage 2010 is running on it’s own, there’s no problem with that. The issues can arise in SBS 2011 environment, where there is SQL 2008 R2 installed alongside Exchnage 2010 and SQL has similar optimization built in. As a result the performance of the system could degrade by time and requires restart of Exchange/SQL services or rebooting the whole system.
To avoid this problem, you can limit the amount of memory Exchange is using. Start by opening ADSIedit – either click Start -> ADSIedit.msc, or navigate to Start -> All Programs -> Administrative Tools -> ADSI Edit.
Right click the root of the tree view on the left and select Connect To. . . On the Connection Settings screen select the Select a well knowb Naming Context option and from the drop down list choose the Configuration option.
Once connected to the Configuration Naming Context, navigate to the following item:
Configuration -> Services -> Microsoft Exchange -> ”Organization Name” -> Administrative Groups > ”Administrative Group” -> Servers -> ”Server Name” -> InformationStore
Right click Information Store and scroll down to msExchESEParamCacheSizeMax attribute and set the value according to your requirements.
Please note that Exchange 2007 works with 8kB pages and Exchnage 2010 works with 32kB pages. So if you want to limit the size of memory used to 4GB, you will need the following calculations:
Exchange 2007: 4 GB = 4.194.304 KB / 8 KB => 524288
Exchange 2010: 4 GB = 4.194.304 KB / 32 KB => 131072
If you have confirmed you have the correct numbers, you can click OK to save the settings and restart Microsoft Exchange Information Store service for the changes to take effect.
UPDATE: As it turns out, setting the msExchESEParamCacheSizeMax size only doesn’t seem to be sufficient. The limit has been actually applied only when the msExchESEParamCacheSizeMin size was set as well. In our example the values would be set as follows:
Min – 1GB: msExchESEParamCacheSizeMin = 32768
Max – 4GB: msExchESEParamCacheSizeMax = 131072
Min – 1GB: msExchESEParamCacheSizeMin = 131072
Max – 4GB: msExchESEParamCacheSizeMax = 524288