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.


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

  1. Jaewon Lee
    February 1st, 2009 11:56
    9

    This tweak is wonderful especially for a PC that uses very slow HD like SSD.
    I’m on a netbook with 16G SSD and 2G RAM. Paging on the SSD is very terrible.
    So, non-paging shows the dramatic performace enhancement.

    However, this article omitted something.
    Non-paging would be effective only when ‘PagingFiles’ registry key in the same branch has empty.

    If PagingFiles is specified, this tweak is not working even though DisablePagingExecutive is set to 1.

    has empty.

    This key resides in

  2. Cristiano
    January 13th, 2009 23:35
    8

    I have Windows XP SP2 and 3GB of RAM. I disabled paging one year ago… and the system is BETTER! All datas are stored in RAM, so to swap from a program to another you don’t have to wait 30 seconds (if you’re lucky), but only 2-3 seconds. If you need to reboot your system only once every 3 days (or more), you will see a lot of improvements! The third day the system is like the first (based on the speed, but the amount of memory used is more)! Because OS doesn’t write old datas to HD and if you try to read them, you need a lot of time. To have a fast computer, try to buy a LOT of RAM and disable paging file… 4 GB of RAM (DDR2) costs less than 60 euros! Once you try, you know what I’m saying!

  3. Larry Miller
    January 6th, 2009 00:11
    7

    Under most normal circumstances this registry setting will do nothing if memory is adequate. It prevents Windows from paging out a portion of the kernel. But Windows will try very hard to keep this im memory anyway.

    This registry setting is in most cases a solution to a non existant problem.

    Larry Miller
    Microsoft MCSA

  4. Dale Hartka
    December 21st, 2008 12:55
    6

    I have 3 gb memory on XP and the peak commit charge is 1.1 gb, yet it is still swapping. Talk about a stupid operating system! And Larry @ MS is telling me I can’t turn off the swapping – give me a break. Why not give us some info so we can set the memory parameters so XP doesn’t need to swap.
    Dale Hartka
    Melandale, Inc.

  5. Larry Miller
    December 20th, 2008 03:14
    5

    Modifying basic memory settings as described here is strongly discouraged. The default settings will be optimum in the vast majority of cases. In very unusual cases it may be beneficial to modify them but this should ONLY be done by someone who completely understands what they do. The information provided here is not only inadequate, much of it is incorrect. Much of the information found on the internet regarding these settings is wrong.

    Uninformed meddling in system settings is far more likely to impair performance than improve it. It can also cause severe problems. YOU HAVE BEEN WARNED.

    Larry Miller
    Microsoft MCSA

  6. 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

  7. 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!

  8. 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 [...]

  9. 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.

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 windows 7 - vista kernel memory paged - disablepagingexecutive "windows 7" - unblock kernel mode drivers Windows 2008 - cpu stays in jus without plugins3gb - kernel driver registry key - keep kernel in memory - paged kernel memory xp - windows 7 disablepagingexecutive - vista keep kernel in memory - win 7 force to laod in memory - nonpagedpoolsize windows 7 - paged kernel memory - vista "kernel memory" eliminate paging - vista "kernel memory" paged - force vista kernel to be remain on memory - kernel paged memory - DisablePagingExecutive win7 - paging kernel memory - force xp keep drivers in memory - "windows 7" DisablePagingExecutive regedit - make xp kernel non-swappable - NonPagedpoolsize setting windows server 2008 - reduce paged kernel xp - xp kernel remain in memory - cannot change paged kernel memory xp - disable kernel paging vista - kernel paged - nonpagedpoolsize xp - NonPagedPoolSize performance - ssd tweak force unload dll applications from memory - vista kernel paged memory - xp tweak kernel no page - force kernel to remain in physical memory - force kernel to remain in fisical memory - force free kernel memory - xp kernel paged memory - disable paging of kernel - force vista ram flush - forcing kernel into physical ram - increase nonpaged kernel memory xp - NonPagedPoolQuota - vista load in memory - force xp to use memory - How to force kernel to paged memory - eliminate kernel memory paging xp - disable kernel memory paging - eliminate paged kernel memory xp - force windows kernel into ram -