Mystery Behind High Memory Utilization by store.exe on Exchange Server

Being Exchange administrator you might get in situation where someone points out why Exchange server consuming all available memory on server. So here is explanation for the same.

This is normal behavior and it is by design in Exchange 2010. This is designed to give better performance to outlook clients.

Store.exe or ESE allocate as much data in memory address space as possible. If another process need more memory then store.exe release it as required.

This is handled by msExchESEParamCacheSizeMax key. By default it is not set so store.exe can allocate the memory it needs dynamically. ESE (store.exe) will grow the cache to consume almost all available RAM on the server if there is no other memory pressure on the system. This much larger database cache size results in greatly reduced disk I/O. If memory pressure occurs, as when other applications request/require memory, ESE will appropriately shrink the size of the database cache.

To check msExchESEParamCacheSizeMax key follow below steps:
Open ADSIEDIT –> Select Configuration –> Services –> Microsoft Exchange –> Administrative group –> Exchange Administrative group –> Servers –> [Select Server] –> Information Store properties

Figure 1: Parameters of Memory Usage

Note: Microsoft don’t recommend to modify msExchESEParamCacheSizeMax key as this can cause performance issue on server.