Blog Post

Exchange Team Blog
3 MIN READ

Why is Exchange Store.exe so RAM hungry?

The_Exchange_Team's avatar
The_Exchange_Team
Platinum Contributor
Aug 02, 2004

This seems to be one of most favorite questions ever: "How come that Exchange Store.exe keeps on grabbing more and more memory, even on the server that is not very busy? Is there a memory leak?". This is many times followed by "I am rebooting my server on the weekly basis to keep store memory consumption in check".

Well, let's see what we have here.

It is absolutely normal for Store.exe to grab as much RAM on the server as it can possibly get - as long as Store thinks it needs it to optimize performance. Store was written to do so. It does this as it wants to do as much stuff in memory as possible, without having to go to the slow page file. It is a common misconception - that Store.exe's increasing memory consumption is a "memory leak". This behavior is expected since Exchange 5.5 days:

182505 XADM: Memory Usage of Store.exe Is Higher in Exchange 5.5
http://support.microsoft.com/?id=182505

That being said:

1. Exchange Store will grab as much RAM as it can if it thinks it needs it, yes. But - we constantly monitor the performance of the system in regards to memory usage and we can use this data to infer when we need more memory and when other applications or the OS needs more memory.  We then use this data to act accordingly. This scheme allows the system to act as if there is explicit control when in fact it is actually a few autonomous applications cooperating in a disconnected manner. That means that we should NEVER see a "out of memory" message by any application on the server because of the Store - unless there is a leak on the server, of course... or the page file is too small. If there was a malfunction in this Store mechanism it would cause a lot of paging.  That is a big performance problem, but shouldn’t cause actual errors.

2. Store memory utilization can go up to 1.2 GB or sometimes even more when viewing through Task Manager. I have not seen it go over 1.5 GB, but it would typically not take more, even if there is 8 GB of RAM in the machine. So - Store taking 1.2 GB is not an indication of the problem all by itself.

3. Exchange Store is not the only product behaving like this... SQL does something very similar, for example. That is one of reasons why we do not necessarily encourage putting SQL and Exchange on the same server, as they will be fighting over whatever RAM is in the server.

All of the above being said, let's go into what can be manifestations of real problems:

- Are there actual performance problems that might be related to store taking up RAM? For example, other services on the server slow down noticeably when store gets "large", events are logged in the application / system log mentioning lack of memory?

- Does client access to the server slow down when Store.exe grabs a lot of RAM?

- Are there any "out of memory" errors on the server at all? Popups when trying to start applications/services on the server?

If not - there is most likely no problem. Again - Store.exe taking up a lot of RAM is NOT a problem on it's own, as the memory can be returned to the OS when needed by other processes. Store is simply taking advantage of the RAM - as it is in the machine :)

One more note - if Exchange 2003 SP1 is applied to the server and you used to monitor Store memory utilization, you could be seeing an increase in memory consumption unless you change the monitoring settings. This is normal and is covered in more detail here:

867628 Monitoring programs report that the Store.exe process consumes
http://support.microsoft.com/?id=867628

- Nino Bilic

Updated Jul 01, 2019
Version 2.0

13 Comments

  • Anonymous's avatar
    Anonymous
    Sorry, just saw teh "capacity planning" part of the questuion - the behavior of Store (taking up more and more RAM if it needs it and if it is available) is not something that you necessarily need to try "compensate" for by adding more RAM to the machine. The process that Store goes through should prevent it from "starving" the OS and other applications on the server - so they have no RAM. So - no matter how much RAM you have on the server (unless it is very small for server application - where you will probably see problems with Exchange or no Exchange) - Store will act accordingly and stop growing after certain point.
  • Anonymous's avatar
    Anonymous
    Thanks for your comment :)

    The truth of the matter is - the 1.5 GB figure is quite extreme. I did see it on very busy servers with 1000s of mailboxes though, and it was not a cause of the problem at all.

    The whole point of this post was to shed some light on this as I have heard people rebooting their servers just because "Store was utilizing XYZ MBs" - so not because there was a performance problem on the server, but because of perception that Store is taking up more RAM than some specific number.

    That in itself is not a problem - so it does not have to be fixed by a reboot. Especially not when there are 4 GBs of RAM in the machine for example (was true in the case where Store took 1.5 GB), and other applications that run on the server can get all the RAM they need.
  • Anonymous's avatar
    Anonymous
    Wow.

    The was the worst thing I've ever read.

    I can't believe you just tried to justify a program eating 1.5GB (thats 1,500,000,000 bytes, you know)..

    If you're car gastank is on empty, do you tell yourself "Is this affecting my driving at all?" or "Is the car still running fine?"

    Just because it isn't affecting anything right now, that doesn't mean you don't have to do something about it!! How is one to do capacity planning - when your application will eat whatever memory it finds???

    Wow. That's just horrible.