The
/userva=xxxx switch is designed to allow for more precise tuning of User-mode
address space for program manufacturers who require more than 2 GB of User-mode
space but do not require all the space that is provided by the
/3GB tuning switch alone.
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)
If the memory reduction in the pools is too great in a specific server installation, the server or the applications may generate an error or appear to stop responding.
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:
894067
The Performance tool does not accurately show the available Free System Page Table entries in Windows Server 2003
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:
171793
Information on application use of 4GT RAM tuning
189293 Enabling 4GT RAM tuning when you use Windows NT Server Enterprise Edition
Windows Server 2003 no longer limits the System
Paged Pool to 160 MB on computers that have lots of memory. Because the
Paged Pool is not limited, you may be able to free additional Kernel-mode
address space to use as PTE space when the computer is running with the
/3GB switch by limiting the size of the System Paged Pool.