Introduction

Exchange 2003 requires specific memory tuning to function optimally.  This flash outlines Windows 2003 boot.ini configuration settings for Exchange 2003 and highlights recent changes.  See the following KB articles for relevant background information on this topic:

·         CPU and Memory Scalability for Exchange Server 2003 and for Exchange 2000 Server

·         Use of the /3GB switch in Exchange Server 2003 on a Windows Server 2003-based system

·         Using the /USERVA switch on Windows Server 2003-based computers that are running Exchange Server

 

This Flash covers only Exchange 2003/Windows 2003 topologies.

Deployment Guidelines

Exchange 2003 requires Windows 2003 Sp1 or Windows 2003 with security update MS04-032.  Both of these versions contain the fix for a problem described in article 834628 which is necessary for Exchange 2003 to run reliably.  The following table outlines the boot.ini configuration switches that must be added for the given Exchange 2003/Windows 2003 server role:

 

Boot.ini Configuration Matrix:  Exchange 2003 RTM/SP1+ , Windows 2003 RTM/SP1+

 

Exchange 2003 Server Role

Physical Memory Config

Additions made to Boot.ini

Mailbox

> 1 GB**

/3GB /USERVA=3030

 

 

 

Public Folder

> 1 GB**

/3GB /USERVA=3030

 

 

 

Front End (FE)

> 1 GB**

None

 

 

 

SMTP Gateway/Bridgehead

> 1 GB**

None

SMTP Gateway/Bridgehead (Envelope Journaling*)

> 1 GB**

/3GB /USERVA=3030

 

 

 

MTA/X.400/3rd Party Connector Bridgehead*

> 1 GB**

/3GB /USERVA=3030

 

* Envelope Journaling or MTA/3rd Party Connectors send Gateway/Bridgehead email through the Store.exe process so the system benefits from /3GB.

** /3GB and /USERVA=3030 is not used on Exchange servers with less than 1GB RAM

***See KB 823440 for additional details on configuring Windows memory for Exchange 2003.

****Windows may add/require additional boot.ini configuration switches.

*****The above settings are applicable to all Exchange 2003 and Windows 2003 server SKU’s including Standard Editions.

Support Policy/Recommendation Change

There has been significant change to Exchange 2003’s recommended Boot.ini configuration settings.  The following change has been made to Microsoft Exchange 2003 Support Policy.

 

It is recommended and supported to run Exchange 2003 with the PAE (Physical Address Extension) kernel on Windows 2003:  Due to the issue (Hotfix in article 834628)  found in Windows 2003 RTM running the PAE kernel, the fact that Exchange does not take advantage of more than 4GB of memory and the fact that Exchange running on PAE kernels was not initially tested;  the Exchange Product group originally recommended running the /NOPAE switch in the boot.ini to prevent  the PAE kernel from loading.  This decision has been reversed for the following reasons:

 

a.       Windows 2003 SP1 was released:   

·         Windows 2003 Sp1 contains the fix for 834628 so Exchange 2003 is stable running on the PAE kernel.

·         Windows 2003 SP1 contains new security features (Data Execution Prevention (DEP)) which require the PAE kernel.  Exchange 2003 needs to support PAE to take advantage of these new security features.  Windows 2003 SP1 will automatically set DEP specific boot.ini settings to take advantage of DEP capable hardware.

b.      New PCI-Express based server chipsets require PAE to take advantage of all the memory installed on a system (4GB):

Some of the physical address space on server systems is used to provide memory mapping of IO resources on the system chipset. This memory mapped IO (MMIO) space is typically provided below the 4GB address boundary. In a system with 4GB of physical memory this MMIO space pushes a section of physical memory above the 4GB address boundary. If the software running on the server supports only 32-bit physical addressing, it will not look for memory over the 4GB boundary. This results in the OS not providing access to all 4GB of physical memory. The amount of ‘hidden’ memory is equal to the address space taken up by the MMIO.  PCI Express confounds this problem by providing extended PCI configuration space to support such features as Advanced Error Reporting (AER). This means the size of MMIO space required to map the chipset IO resources gets larger. Some early PCI Express chipsets confound the issue further by providing coarse granularity for this mapping which results in a range of 512MB being carved out for MMIO. This results in customers reporting hidden memory of 512MB to 768MB on servers using such chipsets.

c.    The Exchange Product Group tested Exchange 2003 SP1/SP2 on Windows 2003 (/w 834628 ) with the PAE kernel and on Windows 2003 SP1 with PAE and DEP enabled:

·         The Exchange Product Group did not find any issues relating to running on the PAE kernel nor running with DEP enabled (software and hardware enabled).

Additional Resources/Questions

  1. How can the boot.ini configuration be validated in a running environment?  Use the  Exchange Best Practices Analyzer Tool  The tool has been updated to include the support policy change outlined in this Flash.
  2. How should Exchange 2003 memory based performance issues be troubleshooted?  Use the Troubleshooting Exchange Server 2003 Performance whitepaper.
  3. What is Microsoft’s stance on running Exchange on Windows 2000 with PAE?  It is supported but not recommended.  Hotfix 838647 is required for support.  Windows 2000 does not have the security features that require PAE so the only benefit of running PAE on Windows 2000 for Exchange is to enable all memory access on newer PCI-Express based servers.  It is not a well tested scenario so it is not recommended.
  4. Does Exchange utilize more than 4GB of memory if the PAE kernel is loaded?  Exchange will only utilize 4GB of memory regardless of whether the PAE kernel is loaded or not.  The PAE kernel is beneficial (specifically for Exchange) to enable DEP and to see 100% of the physical memory on newer server chipsets.  Memory above 4GB will not be utilized by Exchange.

- The Exchange Team