Windows Registry Memory Paging Pool Size Location
This article explains the exact Windows Registry location and configuration values used to control system-wide memory management paging pool sizes. In Windows, the operating system dynamically allocates paged and non-paged pool memory by default, but system administrators can manually define these limits using the Registry Editor (Regedit) to troubleshoot resource exhaustion or optimize specific workloads.
The Registry Path
The active configuration for system-wide memory management and pool limits is stored in the following registry key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
Because this configuration is under CurrentControlSet,
it directly impacts the active kernel session upon the next system
boot.
Key Registry Values for Paging Pools
Inside the Memory Management key, two primary
DWORD (32-bit) values define the pool sizes:
PagedPoolSize- Data Type:
REG_DWORD - Description: Specifies the maximum size of the paged pool (memory that can be paged out to secondary storage).
- Values: Setting this to
0(default) allows Windows to dynamically calculate the pool size based on available physical RAM. Setting a specific hexadecimal value sets an explicit size limit in bytes (e.g.,0xFFFFFFFFallocates the maximum supported pool size).
- Data Type:
NonPagedPoolSize- Data Type:
REG_DWORD - Description: Specifies the size of the non-paged pool (critical kernel memory that must stay resident in physical RAM at all times).
- Values: Setting this to
0enables dynamic allocation. A custom value sets an explicit limit in bytes.
- Data Type:
Related Pool Management Settings
In the same registry directory, additional settings control memory trimming and pool quotas:
PoolUsageMaximum(REG_DWORD): Specifies the percentage of the paged pool that can be consumed before the memory manager starts trimming cached memory to prevent pool exhaustion. The default trigger typically ranges around 80%.PagedPoolQuotaandNonPagedPoolQuota(REG_DWORD): Define the per-process limits for memory allocation from the paged and non-paged pools.
How to Modify the Settings
- Press
Win + R, typeregedit, and press Enter. - Navigate to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management - Double-click
PagedPoolSizeorNonPagedPoolSize. - Set the Base to Hexadecimal or Decimal, enter the desired size in bytes, and click OK.
- Restart the computer for the changes to take effect.