PSS ID Number: Q126402
Article Last Modified on 09-9-2002
The information in this article applies to:
-
Microsoft Windows NT Workstation 3.5, 3.51, 4.0
-
Microsoft Windows NT Server 3.5, 3.51, 4.0
-
Microsoft Windows 2000 Professional
-
Microsoft Windows 2000 Server
-
Microsoft Windows 2000 Advanced Server
-
Microsoft Windows 2000 Datacenter Server
Summary
Windows NT calculates NonPagedPoolSize and PagedPoolSize based on the
amount of physical memory present in the computer at boot time. This
article describes the algorithms used to calculate these values on an x86-based computer.
NOTE: The Windows NT 3.5 Resource kit incorrectly describes PagedPoolSize calculations.
More Information
NonPagedPoolSize and PagedPoolSize are calculated using complex algorithms
based on physical memory size. However, you can use the following formulas
to approximate these values for an X86-based computer.
Definitions
MinimumNonPagedPoolSize = 256K
MinAdditionNonPagedPoolPerMb = 32K
DefaultMaximumNonPagedPool = 1 MB
MaxAdditionNonPagedPoolPerMb = 400K
PTE_PER_PAGE = 1024
PAGE_SIZE=4096
NonPagedPoolSize Calculation
NonPagedPoolSize = MinimumNonPagedPoolSize +
((Physical MB - 4) * MinAdditionNonPagedPoolPerMB)
EXAMPLE - On a 32 MB x86-based computer:
MinimumNonPagedPoolSize = 256K
NonPagedPoolSize = 256K + ((32 - 4) * 32K) = 1.2 MB
MaximumNonPagedPoolSize = DefaultMaximumNonPagedPool +
((Physical MB - 4) * MaxAdditionNonPagedPoolPerMB)
If MaximumNonPagedPoolSize < (NonPagedPoolSize + PAGE_SIZE * 16),
then MaximumNonPagedPoolSize = (NonPagedPoolSize + PAGE_SIZE * 16)
IF MaximumNonPagedPoolSize >= 128 MB MaximumNonPagedPoolSize = 128 MB
EXAMPLE - On a 32 MB x86-based computer:
MaximumNonPagedPoolSize = 1 MB + ((32 - 4) * 400K) = 12.5 MB
PagedPoolSize Calculation
Size = (2 * MaximumNonPagedPoolSize) / PAGESIZE
Size = (Size + (PTE_PER_PAGE - 1)) / PTE_PER_PAGE
PagedPoolSize = Size * PAGESIZE * PTE_PER_PAGE
If PagedPoolSize >= 192 MB PagePoolSize = 192 MB
EXAMPLE - On a 32 MB x86-based computer:
Size = (2 * 12.5M) / 4096 = 6400
Size = (6400 + (1024 - 1)) / 1024 = 7.25
PagedPoolSize = 7.25 * 4096 * 1024 = 30MB
NOTE: If both values are set to zero in the registry, PagedPoolSize calculates to approximately memory size)
The kernel debugger can be used to view these global variables in memory.
The values shown below are for a 32 MB x86-based computer running Windows
NT 3.5, build 807:
kd> dd MmDefaultMaximumNonPagedPool
8019e4d4 00100000 (1Mbyte)
kd> dd MmSizeOfNonPagedPoolInBytes
80196188 00120000 (1,179,648)
kd> dd MmMinimumNonPagedPoolSize l1
8019e4cc 00040000 (262144)
kd> dd MmNumberOfPhysicalPages l1
801961ac 00002010 (8208)
kd> dd MmMinAdditionNonPagedPoolPerMb l1
8019e4d0 00008000 (32768)
kd> dd MmMaximumNonPagedPoolInBytes l1
80196310 00c20000 (12713984)
kd> dd MmSizeOfPagedPoolInBytes l1
8019e4dc 02000000 (33554432)
These values may be modified in the registry.
WARNING: Using the Registry Editor incorrectly can cause serious, system-
wide problems that may require you to reinstall Windows NT to correct
them. Microsoft cannot guarantee that any problems resulting from the use
of the Registry Editor can be solved. Use this tool at your own risk.
The page pooled memory management parameters are located in:
<B>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Managerl\Memory Management</B>
For additional information about the /3GB setting, click the article number below
to view the article in the Microsoft Knowledge Base:
Q171793
Information on Application Use of 4GT RAM Tuning
Microsoft Windows 2000
The Windows 2000 memory model increases the amount of nonpaged pool and paged pool memory available to the system.
A Windows 2000-based 32-bit x 86 computer that is booted without the /3GB switch is changed to a maximum paged pool of approximately 300-340 MB (from 192 MB in Windows NT 4.0).
With Windows 2000, the amount of nonpaged pool that the operating system can use is increased to 256 MB (from 128 MB in Windows NT 4.0).
If the server is booted with the /3GB switch enabled, the memory model remains that same for nonpaged and paged pool as in Windows NT 4.0.
Additional query words:
server
storage
poolcalc
pool
non-paged
change
default
page
pool
Keywords: kbnetwork
Issue Type:
Technology: kbWinNTsearch kbWinNTWsearch kbWinNTW400 kbWinNTW400search kbWinNT351search kbWinNT350search kbWinNT400search kbWinNTW350 kbWinNTW350search kbWinNTW351search kbWinNTW351 kbwin2000AdvServ kbwin2000AdvServSearch kbwin2000DataServ kbwin2000DataServSearch kbwin2000Serv kbWinNTSsearch kbWinNTS400search kbWinNTS400 kbWinNTS351 kbWinNTS350 kbwin2000ServSearch kbwin2000Search kbwin2000ProSearch kbwin2000Pro kbWinNTS351search kbWinNTS350search kbWinAdvServSearch kbWinDataServSearch