Set Exchange 2007 / 2010 Memory limit
I don’t know if you’ve noticed but Exchange 2007 and 2010 use as much memory as is available in your server, I’m not sure about you but I don’t like that. Microsoft “say” that it’s dynamic and that Exchange will share and give back memory to any service or program that requires it, I’m not 100% convinced by that as I can certainly see the performance drop when it’s using all memory resources and a performance increase after restarting the Information Store Service. So…. how do we set this so we don’t have to keep on restarting the service, or Server??
Using our old friend adsiedit now please be aware (if you’re not already) that adsiedit is very low level and very powerful. You can’t save it or export it and so if you don’t know what you’re doing you can end up doing some real damage here. You have been warned.
So back on track, first we need to open adsiedit
Using ADSIEDIT, go to: Start Menu – Administrative Tools – Adsi Edit (Or Type adsi edit in the search at the bottom)
Once adsi edit opens you’ll probably be presented with…. not a lot (if it’s your first time opening it) so we need to connect to something.
Right click ADSI Edit and go to Connect to…
This window will appear, we need to connect to the Configuration to do what we need to do, so Select it from the Naming Context drop down list and click Ok.
Ok, so now we get to the heart and sole of the server…
From here we need to drill quite a way down to find the Information Store To get there, expand the following:
Configuration > Services > Microsoft Exchange > DomainName > Administrative Groups > Exchange Administrative Group > Servers > Servername
Click on your Servername and right-click Information Store and go to properties. Once the properties window opens find:
msExchESEParamCacheSizeMin and msExchESEParamCacheSizeMax – These are the two you need to edit.
Below are some of my recommendations, depending on how much memory you have available, services your running and your situation these can be whatever you want so long as you’ve done your maths right. (The maths are different between Exchange 2007 & 2010)
For Exchange 2010
1Gb – 32768
4Gb – 131072 (probably good for Min)
6Gb – 196608
8Gb – 262144 (probably good for Max)
12Gb – 393216
Exchange 2007:
1GB – 131072
2Gb – 262144 (probably good for Min)
4Gb – 524288
6Gb – 786432 (probably good for Max)
8Gb – 1048576
Restart the Store Service and run an iisreset in an elevated prompt otherwise the exchange management console breaks afterwards…
Bear in mind that you have to set Both the Min and the Max Cache size for this to take effect, not just one or the other. Once that’s done you just need to restart the Information store service, or restart the server.
Hope this gets you out of a sticky quibble.
Nice one thanks for this, we had an exchange eating up memory, this really helped tame the memory usage and now everything is quicker.
Thanks
Exchange 2010 requires an iisreset in an elevated prompt otherwise the exchange management console breaks afterwards…
Maybe it’d be good to update the article if a lot of people are still reading it.
Thanks for the tip, I’ve updated the article.
Yes, I had a weird issue where since I only restarted the Information Store the Management Console was throwing up this weird kerberos error, and, since it was not convenient to restart the whole server I just run an iisreset and that sorted it all out. Don’t know if this is specific to 2010, but it definitely solved the issue otherwise I couldn’t have used the console again until I’d have restarted the server.
Thanks.