Microsoft KB Archive/822180

From BetaArchive Wiki

PSS ID Number: 822180

Article Last Modified on 5/3/2004



The information in this article applies to:

  • Microsoft Exchange Server 2003 Enterprise Edition
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Windows Small Business Server 2003, Premium Edition
  • Microsoft Windows Small Business Server 2003, Standard Edition




SUMMARY

This article discusses virtual memory fragmentation in Exchange 2003. This article also contains information about enhancements that are included in Exchange 2003 that help prevent fragmentation.

MORE INFORMATION

Virtual Memory Fragmentation

When the Exchange 2003 information store process (Store.exe) runs, it uses virtual memory dynamically. Like many large-scale programs, the information store process may experience virtual memory fragmentation because memory is swapped between other processes that are running on the server. Virtual memory fragmentation occurs when the size and the number of the contiguous blocks of available memory reach a certain threshold. This behavior can adversely affect the performance of an Exchange 2003-based server and may prevent databases from mounting. Additionally, if you scale a server to handle more users and a larger load, the server may run low on virtual memory.

Exchange 2003 is designed to use virtual memory regardless of how much physical memory (RAM) is installed on the server. For example, to mount a database you must have a 10-megabyte (MB) block of contiguous virtual memory. If the virtual memory is fragmented in such a way that the size of each free virtual memory block is exactly 10 MB or less, the databases cannot be mounted unless you restart the server. For another example, an Exchange 2003-based server that is running in a clustered environment requires 16 MB of contiguous virtual memory to complete a failover procedure. If 16 MB of contiguous virtual memory is not available, the failover operation does not complete successfully.

Note The information store process is the most memory-intensive process on an Exchange 2003 server.

To Identify Virtual Memory Fragmentation

Virtual memory fragmentation issues are frequently accompanied by the occurrence of event ID 9582 in the Application event log. In some situations, you can safely ignore event ID 9582 messages. However, in situations where a lack of virtual memory occurs, you may experience a severe degradation in performance and receive message processing errors. For example, when threshold levels of virtual memory fragmentation are reached, you may see event ID 9582 warning messages and error messages in the Application event log that are similar to the following messages:

Category: Performance
Event ID: 9582
Type: Warning
Description:
The virtual memory necessary to run your Exchange server is fragmented in such a way that performance may be affected. It is highly recommended that you restart all Exchange services to correct this issue.


Category: Performance
Event ID: 9582
Type: Error
Description:
The virtual memory necessary to run your Exchange server is fragmented in such a way that ordinary operations may start to fail. It is highly recommended that you restart all Exchange services to correct this issue.

Improvements in Exchange 2003 to Prevent Virtual Memory Fragmentation

The following improvements have been made in Exchange 2003 to help prevent fragmentation:

  • In Microsoft Exchange 2000 Server, you can change the size of the database cache that is allocated to the store by modifying the msExchESEParamCacheSizeMax value in the Microsoft Active Directory directory service. In Exchange 2003, the msExchESEParamCacheSizeMax value is dynamically calculated when you use the /3GB switch in the operating system line of the Boot.ini file. The /3GB switch indicates that a large amount of physical memory, such as more than 1 gigabyte (GB), is installed on the server. If the /3GB switch is present in the Boot.ini file, the store database cache is set to 896 MB. If the /3GB switch is not present in the Boot.ini file, the store database cache is set to 576 MB.
  • In situations when virtual memory is running low and the largest available block of free contiguous virtual memory is less than 32 MB, you can schedule downtime to restart or to troubleshoot the server.
  • To optimize memory allocation more on a computer that is running Microsoft Windows Server 2003 and that has more than 1GB of RAM, Microsoft recommends that you make sure that the following entries appear in the operating system line of the Boot.ini file:

    /3GB /USERVA=3030

    Note that you can only use this switch on a Windows Server 2003-based computer. For additional information about the /Userva switch, click the following article number to view the article in the Microsoft Knowledge Base:

    810371 Using the /Userva switch on Windows Server 2003-based Exchange Servers

When virtual memory fragmentation issues persist, you may have to do additional troubleshooting. For additional information about how to gather data to troubleshoot virtual memory fragmentation issues, click the following article number to view the article in the Microsoft Knowledge Base:

317411 XADM: How to gather data to troubleshoot Exchange Virtual Memory issues


Note The following article discusses how to increase the database cache size for performance reasons. In this context, use the article as a reference for steps on how to decrease the database cache size to resolve virtual memory fragmentation.
For additional information about how to modify the store database maximum cache size, click the following article number to view the article in the Microsoft Knowledge Base:

266768 XSTR: How to modify the Store Database maximum cache size



Additional query words: XADM

Keywords: kbtshoot kbinfo KB822180
Technology: kbExchangeSearch kbExchangeServ2003Ent kbExchangeServ2003Search kbExchangeServ2003St kbSBServ2003Pre kbSBServ2003Search kbSBServ2003St kbSBServSearch