USERVA is set incorrectly

[This topic is intended to address a specific issue called out by the Exchange Server Analyzer Tool. You should apply it only to systems that have had the Exchange Server Analyzer Tool run against them and are experiencing that specific issue. The Exchange Server Analyzer Tool, available as a free download, remotely collects configuration data from each server in the topology and automatically analyzes the data. The resulting report details important configuration issues, potential problems, and nondefault product settings. By following these recommendations, you can achieve better performance, scalability, reliability, and uptime. For more information about the tool or to download the latest versions, see "Microsoft Exchange Analyzers" at https://go.microsoft.com/fwlink/?linkid=34707.]  

Topic Last Modified: 2007-10-10

The Microsoft® Exchange Server Analyzer Tool queries three Microsoft Windows® Management Instrumentation (WMI) classes to determine the amount of physical memory in the Exchange Server computer and the amount of virtual address space allocated to user mode processes running on the Exchange Server computer. The table below describes the classes and keys being evaluated by the Exchange Server Analyzer.

Class Queried Keys Queried Description

Win32_OperatingSystem

MaxProcessMemorySize

Maximum number of kilobytes of memory that can be allocated to a process.

Win32_ComputerSystem

TotalPhysicalMemory

Number of bytes of random access memory (RAM) installed on the computer.

Win32_Service

Started

State of the service. A value of True indicates the service is running and a value of False indicates the service is not running.

The Exchange Server Analyzer also reads the following registry entry to determine the version of Microsoft Windows running on the Exchange Server computer:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\CurrentVersion

A CurrentVersion value of 4.0 indicates the Exchange Server computer is running on Microsoft Windows NT® Server 4.0. A value of 5.0 indicates the Exchange Server computer is running Windows 2000 Server and a value of 5.2 indicates the Exchange Server computer is running Windows Server™ 2003.

Finally, the Exchange Server Analyzer queries the Active Directory® directory service to determine the count for the homeMDBBL attribute of the mailbox store object (msExchPrivateMDB). The resulting count is the number of mailboxes found on the Exchange Server computer.

If the Exchange Server Analyzer determines that all of the following criteria are true, a warning is displayed:

  • The Exchange Server computer is running on Windows Server 2003.

  • The value for TotalPhysicalMemory is greater than 1073741824.

  • The value for MaxProcessMemorySize is equal to 3145600.

  • The Cluster service (ClusSvc) has a Win32_Service\Started value of True or the Exchange Server computer contains more than 20 mailboxes.

This warning indicates that the Exchange Server computer is not optimally configured for virtual memory usage. Specifically, the /USERVA=3030 startup switch is not present in the Boot.ini file of the Exchange Server computer. Adding this switch may provide greater scalability and better performance.

Windows Server 2003 includes support for two Boot.ini startup switches—/3GB and /USERVA—that enable you to tune the allocation and use of memory and memory address space. Regardless of the amount of physical memory in your system, Windows uses a virtual address space of 4 gigabytes (GB), with 2 GB allocated to user-mode processes (for example, applications) and 2 GB allocated to kernel-mode processes (for example, the operating system and kernel-mode drivers). On systems that have 1 GB or more of physical memory, these startup switches can be used to allocate more memory to applications (3 GB) and less memory to the operating system (1 GB). On an Exchange Server computer, this extra virtual address space helps to reduce the amount of memory fragmentation in the information store process virtual address space. The /3GB switch is used to affect this allocation change. The switch is entered into the system’s Boot.ini file and takes effect after a reboot. This switch should only be used on Exchange Servers with 1 GB or more of memory that are running any of the following operating systems:

  • Microsoft Windows Server 2003, Standard Edition

  • Microsoft Windows Server 2003, Enterprise Edition

  • Microsoft Windows Server 2003, Datacenter Edition

Important

The /3GB switch should not be used on Windows 2000 Server because it is unsupported and can cause application or operating system crashes. Furthermore, the /3GB switch is only supported on the above operating systems when 1 GB or more of physical memory is installed.

The /USERVA switch is new to Windows Server 2003. Its purpose is to provide a finer level of control over the division of virtual address space between user-mode processes and kernel-mode processes. This switch should be used only for applications that support it, such as Exchange Server 2003, and with the specific values supported by those applications. When used on Exchange Server 2003 systems, /USERVA should always equal 3030 (that is, /USERVA=3030). This value causes an additional 40 MB to be allocated to the operating system, and enables you to add more users without consuming all available system resources.

To correct this warning on Windows Server 2003

  1. Right-click My Computer and select Properties. The System Properties dialog box will appear.

  2. Click the Advanced tab.

  3. In the Startup and Recovery area, click Settings. The Startup and Recovery dialog box will appear.

  4. In the System startup area, click Edit. This will open the Windows Boot.ini file in Notepad.

  5. In the [Operating Systems] section, add the following switches to the startup line: /3GB /USERVA=3030

  6. Save the changes and close Notepad.

  7. Click OK twice to close the open dialog boxes, and then reboot the Exchange Server computer for the change to take effect.

For more information about the use of the /3GB and /USERVA startup switches, see the following Microsoft Knowledge Base articles: