In Microsoft Windows Server 2003, the Performance tool (Perfmon) does not accurately show the available Free System Page Table entries (FreeSysPTEs).
Because of memory manager changes, the method of calculating FreeSysPTEs in Windows Server 2003 is not accurate. Perfmon will always show a much lower number than the value of 10+ kilobytes (K) that is typical. For computers that are running Windows Server 2003 without Service Pack 1 (SP1), the correct value for FreeSysPTEs can be obtain by using the !vm 1 command and checking the value that is displayed for "Free System PTEs" in kernel debugger or in the LiveKd tool from Sysinternals.
Service pack information
To resolve this problem, obtain the latest service pack for Windows Server 2003. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
889100 How to obtain the latest service pack for Windows Server 2003
Microsoft has confirmed that this is a bug in the Microsoft products that are listed in the "Applies to" section.This bug was corrected in Windows Server 2003 Service Pack 1.
To add the counter for FreeSys PTEs to the Performance tool, follow these steps:
Click Start, click Run, type perfmon.msc in the Open box, and then click OK.
On the toolbar, click Add.
In the Add Counters dialog box, select Memory in the Performance object combo box, select Free System Page Table Entries in the Select counters from list, and then click Add.
This counter is used to monitor the available FreeSys PTEs on the computer.
Following is a sample !vm output. The sample was obtained from a computer that was running Windows Server 2003 without SP1. The sample was obtained by using LiveKd.
0: kd> !vm 1*** Virtual Memory Usage ***Physical Memory: 511884 ( 2047536 Kb)Page File: \??\C:\pagefile.sysCurrent: 2095104Kb Free Space: 2069916KbMinimum: 2095104Kb Maximum: 4190208KbAvailable Pages: 330298 ( 1321192 Kb)ResAvail Pages: 423600 ( 1694400 Kb)Locked IO Pages: 140 ( 560 Kb)Free System PTEs: 205080 ( 820320 Kb) <<--------- Here is the correct number that Perfmon should report.Free NP PTEs: 32765 ( 131060 Kb)Free Special NP: 0 ( 0 Kb)Modified Pages: 118 ( 472 Kb)Modified PF Pages: 118 ( 472 Kb)NonPagedPool Usage: 4691 ( 18764 Kb)NonPagedPool Max: 65536 ( 262144 Kb)PagedPool 0 Usage: 10135 ( 40540 Kb)PagedPool 1 Usage: 787 ( 3148 Kb)PagedPool 2 Usage: 757 ( 3028 Kb)PagedPool 3 Usage: 778 ( 3112 Kb)PagedPool 4 Usage: 760 ( 3040 Kb)PagedPool Usage: 13217 ( 52868 Kb)PagedPool Maximum: 68608 ( 274432 Kb)Shared Commit: 16508 ( 66032 Kb)Special Pool: 0 ( 0 Kb)Shared Process: 13486 ( 53944 Kb)PagedPool Commit: 13230 ( 52920 Kb)Driver Commit: 1651 ( 6604 Kb)Committed pages: 177988 ( 711952 Kb)Commit limit: 998454 ( 3993816 Kb)0: kd> !sysptes System PTE InformationTotal System Ptes 226271SysPtes list of size 1 has 171 freeSysPtes list of size 2 has 53 freeSysPtes list of size 4 has 125 freeSysPtes list of size 8 has 29 freeSysPtes list of size 16 has 29 freestarting PTE: c03c7000ending PTE: c03def78free blocks: 14 total free: 3352 <<------- Here is the incorrect, lower number that Perfmon reported. largest free block: 1219
The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, regarding the performance or reliability of these products.