In normal circumstances Exchange 2013 is designed to use as much memory as possible for performance optimization. As long as Exchange 2013 is running on it’s own, there’s no problem with that. The issues can arise in Windows 2012 environments, where there is a SQL server installed alongside Exchange 2013 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 the ADSI Edit or click Start -> Run and type 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 known 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 -> -> Administrative Groups > -> Servers -> -> InformationStore
Right click Information Store and scroll down to the parameter msExchESEParamCacheSizeMax and set the value according to your requirements.
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