PagedPoolSize and NonPagedPoolSize Values in Windows NT

Last reviewed: November 18, 1997
Article ID: Q126402

The information in this article applies to:

  • Microsoft Windows NT Workstation version 3.5 and 3.51
  • Microsoft Windows NT Server version 3.5 and 3.51
  • Microsoft Windows NT Workstation version 4.0
  • Microsoft Windows NT Server version 4.0

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 PagedPoolSize >= 192 MB PagePoolSize = 192 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 will calculate 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:

   HKEY_LOCAL_MACHINE
     \SYSTEM
       \CurrentControlSet
         \Control
           \Session Manager
             \Memory Management


Additional query words: prodnt server storage poolcalc pool non-paged
3.50 3.51 4.00
Keywords : ntnetserv NTSrvWkst kbnetwork
Version : WinNT:3.5,3.51,4.0
Platform : winnt


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: November 18, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.