Limitare l'utilizzo di memoria in Exchange 2010 (SBS 2011)

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.

ADSI Edit -> Connect To

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.

ADSI Edit -> Information Store Settings

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:

Exchange 2010:

Min – 1GB: msExchESEParamCacheSizeMin = 32768

Max – 4GB: msExchESEParamCacheSizeMax = 131072

Exchange 2007:

Min – 1GB: msExchESEParamCacheSizeMin = 131072

Max – 4GB: msExchESEParamCacheSizeMax = 524288