Force Kernel Drivers and System Code to Stay Loaded in Memory to Boost Speed with DisablePagingExecutive Tweak

User-mode and kernel-mode drivers and kernel-mode system code can be written to be either pageable or non-pageable. Pageable means that the Windows operating system can page or flush the driver or system code to disk when not in use in order to free up the memory for other processes.

For system with large amount of RAM memory size, it’s possible to boost system performance and increase system speed by forcing and keeping the pagable system code and driver in physical memory, even if they’re programed as can page to disk. By keeping the code bits to stay loaded in memory, the OS can immediately access the driver or system code whenever required without the need to swap and read from hard disk again, which is slower.

If your system has enough physical RAM memory, you can force Windows OS to keep pageable drivers and system codes in memory. To check if your system has enough memory to perform this tweak, a good indicator is to load all applications intended to be use simultaneously, and then run Task Manager (Taskmgr). Go to the Performance tab to look at the amount of physical RAM, which should be greater than the Peak Commit Charge by at least 16MB (only in Windows XP). Generally speaking, if total RAM size of the system is greater than 512 MB, the trick is workable.

To enable pageable not swap to disk feature (or more appropriately disable the paging feature), just tweak the DisablePagingExecutive registry key located in the following registry hive:

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

The default value for DisablePagingExecutive is 0, which make OS adheres to developer’s intent on paging ability. Setting the DisablePagingExecutive registry value to 1 will disable paging ability and make all user-mode and kernel-mode drivers or kernel-mode system code to remain running in memory without swapping to disk.

If you are worry that the system will take out too large amount of RAM to keep the not paged data, it’s possible to set the limit for the maximum amount of memory can be used to store non-paged data in memory. To do so, change the NonPagedPoolSize registry key in the same registry branch:

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

The value are in byte. So to set the limit of which Windows can keep non-paged memory limit to 128 MB, set the value of NonPagedPoolSize value to 134217728 in decimal or 0×8000000 in hexadecimal. By default, the value is 0 (zero), which mean let system decide. To ensure that the system doesn’t override the NonPagedPoolSize settings, also set the corresponding value to NonPagedPoolQuota, which will be respected no matter what’s going on (good or bad) on the system. (Alternatively, just leave the NonPagedPoolSize value at default 0 and only change the NonPagedPoolQuota, since this is where the system usually gets really conservative since it doesn’t know the usage patterns.)

However, before changing NonPagedPoolSize and NonPagedPoolQuota values, do make sure that the system has enough memory for other processors and usages, as non-paged memory block will be set aside and reserved no matter whether system use it or not, else the tweak will achieve the unintended effect of making system slower instead of faster.

The tweak works on most Windows such as Windows Vista and Windows XP.

Share and contribute or get technical support and help at My Digital Life Forums.



4 Responses to “Force Kernel Drivers and System Code to Stay Loaded in Memory to Boost Speed with DisablePagingExecutive Tweak”

  1. sunshine
    August 24th, 2008 11:43
    1

    Anybody tried this yet? I have been having video driver stopped responding issues, probably due an aging hard drive, so this is very tempting. I have an XP Pro box running on 1 Gb RAM, what say?

    Regards,
    MFK.

  2. Force Kernel Drivers and System Code to Stay Loaded in Memory to Boost Speed - Windows Vista Help Forum
    August 25th, 2008 18:24
    2

    [...] slower instead of faster. The tweak works on most Windows such as Windows Vista and Windows XP. source __________________ … Life is beautiful [...]

  3. Mel
    September 15th, 2008 06:16
    3

    This tweak makes sense. I’m on XP Pro XP3 with 2G of RAM and just gave this a try.

    Other than observing performance, how can I tell that it is working? If I track the use of Kernel Memory (via Task Manager) both before and after the change, I would have expected to see the portion of Kernel Memory that is Paged decrease substantially (I originally thought it would go to 0). But instead, it has not changed. Roughly as follows

    Total: 125,000
    Paged: 85,000
    Nonpaged: 40,000

    What should I be looking for?

    Thanks!

  4. Roger
    September 25th, 2008 21:42
    4

    I just performed these 3 changes as directed and do not see a difference…

    My Kernel total is hovering around 65472.. (interestingly.. about 64 x 1024)
    and Paged is around 38340
    Nonpaged is around 27128..

    I’m going to 0 out the poolsize and poolquota and reboot again to see if that helps. I have 2G of memory on a Solo processor.. (basically just a defunct Intel marketing name for a non-duo..)

    Roger

Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Subscribe to comments feature has been disabled. To receive notification of latest comments posted, subscribe to My Digital Life Comments RSS feed or register to receive new comments in daily email digest.
Custom Search

New Articles

Incoming Search Terms for the Article

kernel memory paged - DisablePagingExecutive vista - disable kernel paging - all - force kernel to remain in physical memory - vista keep kernel in memory - paged kernel memory - vista kernel paging - force XP to use physical memory - windows xp registry disable kernel paging - vista disable kernel paging - keep windows kernel in memory - "paged kernel memory" - y - paged kernel - Disable Paging of Kernel Vista - force kernel memory - vista kernel in memory - kernel paging registry - internet explorer stays in memory - keep kernel in memory - nonpaged kernel memory XP - disable windows kernel paging - NonPagedPoolSize windows 2003 - vista kernel memory paged - windows paged kernel memory - windows xp keep kernel in memory - xp disable kernel paging - windows xp disable kernel paging - how to force vista to use more ram - kernel memory windows xp - force application to use system memory - kernal memory paged - reduce paged kernel memory - windows xp registry keep kernal in memory - vista NonPagedPoolSize - vista disablepagingexecutive - kernel paging windows - force kernel - Kernel Memory XP - nonpagedpoolquota - windows kernel memory registry - kernel memory nonpaged vista - DisablePagingExecutive tweak - winxp non paged system reg - kernel vista ram - force windows use more physical memory - kernel paged memory - NonPagedPoolSize 2003 - kernel memory to ram -