xxxx) being returned to Kernel mode. Note that
xxxx is expressed in megabytes (MB).
The following sample Boot.ini file demonstrates how to use the new switch to tune a computer to allocate 2,900 MB of User-mode virtual memory and 1,196 MB of Kernel-mode virtual memory. This increases the available kernel space by 172 MB:
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows Server 2003" /fastdetect /3GB /Userva=2900
Note Using only the /3GB switch allocates 1 GB to the kernel and 3 GB to the User-mode space.
Using this switch reduces the memory available in the following system pools:
- Nonpaged Pool
- Paged Pool
- System Page Table Entries (PTEs)
In Windows Server 2003, you can add a small amount of the additional 1 GB back to the operating system. By decreasing the amount of User-mode space that is typically allocated by the /3GB switch, Windows Server 2003 increases the available kernel memory address space. This additional Kernel-mode address space is held in reserve and is used as additional address space for PTEs if the system runs out of free PTE space. This address space is not allocated to PTEs until the system runs low on PTE space.
In order to accurately see PTE space, use the !VM command in the debugger.
Note In Microsoft Windows XP and in Windows Server 2003, you can use this command interactively with the current debuggers that are available on the Microsoft download site.
Note Microsoft Product Support Services strongly recommends using a range of memory for the /userva=xxxx switch that is within the range of 2900 to 3030. This range is wide enough to provide a pool of system PTEs that is large enough for all currently observed issues. Typically, a value of 2800 for the xxxx placeholder will provide close to the maximum available number of system PTEs possible. Values observered in production for the 2800 setting are usually in the 50,000 - 70,000 free system pages, more than enough for all installations. If the value is less that 24,000, you should reduce this value in 64 MB steps until values larger than 24,000 to 26,000 are observed. Smaller numbers in the userva switch result in larger allocations of system pages. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
To make sure of program stability and Windows stability, program manufacturers must test their programs thoroughly by using the described tuning techniques and must provide the /userva=xxxx number for their programs. To help in this testing, manufacturers can use the System Monitor tool to monitor virtual address consumption. To do this, add the Virtual Bytes counter for the program's process to obtain an accurate reading of the virtual space.
Note Microsoft Product Support Services (PSS) does not support arbitrary /userva settings; customers should add this setting to the Boot.ini file only per a manufacturer's recommendation.
For more information about the /3GB switch, click the following article numbers to view the articles in the Microsoft Knowledge Base:
Article ID: 316739 - Last Review: Jan 7, 2008 - Revision: 1