We usually receive questions that Exchange service (store.exe) is using most of the memory on a mailbox server.
The behavior you see on the mailbox servers for store.exe is completely normal. This is in order to allocate as much data in memory address space as possible, so that each user experience great performance in their Outlook clients.
If another process should need the more memory, the Exchange store.exe process will released it as required. This is by design.
By default, the msExchESEParamCacheSizeMax key is not set, which means the store 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 For example, if the server contains 16gb physical memory, if there is no other memory pressure, one could expect that the store.exe process will grow to use up to 14gb memory (16gb minus 2gb allocated to Kernel mode). This much larger database cache size results in greatly reduced disk I/O, and is preferred anyways, as reading information from memory is much faster than reading information from disk. If memory pressure occurs, as when other applications request/require memory, ESE will appropriately shrink the size of the database cache. It’s not recommended to modify the msExchESEParamCacheSizeMax attribute of the information store object. Lowering this value may degrade performance, in terms of server performance as well as in terms of end-user experience.