The database cache size is not set to the recommended value
[This topic is intended to address a specific issue called out by the Exchange Server Analyzer Tool. You should apply it only to systems that have had the Exchange Server Analyzer Tool run against them and are experiencing that specific issue. The Exchange Server Analyzer Tool, available as a free download, remotely collects configuration data from each server in the topology and automatically analyzes the data. The resulting report details important configuration issues, potential problems, and nondefault product settings. By following these recommendations, you can achieve better performance, scalability, reliability, and uptime. For more information about the tool or to download the latest versions, see "Microsoft Exchange Analyzers" at http://go.microsoft.com/fwlink/?linkid=34707.]
Topic Last Modified: 2009-04-07
On Microsoft Exchange Server 2007 computers that are running the Hub Transport role or the Edge Transport role, the Microsoft Exchange Analyzer Tool examines the amount of installed RAM together with the DatabaseMaxCacheSize value.
If the following conditions are both true, Exchange Analyzer generates a Best Practice message that contains the following information:
The installed RAM is 4 gigabytes (GB) or more.
The DatabaseMaxCacheSize parameter is not set to 512 megabytes (MB).
This message represents a change in the recommendation for the database maximum cache size.
By default, Exchange 2007 has a transport database cache size of 128 MB. Although this size may be sufficient for typical usage, a maximum database cache size of 128 MB may be insufficient on a Hub Transport or Edge Transport server that experiences higher than typical message rates or that experiences unexpected messaging loads. To better allow for cache growth, we recommend that the DatabaseMaxCacheSize value be increased from 128 MB to 512 MB on transport servers that have 4 GB or more of RAM.
The Microsoft Exchange Transport service uses the Extensible Storage Engine (ESE) for mail transport functionality. This feature provides the following benefits over earlier versions of Exchange, which use the NTFS file system for mail transport functionality:
It improves performance. The ESE first writes transactions to log files and to RAM. Then, the ESE writes the transactions to the database file.
It increases transactional integrity of data that is stored in the queue.
All messaging queues are held in a single location, the transport mail queue database. In Exchange 2003, mail could be stored in two locations during processing: the file folder structure and the local information store.
Although the Mailbox server role dynamically increases the ESE cache size, the Hub Transport or Edge Transport roles do not dynamically increase the ESE cache size. Instead, by default, the ESE cache has a maximum size of 128 MB. This value is set in the DatabaseMaxCacheSize parameter in the EdgeTransport.exe.config file.
The Exchange 2007 resource monitor tracks the number of used version buckets that are currently stored in memory. When the number of used version buckets exceeds the thresholds that are specified in the EdgeTransport.exe.config file, the resource monitor logs event ID 15004. This event indicates that the server is experiencing resource back pressure. A back pressure event is a staged process in which the following behavior occurs:
When the first threshold is reached, the transport server tries to block new incoming SMTP messages.
When the second threshold is reached, the transport server prevents new Mailbox server connections. This is to allow the transport server time to try to clean uncommitted transactions from memory and to put the transactions into the queue database file.
The version bucket thresholds have the following default values:
|Exchange version||Medium threshold||Maximum threshold|
Exchange 2007 RTM
Exchange 2007 SP1
We recommend that you do not increase these values to try to work around a back pressure situation. Increasing these values may affect server availability.
To improve performance by using version buckets and to allow for increased database cache growth, increase the DatabaseMaxCacheSize value from 128 MB to 512 MB on Hub Transport or Edge Transport servers that have 4 GB or more of RAM.
To increase the DatabaseMaxCacheSize value in Exchange 2007
Log on to the Hub Transport or Edge Transport server.
Start Windows Explorer, and then locate the following folder:
In the details pane, open the EdgeTransport.exe.config file by using a text editor such as Notepad.
Locate the DatabaseMaxCacheSize parameter. To do this, press CTRL+F, type databasemaxcachesize in the Find what box, and then click Find Next. The parameter appears as follows:
<add key = "DatabaseMaxCacheSize" value="134217728" />
Replace the value with 536870912. The parameter should appear as follows:
<add key = "DatabaseMaxCacheSize" value="536870912" />
Save the changes to the EdgeTransport.exe.config file, and then restart the Microsoft Exchange Transport service. To restart the service, follow these steps:
Click Start, click Run, type cmd, and then click OK.
At the command prompt, type net stop msexchangetransport && net start msexchangetransport, and then press ENTER.
For More Information
For more information about back pressure, see "Understanding Back Pressure" (http://go.microsoft.com/fwlink/?LinkId=148183).
For more information about transport server storage, see "Transport Server Storage Design" (http://go.microsoft.com/fwlink/?LinkId=148185).
For more information about database cache size, see the Microsoft Exchange Team Web blog, "New maximum database cache size guidance for Exchange 2007 Hub Transport Server role" (http://go.microsoft.com/fwlink/?LinkId=121590).