Topic Last Modified: 2005-11-18
The Microsoft® Exchange Server Analyzer Tool queries the Win32_PerfRawData_PerfOS_Memory Microsoft Windows® Management Instrumentation (WMI) class to determine the current value for the FreeSystemPageTableEntries object. If the value for FreeSystemPageTableEntries is more than 5000 but less than or equal to 8000, a warning is displayed.
Microsoft Windows Server™ 2003 and Windows 2000 Server can directly address up to 4 gigabytes (GB) of memory address space, regardless of how much physical RAM is installed. From the process perspective, each element of virtual address conceptually refers to a byte of physical memory. It is the responsibility of the virtual memory manager (VMM) in conjunction with processor memory manager unit (MMU) to translate or map each virtual address to a corresponding physical address. The VMM performs the mapping by dividing the RAM into fixed-size page frames, creating system page table entries (PTEs) to store information about these page frames, and mapping them. System PTEs are small kernel mode buffers of memory that are used to communicate with the disk I/O subsystem and the network. Each PTE represents a page frame and contains information required for the VMM to locate a page.
On an x86-based system that uses a 4 kilobyte (KB) page size, the maximum number of PTEs required to map 2 GB of address space is 524,288 (2 GB/4 KB). On a similar system using the /3GB switch, the number of PTEs requires to map 3 GB of address space is 786,432 (3 GB/4 KB). On a typical system, this space is used as follows:
- A maximum of 50,000 PTEs (approximately 195 MB address
space) are reserved for general use.
- The remainder is used in mapping system cache, hyperspace,
paged pool, nonpaged pool, crash dump area, and so on.
This PTE pool size is automatically determined at system startup based on the amount of physical memory in the system. This pool is squeezed in between paged pool and nonpaged pool, which also grows with the amount of physical memory in the system.
The system PTE pool can become heavily used and heavily fragmented. This could lead to situations where a driver might not load. Also, if the system PTE pool is depleted completely, other parts of the system will degrade, even resulting in threads not being created, system stalls, and potential system crashes.
A healthy Exchange Server computer should have at least 8,000 system PTEs available at all times. If the number of free system PTEs drops below 5,000, the error described in Free Page Table entries is at the critical threshold will be displayed. When the number of free system PTEs drops below 8,000, but remains above 5,000, this warning is displayed.
To resolve this problem, you can use the procedure that follows to configure the SystemPages registry value appropriately for your Exchange Server computer's operating system. When you are running Exchange Server 2003 Service Pack 1 (SP1) on Windows Server 2003 with 1 GB or more of RAM, it is recommended that you set the SystemPages registry key to zero. This recommendation contrasts with the recommendation for Windows 2000 Server, which is to set SystemPages to a value of 31,000 decimal.
After performing the following procedure, monitor the number of free system PTEs. You can do this by monitoring the Memory | Free System Page Table Entries performance counter with the Windows System Monitor (also known as Performance Monitor). If, after you make the registry change described in this article, the number of free system PTEs remains low, check the following to ensure that your Exchange Server computer is optimally configured:
- Drivers A malfunctioning driver is one
of the most common causes of low system PTEs. Contact your hardware
manufacturer to ensure that you are using the latest drivers for
all of your hardware. There may be opportunities to downgrade to a
more basic driver, as well. For example, computers that run
server-based applications such as Exchange Server generally do not
need the most advanced video drivers with all of the features.
Instead, a more basic driver is often sufficient. Switching from an
advanced video driver to a basic video driver should increase the
number of free system PTEs.
- System configuration If your Windows
Server 2003 system has 1 GB or more of physical memory
installed, you should check to ensure that its Boot.ini file is
properly configured with the /3GB and /USERVA=3030 switches as
described in the Microsoft Knowledge Base article 823440, "You Must
Use the /3GB Switch When You Install Exchange Server 2003 on a
Windows Server 2003-Based System" (http://go.microsoft.com/fwlink/?linkid=3052&kbid=823440)
and Knowledge Base article 810371, "XADM: Using the /Userva Switch
on Windows Server 2003-Based Exchange Servers" (http://go.microsoft.com/fwlink/?linkid=3052&kbid=810371).
- Event logs Check the application event
log on the Exchange server for errors and warnings, especially
MSExchangeIS events 9582 (errors and warnings), 9665
(warning), and 12880 (error). Event 9665 could also indicate that
SystemPages is not configured for optimal performance. For
more information about these events, see the Knowledge Base article
324044, "HOW TO: Troubleshoot Virtual Memory Fragmentation in
Exchange 2003 and Exchange 2000" (http://go.microsoft.com/fwlink/?linkid=3052&kbid=325044).
Important: |
---|
This article contains information about editing the registry. Before you edit the registry, make sure you understand how to restore the registry if a problem occurs. For information about how to restore the registry, view the "Restore the Registry" Help topic in Regedit.exe or Regedt32.exe. |
To correct this warning on a computer running Windows 2000 Server
-
Open a registry editor, such as Regedit.exe or Regedt32.exe.
-
Navigate to: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
-
In the right pane, double-click SystemPages.
-
In the Value data field, type a value of 31000 Decimal (31000 is the decimal representation of 7918 hex. Regedit.exe defaults to hexadecimal values), and then click OK.
-
Close the registry editor and restart the computer for the change to take effect.
To correct this warning on a computer running the original release version of Windows Server 2003
-
Review the information in Microsoft Knowledge Base article 894067, "The Performance tool does not accurately show the available Free System Page Table entries in Windows Server 2003" (http://go.microsoft.com/fwlink/?linkid=3052&kbid=894067), to determine the actual Free System Page Table Entries.
To correct this warning on a computer running Windows Server 2003 SP1
-
Open a registry editor, such as Regedit.exe or Regedt32.exe.
-
Navigate to: HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
-
In the right pane, double-click SystemPages.
-
In the Value data field, type 0, and then click OK.
-
Close the registry editor.
-
Right-click My Computer, and then click Properties. The System Properties dialog box will appear.
-
Click Advanced.
-
In the Startup and Recovery area, click Settings. The Startup and Recovery dialog box will appear.
-
In the System startup area, click Edit. This will open the Windows Boot.ini file in Notepad.
-
Review the [Operating Systems] section.
- If the /3GB switch exists but not the
/USERVA=3030 switch, add the /USERVA=3030 switch to
the startup line so that it is configured as
/3GB /USERVA=3030.
- If the /3GB /USERVA=3030 switches are already
configured, change the /USERVA switch value to
/USERVA=2970.
- If the /3GB switch exists but not the
/USERVA=3030 switch, add the /USERVA=3030 switch to
the startup line so that it is configured as
/3GB /USERVA=3030.
-
Save the changes and close Notepad.
-
Click OK twice to close the open dialog boxes and then restart the computer for the changes to take effect.
Before you edit the registry, and for information about how to edit the registry, see the Microsoft Knowledge Base article 256986, "Description of the Microsoft Windows Registry" (http://go.microsoft.com/fwlink/?linkid=3052&kbid=256986).
For more information about optimizing memory for Exchange Server, see the following Knowledge Base articles:
- 894067, "The Performance tool does not accurately show the
available Free System Page Table entries in Windows Server 2003"
http://go.microsoft.com/fwlink/?linkid=3052&kbid=894067
- 325044, "HOW TO: Troubleshoot Virtual Memory Fragmentation in
Exchange 2003 and Exchange 2000" (http://go.microsoft.com/fwlink/?linkid=3052&kbid=325044)
- 823150, "How to gather data to troubleshoot Exchange
Server 2003 virtual memory issues" (http://go.microsoft.com/fwlink/?linkid=3052&kbid=823150)
- 815372, "How to optimize memory usage in Exchange
Server 2003" (http://go.microsoft.com/fwlink/?linkid=3052&kbid=815372)
- 311901, "The effects of 4GT tuning on System Page Table
Entries" (http://go.microsoft.com/fwlink/?linkid=3052&kbid=311901)