DisablePagingExecutive注册表更改是否有任何实际效果?


9

过去,在许多计算机上,在不同版本的Windows(2000,XP和无Vista)上,我都启用了DisablePagingExecutive来尝试提高性能。在每种情况下,我都有足够的内存,在当前情况下尤其如此。但是,启用此注册表项调整并重新启动后,过了一会儿我检查了任务管理器,即使我有2GB的可用物理内存,我仍然显示了很大一部分内核分页到磁盘。

有人成功使用过此调整吗?曾经吗 检查任务管理器(“性能”选项卡->“内核内存”部分)时,也许我查看的指示器不正确,但是我想防止Windows将所有可能的页面分页到磁盘,尤其是考虑到Windows中提供的内存量这些天的台式机。似乎应该存在一个“除非存在极大的内存压力,否则不分页到磁盘”选项-是否存在?

Answers:


13

关于此功能,互联网上存在大量混乱。该设置仅影响被称为执行程序的内核部分,然后仅影响可分页的部分。内核的其他部分完全不受此设置的影响。

内核分页的工作方式与任何其他分页相同。经常访问的代码和数据将保留在RAM中,而其余部分将保留在磁盘所属的磁盘上。除非找到更好的用途,否则系统不会从RAM中删除内核的任何部分。Microsoft已对分页系统进行了大量的研究和测试。

在内核上下文中,“非分页”是指在任何情况下都永远无法分页的代码和数据。“分页”是指必要时可以分页的代码和数据。任务管理器无法分辨出实际被分出多少页面。首先,从来没有从磁盘读取过分页的代码的一部分,因为还不需要它。并非经常访问所有内核。您不应该期望分页和非分页号码会受到相关设置的影响。

注意:分页代码时,通常不会将其复制到页面文件中。这是没有必要的,因为它可以简单地从原始文件中重新加载。这适用于大多数代码,而不仅仅是kerenl。

如果具有合理数量的RAM,则该设置基本上不会执行任何操作。它只是防止系统分页它本来不想分页的数据。


4

我不确定您是否意识到这一点,但是页面错误是Windows用来加载可执行代码的机制。因此,例如,将DLL映射到虚拟内存,然后使用页面错误根据需要从磁盘进行实际加载。页面文件不涉及此。

因此,您认为很多“分页到磁盘”可能是最初放在磁盘上的东西。


我没有意识到这一点,而且很有意义,尽管我认为它不能回答我的问题。如果我禁用Windows内核的分页,为什么我的任务管理器继续告诉我其中的75%已被分页(400MB内核中的总页数为275MB)?这也没有解决我的问题,即当仍然有多个GB可用内存时,为什么Windows似乎分页这么大。
SqlRyan

1
您将“分页”读取为“已被分页的可写内存”,而在内核内存的上下文中,“分页”表示“可以被分页”,而“未分页”表示“永远不会分页” -'”。当您在分页系统无法运行的情况下需要内存(例如中断处理程序)时,后者对于KM编程非常重要。
迪恩

在您使用的术语的上下文中(我不是内核开发人员,所以我不知道更好),我希望此注册表更改会将整个内核标记为“非分页”(意思是“将永远不会被调出页面”),这不是它的作用。我只是想看看其他人是否对我抱有同样的期望,或者我是否误解了这种改变应该做什么。
SqlRyan

3

只是添加了此设置的另一种用法:xperf堆栈遍历需要它。

http://blogs.msdn.com/b/pigscanfly/archive/2009/08/06/stack-walking-in-xperf.aspx

禁用分页执行程序

为了使跟踪在64位Windows上运行,您需要设置DisablePagingExecutive注册表项。这告诉操作系统不要将内核模式驱动程序和系统代码分页到磁盘,这是使用xperf获取64位调用堆栈的先决条件,因为64位堆栈遍历取决于可执行映像中的元数据,并且在某些情况下, xperf堆栈遍历代码不允许触摸分页的页面。

有关设置的另一条信息。这个报价可以在互联网上找到,我不知道它的主要来源。

DisablePagingExecutive仅适用于ntoskrnl.exe。它不适用于win32k.sys(比ntoskrnl.exe大得多!),其他驱动程序的可分页部分,分页缓冲池以及文件系统缓存。所有这些都位于内核地址空间中,并分页到磁盘。在低内存系统上,这可能会导致应用程序代码不必要地被分页并降低性能。是的,如果您有足够的RAM用于工作负载,那不会有什么坏处,但是再次,如果您有足够的RAM用于工作负载,则系统无论如何都不会分页很多东西。此设置在调试驱动程序时很有用,通常建议仅在运行有限的一组知名应用程序的服务器上使用

因此,可以得出结论,除了xperf-usage用法外,它的好处是晦涩的:本质上,它限制了分页和进一步思考的“几乎随机”的内容- 因此导致其他内容被更频繁地分页。


