在过去的许多机器上,在不同版本的 Windows(2000、XP 和无 Vista)上,我启用了 DisablePagingExecutive 以尝试提高性能。在每种情况下,我都有足够的记忆力,在当前情况下尤其如此。但是,在启用此注册表调整并重新启动后,我在一段时间后检查了任务管理器,即使我有 2GB 的可用物理内存,我仍然显示大量内核分页到磁盘。
有没有人成功使用过这个调整?曾经?当我检查任务管理器(性能选项卡 - >“内核内存”部分)时,也许我正在查看错误的指示器,但我想阻止 Windows 将所有可能的内容分页到磁盘,特别是考虑到提供的内存量这几天台式机。似乎应该存在“除非存在极大的内存压力,否则不要分页到磁盘”选项 - 有吗?
互联网上有大量关于此功能的混淆。该设置仅影响称为执行程序的内核部分,然后仅影响可分页的部分。内核的其他部分完全不受此设置的影响。
内核分页的工作方式与任何其他分页相同。经常访问的代码和数据将保存在 RAM 中,而其余的将保留在磁盘上——它所属的地方。系统不会从 RAM 中删除内核的任何部分,除非它找到了更好的用途。微软对分页系统进行了大量的研究和测试。
在内核的上下文中,“非分页”是指在任何情况下都不能被分页的代码和数据。“分页”是指必要时可以分页的代码和数据。从任务管理器中无法得知实际被分页了多少。部分被分页的代码一开始就没有从磁盘读取,因为它还不需要。并非所有内核都被频繁访问。您不应期望分页和非分页号码会受到相关设置的影响。
注意:当代码被调出时,它通常不会被复制到页面文件中。这不是必需的,因为它可以简单地从原始文件重新加载。这适用于大多数代码,而不仅仅是 kerenl。
使用合理数量的 RAM,该设置基本上不会做任何事情。它只是防止系统分页它不想分页的数据。
我不确定你是否意识到这一点,但页面错误是 Windows 用来加载可执行代码的机制。因此,例如,将 DLL 映射到虚拟内存,然后根据需要使用页面错误从磁盘进行实际加载。页面文件不参与其中。
所以很多你认为“分页到磁盘”的东西可能是最初在磁盘上的东西。
只是添加此设置的另一个用途:
xperf
堆栈遍历需要它。http://blogs.msdn.com/b/pigscanfly/archive/2009/08/06/stack-walking-in-xperf.aspx
关于设置的另一条信息。这句话可以在互联网上找到,我不知道它的主要来源。
因此可以得出结论,除了
xperf
-usage 之外,它的好处是模糊的:本质上,它限制了一些“几乎随机”的内容,无法进行分页和进一步思考 -因此导致其他内容被更频繁地分页。DisablePagingExecutive 调整不会停止分页,其目的是防止“执行”(即内核本身)被分页,从而导致整个系统变慢,而不仅仅是单个分页应用程序。
您可以尝试通过删除系统属性(或 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PagingFiles)中的所有页面文件来完全禁用分页。这对我来说效果很好,但是当你用完物理内存时事情会变得相当不愉快,并且你必须有一个页面文件来调试 STOP 错误。
系统级组件,例如内核、执行程序和设备驱动程序,可以从两个池中分配内存。这些是分页池,可以由内存管理器决定分页,以及必须始终保留在 RAM 中的非分页池。开发人员根据自己的需要决定使用什么池。建议尽可能使用分页池,因为这使系统内存管理器具有最大的灵活性。这两个池的大小都是有限的,特别是在 32 位系统中,这些限制可能会造成问题。分页池要大得多。如果过度使用非分页池,可能会达到大小限制,这将导致一些严重的系统问题。
任务管理器中标记为“分页”和“非分页”内核内存的项目显示了这些池的分配。它与实际调出多少内存的动态状态完全无关。“DisablePagingExceutive”注册表项会影响部分分页池的动态分页状态,因此询问管理器永远不会显示其效果。
如果您对系统设置进行更改,您需要了解此信息或其等效信息,以便了解对系统设置的更改会产生什么类型的结果,结果可能是积极的、中性的或消极的系统性能。
您可以做的是在 Windows 中打开“资源监视器”。转到搜索工具并搜索“资源监视器”。或者打开运行命令工具(我假设任何阅读本文的人都知道如何操作)并输入“resmon”。
使用此工具可以监控各种系统活动,例如 CPU 活动、内存活动和硬盘活动。如果您还不熟悉“资源监视器”包含的信息,那么请稍微研究一下,因为您需要熟悉它才能运行测试,这将帮助您衡量系统设置更改所产生的结果类型。
基本思想是在让计算机系统运行某些任务时运行“资源监视器”,以测量更改系统设置所产生的与性能相关的结果。运行使用您尝试测试其性能的系统资源的任务。例如,有些任务可以测试处理器、RAM 内存、硬盘、图形处理器单元或网络设备。使用 google 了解如何测试您要测试的计算机资源的性能。
例如,如果您对系统设置“禁用分页执行”进行了更改,您可以对计算机资源运行测试并使用“资源监视器”来测量更改产生的结果类型(如果有任何更改)。
然后在数据之间进行比较,看看旧系统设置和您更改的新系统设置之间是否有任何显着差异。
您可能并不总是需要使用“资源监视器”,因为一些测试系统资源性能的方法会随软件为您提供监控和测量。
关键是您要遵循一种系统的方法来查看相对于您要求计算机执行的任务,更改是否对系统性能有任何影响。
更改一项设置。测试它的性能变化。确定测试结果。根据结果,决定是否将设置更改回原来的设置或其他设置,或者将其保留在原处。1)设置 2)测试 3)结果 4)决定。
您可以使用这种逻辑推演方法进行各种系统设置调整,包括“禁用寻呼执行”。
快乐调整。
有很多!关于这篇文章的非常好的信息,我印象深刻。我注意到值为 1 的 DisablePagingExecutive 最好在桌面的第一个站点完成从 xp 到 Windows 10、32 位到 64 位的任何 Windows 版本的全新安装(只要主板上有足够的内存)但是在值 1 应用于 DisablePagingExecutive 之后。
同样如上所述,这些调整通常在 Windows 服务器中进行,但在调试时也很方便。
这些修改的使用风险自负,因此请考虑上面每个人提到的内容,谷歌提到的每个键都没有什么坏处,这些键是 DisablePagingExecutive。
确保你有足够的内存。没有足够的 ram 会导致系统出现您不想处理的问题,并且可能会导致系统出现蓝屏 (bsod)。
4gb 的 ram 将是我在上面应用这些调整的最低要求,如果你不使用使用大量 ram 的密集应用程序,或者如果你做任何游戏,那么最好不要管这些。
(XP:至少 256 mb 的内存)
在您在注册表中执行任何操作之前,最好将注册表备份到存储设备,而不是操作系统硬盘驱动器或任何类型的单独存储,以便您可以在需要时恢复注册表。
我上面的信息确实跨越了 T 并点了 i。
注意:与 DisablePagingExecutive 一起使用的另一个很好的调整是位于 Lanman 服务器/参数中的“大小”。“大小”注册表项有助于减轻硬盘驱动器的压力。您会注意到,一旦添加此键并将其值更改为 3,您的应用程序启动速度会有些慢,但是当您将 DisablePagingExecutive 设置为 1 并将 Size 值设置为 3 时,您最常用的应用程序或应用程序密集型 I/O 部分被放置在 ram 的缓存部分中,这反过来使应用程序加载更快。
在应用 DisablePagingExecutive=1 和 Size=3 后,使用 passmark 性能测试我看到了相当大的改进。
它按照它所说的去做,不要分页内核或驱动程序代码。
它只是确保内核和驱动程序始终存在于内存中。
回到您拥有奔腾 6xx 和 256 mb ram 的那一天,如果您的某些驱动程序代码或内核代码将被换掉,那么如果您有更多的 mb,那将会有所不同,但现在它的韦恩 Windows 无论如何都如此臃肿10GB 嗨。