By default, all versions of Windows Server 2003 reserves 2 GB of virtual address space for the kernel, and it permits user mode processes (such as the Exchange 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 increases as more memory is used during run time. It is typical for the actual memory usage (or working set) of a process to be much less than the address space that the process was allocated. If the computer that is running Microsoft Exchange Server 2003 has 1 gigabyte (GB) of memory or more installed and if the computer is home to mailboxes or to public folders, you must modify Windows Server 2003 so that 3 GB of address space is available for user mode applications. For more information about this setting, click the following article numbers to view the articles in the Microsoft Knowledge Base:
Information on application use of 4GT RAM Tuning
Enabling 4GT RAM Tuning when you use Windows NT Server Enterprise Edition
It is important that the Store.exe process does not run out of virtual address space. If this occurs, memory allocations will not be successful (although sufficient physical RAM exists), and you must restart the Microsoft Exchange Information Store service.
For example, an Exchange server with 2 GB of physical RAM and that does not use the /3GB
switch in the Boot.ini file will run out of memory when the Store.exe virtual address space reaches 2 GB. The Windows Task Manager shows that only about 1.5 GB is actually in use, but the server will be out of memory anyway. You can monitor the virtual address consumption with performance monitoring. 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 2000 process that you must monitor. Other Exchange 2000 processes do not grow large enough to cause any problems.
Use of the /Userva switch
With the /Userva
switch, you can customize how the memory is allocated when you use the /3GB
switch. The number following /Userva=
is the amount of memory in megabytes (MB) that will be allocated to each process. If you set /3gb /Userva=3030
, this reserves 3,030 MB of memory to the process space, as compared to 3,072 MB when you use the /3GB
switch alone. The 42 MB that is saved when you set /Userva=3030
is used to increase the kernel memory space, free system page table entries (PTEs). The PTE memory pool is increased by the difference between 3 GB (specified by the /3GB
switch) and the value that is assigned to the /Userva
It is best that you configure all Windows Server 2003-based servers that run Exchange and are configured with the /3GB
switch to also use the /Userva=3030
switch. After you install a Windows Server 2003-based server, you must modify the Boot.ini file to add the /3GB
parameters to the startup line. For example:
[Boot Loader]Timeout=30Default=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
The /Userva parameter is only supported on Exchange servers when the value is set between 2,970 MB and 3,030 MB. Values that are less than 2,970 MB or greater than 3,030 MB are not supported. Only in extreme low PTE cases should a value that is less than 2,970 MB be used. The recommended default value for Exchange servers is 3,030 MB.
You can view low PTEs directly by using Performance Monitor. Look for the object Free System Page Table Entries under the memory counter. Values that are less than 7,000 are too low. Therefore, the /userva
switch must be adjusted down to increase this value.
The target value for Free System PTEs is 24,000 or greater. Do not modify the value to below /userva=2800
to try to gain more PTEs. Instead, contact Microsoft Product Support Services.
To download the Exchange Server 2003 Service Pack 1 (SP1) Release Notes, visit the following Microsoft Web site: