A. Believe it or not, this is a feature—and a good one! When transactions occur, Exchange Server immediately applies them in two places: the transaction log and the in-memory copy of the database. When the server load permits, the in-memory version of the database is written back to disk. This boosts transaction performance, but it requires that many database pages be held in RAM. On top of that, the store service is smart enough to cache database pages for reading, too.
Exchange Server 5.0 and Exchange Server 4.0 use a fixed amount of RAM for these caches. That's why it's so important to rerun the Performance Optimizer when you add or remove RAM; the store service in these Exchange Server versions doesn't have any way to dynamically adjust its RAM usage. Exchange Server 5.5 introduced a new feature called dynamic buffer allocation (DBA). DBA does what its name says: It continuously adjusts the amount of RAM that the store uses. DBA is actually pretty sophisticated; it initially grabs as much RAM as it can and watches how the OS and other BackOffice applications use RAM. DBA releases chunks of RAM as other applications need it. When the other applications release some of their RAM, DBA grabs it for Exchange Server again.
Bottom line: Under Exchange Server 5.5, you may see the store.exe process using lots of RAM. Don't worry—this is a normal and beneficial condition.
This item first appeared in Exchange Administrator (December 1998).