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

Article ID : 823440
Last Review : January 28, 2005
Revision : 8.0

SUMMARY

When you install Exchange Server 2003 on a Microsoft Windows Server 2003-based computer that has 1 gigabyte (GB) or more of physical random access memory (RAM) installed, and that is home to mailboxes or public folders, you must edit the Boot.ini file to optimize the virtual memory usage of the Information Store service.

Under typical circumstances and for each process, 2 GB of virtual address space is allotted for the user-mode process, and another 2 GB of virtual address space is allotted to the operating system. When you use the /3GB switch in Windows Server 2003, 3 GB of virtual address space is allotted for the user-mode process, and only 1 GB of virtual address space is allotted to the operating system. This reallocation of the extra 1 GB of address space helps to resolve the problem of memory fragmentation in the Store.exe virtual address space. With the larger address space allocated to Store.exe, memory can be more easily joined before all large memory blocks are used.

After you have installed Windows Server 2003, modify the Boot.ini file, and then add the /3GB and the /USERVA=3030 parameters to the startup line, as in the following example:
[Boot Loader]
Timeout=30 Default=multi(0)disk(0)rdisk(0)partition(2)\WINNT [Operating Systems]
 multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows Server 2003" /fastdetect /3GB  /USERVA=3030

MORE INFORMATION

By default, Windows Server 2003 reserves 2 GB of virtual address space for the kernel, and it permits user-mode processes (such as the Exchange 2003 information store process, Store.exe) to use 2 GB of virtual address space. Virtual address space for a specific process is allocated at startup, and it increases as more memory is used during run time. It is standard for the actual memory usage (working set) of a process to be much less than the allocated address space for that process. On an Exchange 2003 server with more than 1 GB of memory, you must modify Windows Server 2003 so that 3 GB of memory are available for user-mode applications.

Note Make sure that the Store.exe process does not run out of virtual address space. If this behavior occurs, memory allocations fail (even if there is plenty of physical RAM remaining), and you must restart the Microsoft Exchange information store service.

For example, a server with 2 GB of physical RAM that does not have the /3GB switch in the Boot.ini file will run out of memory when the Store.exe virtual address space reaches 2 GB. Windows Task Manager shows that only about 1.5 GB is actually being used in this scenario, but the server will still be out of memory.

The /USERVA switch is new to Windows Server 2003 and provides better granularity for splitting memory allocations between user mode and kernel mode. By using /USERVA=3030, an additional 40 megabytes (MB) of memory is allocated to the kernel for page table entries (PTEs). This permits you to scale the server to a greater number of users without running the risk of exhausting system resources.

You may also monitor the virtual address consumption by using Performance Monitor. Add the Virtual Bytes counter for the Store.exe process to make sure of an accurate reading of the virtual space. The Store.exe process is the only Exchange 2003 process that you must monitor. Other Exchange 2003 processes will not grow sufficiently large to cause any problems.

Note We do not recommend setting the /3GB switch in Boot.ini for Exchange Server computers that are also Active Directory domain controllers or Global Catalog servers.
 
APPLIES TO
Microsoft Exchange Server 2003 Enterprise Edition
Microsoft Exchange Server 2003 Standard Edition, when used with:
  Microsoft Windows Server 2003, Enterprise Edition
  Microsoft Windows Server 2003, Standard Edition