PAE is the added ability of the IA32 processor to address more than 4 GB of physical memory. Microsoft Windows Server 2003, Enterprise Edition, Microsoft Windows Server 2003, Datacenter Edition, Microsoft Windows 2000 Advanced Server, and Microsoft Windows 2000 Datacenter Server, can use PAE to take advantage of physical memory beyond 4 GB. To enable PAE, use the /PAE switch in the Boot.ini file. Newer servers that support hot-add memory and run on the Windows Server 2003 operating system will automatically load the PAE kernel. Additionally, the PAE kernel will be loaded on servers that support hardware-enforced data execution prevention (DEP) and run on the Windows Server 2003 SP1 operating system. This has been a source of confusion in the past as servers were identified as using the PAE kernel even when /PAE was not set in the Boot.ini.
When more physical memory is used on the system, the process of paging memory to the disk increases dramatically, and performance may be negatively impacted. The Windows Server 2003 and Windows 2000 Server memory managers use PAE to provide more physical memory to the operating system. This reduces the need to swap the memory in and out of the page file and results in increased performance. The program itself is not aware of the actual memory size. All the memory management and allocation of the PAE memory is handled by the memory manager independently of the running programs.
The preceding information is valid for programs that run when the /3GB switch is used. A program that requests a large amount of memory is more likely to have more of its memory remain in physical memory rather than be paged out. This increases the performance of programs that are capable of using the /3GB switch. The exception is when the /3GB switch is used with the /PAE switch. In this case, the operating system does not use any memory in excess of 16 GB. This behavior is caused by kernel virtual memory space considerations. Thus, if the system restarts with the /3GB entry in the Boot.ini file, and the system has more than 16 GB of physical memory, the additional physical RAM is not used by the operating system. Restarting the computer without the /3GB switch enables the use of all the physical memory.
Note: |
|---|
|
Windows Server 2003, Enterprise Edition and Windows Server 2003, Datacenter Edition automatically enable PAE only if the server is using hot-add memory devices. In this case, you do not have to use the /PAE switch on a system that is configured to use hot-add memory devices. In all other cases, you must use the /PAE switch in the Boot.ini file to take advantage of memory over 4 GB.
|
As you add more memory to a server, the requirements for kernel resources are increased. For example, system PTEs track virtual to physical memory address locations. The more physical memory you have, the more system PTEs will be used, thus resulting in less free system PTEs. Newer servers come preconfigured with 6 GB or 8 GB of memory. As a best practice, for servers dedicated to Exchange, you should consider removing memory over 4 GB or limiting the memory recognized by the operating system with the /MAXMEM switch in the Boot.ini file. If you do not do this, not only will the memory be wasted, but it could lead to further instability due to kernel memory resource constraints.
To determine whether the PAE kernel is loaded when the computer starts, you can view the following registry subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PhysicalAddressExtension
If the PhysicalAddressExtension DWORD value is set to 00000001, the PAE kernel is loaded when the computer starts. This key is set by the operating system at startup. Users cannot configure this parameter.
Until recently, it was a best practice to disable PAEs with the /NOPAE switch on Exchange servers where the /3GB switch was set. This recommendation existed because Exchange Server 2003 or Exchange 2000 Server had not been tested with the PAE kernel, nor was the PAE kernel necessary on an Exchange server. New hardware and software capabilities now require the PAE kernel to be loaded. For example, servers with Lindenhurst or Twincastle chipsets require the PAE kernel to be loaded, otherwise not all installed memory will be recognized. In another example, Windows Server 2003 SP1 supports hardware-enforced DEP. This functionality cannot be enabled if the PAE kernel is not loaded.
As a result of testing by the Exchange Server product team, it is now a best practice to allow the PAE kernel to load on an Exchange server. Therefore, the /NOPAE switch is no longer necessary unless you are troubleshooting a specific issue where the PAE kernel is suspected as a contributory factor. On some servers running Windows Server 2003 SP1, the /NOPAE switch may be ineffective because hardware-enforced DEP, which is enabled with the /NoExecute switch, will override this instruction to disable PAE. If required, the /Execute switch can be used to disable the PAE kernel. For a description, see Microsoft Knowledge Base article 900524, "How to prevent the PAE kernel from loading in Windows Server 2003 with Service Pack 1 or in Windows XP with Service Pack 2."