RamMap“清空待机列表”可大幅加快 PC 速度。有没有更好的方法来实现这一点?

RamMap“清空待机列表”可大幅加快 PC 速度。有没有更好的方法来实现这一点?

许多人通过阅读 Microsoft 白皮书等了解 Windows 内存管理器缓存的工作原理。然而,描述与非常大/不断增长的映射文件和待机列表相关的实际性能问题(迟缓)的文档相对较少。

我有一台用作服务器的 Win7 64 位(8GB RAM)PC。我无法再为其添加内存。它有一堆电视调谐器,可全天候录制/写入多个同时巨大的 mpeg2 文件(每个至少 3-8GB)到硬盘。根据我的 PC 录制电视节目的繁忙程度,1-3 天后,我的 PC 就会变得迟钝。

仅通过查看 Windows 任务管理器,似乎我没有打开很多大型应用程序;而且“可用内存”充足。即使我关闭所有活动进程,PC 仍然运行缓慢。但是,使用 RamMap 时,我可以看到这些大型 mpeg2 文件成为活动待机列表中的映射文件;随着时间的推移,这使我的 PC 运行非常缓慢。如果我在 RamMap 中选择“清空待机列表”,我的 PC 会立即变得非常灵敏;就像我刚刚重新启动它一样。我无法采取其他任何措施来解决运行缓慢的问题。事实上,除非我清空待机列表或重新启动,否则 PC 永远无法从这种运行缓慢中恢复过来。

我有一个命令行实用程序 EmptyStandbyList.exe,我发现它可以悄悄地清除待机列表,而不必在 RamMap 的 GUI 中执行此操作。然而,不幸的是,它还会清除待机列表中较小的项目,这些项目对于性能目的非常有用,可以保留在待机列表中。

在 Google 上搜索时,我发现其他人也遇到了和我几乎一模一样的问题。但是,他们的大多数问题都没有得到解答;没有真正解释为什么会发生这种情况;而且,除了“清空待机列表”技术之外,没有其他明确的方法来解决这个问题。

我曾看到有人提到一种名为“动态缓存”的 MS 实用程序/服务;但不确定它是否能解决我的具体需求。此外,它的 Win7/Win2008 R2 版本似乎只能通过 MS 支持获得。我还看到了几个设置“最小/最大 NT 缓存限制”的实用程序;但这些实用程序似乎特定于进程的工作集,而不是待机列表。

我希望有想法新颖的人能为我找到更优雅的解决方法,而不是让我经常粗暴地清空整个备用列表;并且希望对我(和其他人)看到的症状有一个明确的解释。我之所以提到“创意新颖”,是因为已经有很多人喜欢在纸上背诵映射文件和备用列表优先级“应该”如何工作;这对我没什么帮助。

答案1

备用列表是 Superfetch 缓存,“动态缓存”修复了另一个问题。该服务修复了 NTFS 元数据缓存过高的问题。但备用列表和此缓存是两个不同的东西。NTFS 缓存显示为已使用内存,而备用缓存包含数据,但如果您真的知道该内存用于存储数据,则可以非常快地清空。

在 Sysinternals 论坛上,用户 wj32(Process Hacker 的作者)创建了一个命令行工具,可以完成您想要的操作:

http://forum.sysinternals.com/rammap-empty-standby-list_topic27297_post132769.html#132769在这里下载

如果它能“解决”您的问题,请尝试一下。

答案2

是不是因为 Windows 强制从交换驱动器加载/保存内容而导致速度缓慢,以至于每次录制视频时,待机列表都会增长,并且由于交换驱动器很大,其他(后台)程序现在被推送到交换驱动器,从而减慢了机器的速度。

如果这台电脑仅用于录制电视节目,那么解决方案可能是将交换驱动器设置为 Windows 允许的最小值,我认为是 16MB。不要完全关闭交换驱动器,因为这样 Windows 会秘密创建交换驱动器。

我无法想象,如果 Windows 只是从 RAM 读取数据,而没有从磁盘加载新程序,它会变得迟缓。

引自 MS 文档http://download.microsoft.com/download/7/E/7/7E7662CF-CBEA-470B-A97E-CE7CE0D98DC2/MemorySizingGuidanceWin7.docx

“Windows 7 SuperFetch™ 与内存管理器协作,为待机列表中的页面设置优先级。最近被放在待机列表中的页面一开始具有较高的优先级,随着时间的推移,其优先级逐渐降低。

如果系统内存太少,无法处理工作负载,则待机列表中只有一小部分页面具有低优先级。通过监视不同优先级的页面数量,您可以确定系统是否会因增加安装的 RAM 量而受益。

总的来说,目标是确保系统可以在内存中维护最近引用的页面,并且仍有足够的可用内存来满足任何即时的内存需求。”

也许电视录制程序也是如此,因为它一直在运行并且不会停止,将进入待机列表的每个页面标记为最高优先级,从而将其他内容推开,这通常会加快 Windows 的速度。您可能会认为,当内存不足时,以及/或者当没有交换文件时,Windows 无法秘密开始大量使用交换驱动器,从而减慢速度。这是基于待机列表中的数据不会加载到交换驱动器的假设。

相关内容