2

DisablePagingExecutive调整不会停止页面调度,其目的是防止对“ Executive”(即内核本身)进行页面调度,从而导致整个系统变慢,而不仅仅是单个页面应用程序。

您可以通过删除“系统属性”(或HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory Management \ PagingFiles)中的所有页面文件来尝试完全禁用分页。这对我来说效果很好,但是当物理内存用尽时,事情变得非常不愉快,并且必须有一个页面文件来调试STOP错误。


我已经有几天没有页面文件运行了,并且运行良好,Windows 7实际上提供了一些内存不足应用程序的建议,以便在运行不足时将其杀死。
Froosh

1

系统级组件(例如内核,执行程序和设备驱动程序)可以从两个池中分配内存。这些是分页池,可以由内存管理器自行决定将其调出,而非分页池则必须始终保留在RAM中。开发人员根据自己的需求决定将使用哪个池。建议尽可能使用页面缓冲池,因为这样可以最大程度地提高系统内存管理器的灵活性。两个池的大小都是有限的,特别是在32位系统中,这些限制可能会带来问题。分页池要大得多。如果非页面缓冲池使用过多,则可能会达到大小限制,这将导致一些严重的系统问题。

在任务管理器中标记为“分页”和“非分页”内核内存的项目显示了这些池的分配。它与实际调出多少内存的动态状态绝对无关。“ DisablePagingExceutive”注册表项会影响部分页面缓冲池的动态页面状态,因此Ask Manager永远不会显示其效果。


1

如果对系统设置进行更改,则需要了解此信息或与之等效的信息,以了解对系统设置所做的更改是什么类型的结果,相对于该结果,结果可能是肯定,中性或否定系统性能。

您可以做的是在Windows中打开“资源监视器”。转到搜索工具并搜索“资源监视器”。或打开运行命令工具(我会以为所有阅读此工具的人都知道该怎么做),然后键入“ resmon”。

使用此工具可以监视各种系统活动,例如CPU活动,内存活动和硬盘活动。如果您还不熟悉“资源监视器”中包含的信息,那么请对其进行一些研究,因为您将需要熟悉它来运行测试,以帮助您测量对系统设置所做的更改的结果类型。

基本思想是,在使计算机系统运行某些任务时运行“资源监控器”,以测量对系统设置所做的更改与性能相关的结果。运行使用系统资源来测试性能的任务。例如,有些任务可以测试处理器,RAM内存,硬盘,图形处理器单元或网络设备。使用Google查找如何测试您要测试的计算机资源的性能。

例如,如果您对系统设置“ Disable Paging Executive”进行了更改,则可以在计算机资源上运行测试,并使用“ Resource Monitor”来衡量更改产生的结果类型(如果有更改的话)。

然后,在数据之间进行比较,以查看您所更改的旧系统设置和新系统设置之间是否存在重大差异。

您可能并不总是需要使用“资源监视器”,因为一些监视和衡量您的软件附带了一些测试系统资源性能的方法。

关键是您想采用一种系统的方法,以查看相对于您请求计算机执行的任务,更改是否对系统性能完全没有任何影响。

更改一项设置。测试它的性能变化。确定测试结果。根据结果​​,决定是将设置更改回原来的设置,还是更改为其他设置,还是将其保留在原位。1)设置2)测试3)结果4)决定。

您可以对所有类型的系统设置调整(包括“禁用分页执行程序”)使用这种逻辑推论方法。

调整愉快。


1

有很多!在这篇文章的非常好的信息中,我印象深刻。我注意到DisablePagingExecutive最好在桌面的第一个站点上完成,它是从xp到Windows 10(从32位到64位)的任何Windows版本的全新安装(只要您的主板上有足够的内存),将值1应用于DisablePagingExecutive后,还必须对LargeSystemCache设置相同的值。

同样如上所述,这些调整通常在Windows服务器中进行,但在调试时也很方便。

使用这些修改需要您自担风险,因此,请考虑到上面每个人都提到的内容,谷歌搜索提到的每个键(DisablePagingExecutive和1我都不记得看到... LargeSystemCache)也无济于事。

确保您有足够的内存。内存不足会导致系统上您不想处理的问题,并且可能会导致系统蓝屏(bsod)。

我会在上面应用这些调整的最低内存为4gb,也就是说,如果您不使用占用大量内存的密集型应用程序,或者如果您进行任何游戏,那么最好不做这些。

(XP:至少至少256 mb的RAM)

在注册表中执行任何操作之前,最好将注册表升级到存储设备,而不是操作系统硬盘驱动器或任何类型的单独存储,以便您可以根据需要还原注册表。

我上面的信息确实跨越了T并加了点i。

                    Make sure to backup your system.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.