Pages

Search This Blog

Wednesday, September 26, 2012

OMG !! Store.exe is memory insatiable

Few days ago , I was working with one of our customers for a minor support incident ; while working he informed that the performance of the server is low so he checked the status from Task Manager and noticed that Store.exe process is consuming around 11 GB of server’s memory !!

image

I advised him that for Exchange 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 ( A default behavior since Exchange 5.5 ) and hence , this is a feature, not a bug . Exchange will use as much memory as it can for store.exe to optimize performance, another service runs and need some of the RAM itself then exchange will release some. ( You can read more about this here )

The default amount of consumed memory ( cache ) by Store.exe for Exchange 2010 mailbox server are listed below ( With my customer case highlighted ) :

Server physical memory (RAM)

Database cache size: (Mailbox role only)

Database cache size: Multiple-role (for example, Mailbox + Hub Transport)

2 GB

512 MB

Not supported

4 GB

1 GB

Not supported

8 GB

3.6 GB

2 GB

16 GB

10.4 GB

8 GB

24 GB

17.6 GB

14 GB

32 GB

24.4 GB

20 GB

48 GB

39.2 GB

32 GB

64 GB

53.6 GB

44 GB

96 GB

82.4 GB

68 GB

128 GB

111.2 GB

92 GB

You can read more about Mailbox database cache and its enhancements with Exchange 2010 Here

Although it is not advisable , but If you want , you can limit the amount of memory that Exchange uses for store.exe process by following the below steps to limit the database cache size :

  • Open ADSIEdit snap-in and navigate to :

Configuration > Services > Microsoft Exchange > <”Organization Name”>  > Administrative Groups > <”Administrative Group”> > Servers > <”Server Name”> > InformationStore

image

  • Right click “CN=InformationStore” ,click properties and edit msExchESEParamCacheSizeMax. Set it it to the number of pages to maximize the Database Cache to .

image

Note that Exchange 2007 works with 8 KB pages and Exchange 2010 with 32 KB pages , here is an example for calculations :

    • To assign 4 GB of memory as maximum database cache size :
      • For Exchange 2007 : ( 4 x 1,024,000 ) KB / 8 = 512,000
      • For Exchange 2010 : ( 4 x 1,024,000 ) KB / 32 = 128,000
    • The value must be entered as a string without any commas or period [ 512000 and 128000 ]

image

  • Restart the Microsoft Exchange Information Store service for the change to become effective Winking smile