Topic Last Modified: 2006-02-13

The Microsoft® Exchange Server Analyzer Tool includes a performance data collection engine that is used to query performance counter objects on computers that are running Exchange 2000 Server or Exchange Server 2003. The performance data collection engine collects data from the DataBase Cache Size (DBCacheSize) performance counter of the DataBase performance object to analyze performance data.

The DataBase Cache Size (DBCacheSize) performance counter represents the current cache size used by the store. If the Exchange Server Analyzer finds that the value of the DataBase Cache Size (DBCacheSize) performance counter to be larger than 307200 (1.2 GB), the Exchange Server Analyzer displays an error.

This error indicates that value of the msExchESEParamCacheSizeMax attribute for the Microsoft Exchange Information Store (MSExchangeIS) object has been increased beyond the maximum recommended value of 307200 (1.2 GB).

The store database cache is also referred to as the ESE (Extensible Storage Engine) buffer. It caches database transactions before they are committed to the database.

In Exchange 2000 Server, a large area of the virtual memory used by Store.exe is allocated for the ESE Buffer. Exchange 2000 Server uses a hard-coded default of 858 megabytes (MB) for this buffer. In Exchange Server 2003, the ESE buffer allocation is based on the presence of the /3GB switch in the Boot.ini file. If the /3GB switch is present, the ESE buffer is tuned to 896 MB. If /3GB is not present, the ESE buffer is tuned to 576 MB. Although auto-tuning is always good, you may want to override the auto-tuning and manually set a value more appropriate for your environment.

Although you can tune this value to any number in such a way that the actual memory allocated is a multiple of 8,192 bytes, it is recommended that you use only a value from the following table.

Recommended Value Memory Allocated Comments

147456

576 MB

This is the recommended minimum. Do not set the value any lower. This value is useful on virtual memory-constrained servers, and on Exchange Server 2003 computers that run on Microsoft Windows® 2000 Server. This does not support the /3GB switch. This is also the default value on systems that do not use the /3GB switch.

196608

768 MB

This value is recommended on servers that have lots of virtual memory and log event 9582 frequently.

219726

858 MB

This is the default value in Exchange 2000 Server. It is a good value to use on systems you are upgrading in-place that have lots of virtual memory.

229376

896 MB

This is the default value in Exchange Server 2003, and a good value to use on new systems unless your Application event log indicates otherwise with the presence of 9582 events.

307200

1.2 GB

This is the maximum value that you can set. This value should only be used on systems with 2 gigabytes (GB) or more of physical memory.

Before you reconfigure this value, you should monitor the amount of virtual memory consumed by the Store.exe process. You can do this by monitoring the Process performance object in Microsoft Windows. On systems with the /3GB switch, the Virtual Bytes counter for the Store.exe instance of the Process object should be less than 2.8 GB. On systems without the /3GB switch, the Virtual Bytes counter for the Store.exe instance of the Process object should be less than 1.8 GB. If the values are more than these amounts, you may have to decrease the value for msExchESEParamCacheSizeMax. If the values are less than this, you may want to increase the value for msExchESEParamCacheSizeMax.

Caution:
If you incorrectly modify the attributes of Active Directory® objects when you use Active Directory Service Interfaces (ADSI) Edit, the LDP (ldp.exe) tool, or another Lightweight Directory Access Protocol (LDAP) version 3 client, you may cause serious problems. These problems may require that you reinstall Microsoft Windows Server™ 2003, Exchange Server 2003, or both. Modify Active Directory object attributes at your own risk.
To tune the msExchESEParamCacheSizeMax attribute
  1. Open an Active Directory editor, such as ADSI Edit.

  2. Double-click the Configuration container.

  3. Expand CN=Services.

  4. Expand CN=Microsoft Exchange.

  5. Expand CN=<Exchange Organization Name>.

  6. Expand CN=Administrative Groups.

  7. Expand CN=<Administrative Group Name>.

  8. Expand CN=Servers.

  9. Expand CN=<Exchange Server Name>.

  10. Right-click CN=InformationStore, and then click Properties.

  11. In the attributes field, scroll to and then double-click msExchESEParamCacheSizeMax.

  12. In the Value field, type the value that you want to set. Use the table to determine the optimal value for your system.

  13. Click OK, and then click OK again.

  14. Close the Active Directory editor, and then restart the Microsoft Exchange Information Store service for the change to take effect.

For more information about optimizing memory usage, see "Optimizing Memory Usage for Exchange Server 2003" in Planning a Microsoft Exchange Server 2003 Messaging System (http://go.microsoft.com/fwlink/?LinkId=47584).

For more information about the msExchESEParamCacheSizeMax attribute, see Microsoft Knowledge Base article 266768, "How to modify the Store Database maximum cache size in Exchange 2000 Server" (http://go.microsoft.com/fwlink/?linkid=3052&kbid=266768).