use*_*667 26 memory windows performance cache
许多人通过阅读 Microsoft 白皮书等了解 Windows 内存管理器缓存的工作原理。但是,描述与非常大/不断增长的映射文件和备用列表相关的实际性能问题(缓慢)的文档相对较少。
我有一台用作服务器的 Win7 64 位(8Gb RAM)PC。我不能再添加任何内存了。它有一堆电视调谐器,可以同时将几个巨大的 mpeg2 文件(每个至少 3-8GB)记录/写入 HDD 24/7。根据我的电脑录制电视节目的繁忙程度,1-3 天后,我的电脑变得迟钝。
仅查看 Windows 任务管理器,似乎我没有打开很多大型应用程序;并且,大量的“可用内存”。即使我关闭了所有活动进程,PC 仍然运行缓慢。但是在使用RamMap的时候,可以看到这些大的mpeg2文件变成了主备列表中的映射文件;随着时间的推移,这使我的 PC 变得非常缓慢。如果我在 RamMap 中选择“Empty Standby list”,我的电脑会立即变得非常灵敏;就像我刚刚重新启动它一样。我没有其他办法可以解决呆滞问题。事实上,除非我清空待机列表或重新启动,否则 PC 永远不会从这种缓慢状态中恢复过来。
我有一个命令行实用程序 EmptyStandbyList.exe,我发现它可以悄悄地清除备用列表,而不必在 RamMap 的 GUI 中执行此操作。然而,不幸的是,它还清除了备用列表中的较小项目,这些项目对于保持在备用列表中的性能非常有用。
在 Google 上搜索时,我发现其他人的问题与我几乎完全相同。然而,他们的大部分问题都没有得到解答。没有真正解释为什么会发生这种情况;并且,除了“空备用列表”技术之外,没有确定的方法来解决这个问题。
我看到有人提到过一个名为“动态缓存”的 MS 实用程序/服务;但不确定它是否能特别治愈我想要的。此外,它的 Win7/Win2008 R2 版本似乎只能通过 MS 支持获得。我还看到了一些设置“最小/最大 NT 缓存限制”的实用程序;但那些看起来像是特定于进程的工作集,而不是备用列表。
我希望能够跳出思维定势的人可以为我想出更优雅的治疗方法,而不是我不得不定期使用粗暴地清空整个待机列表;并且,希望对我(和其他人)所看到的症状有明确的解释。我提到“开箱即用”的原因是因为已经有很多人喜欢只背诵映射文件和备用列表优先级“应该”如何在纸上工作;这对我不是很有帮助。
备用列表是 Superfetch 缓存,“动态缓存”修复了另一个问题。该服务修复了 NTFS 元数据缓存过高的问题。但 Standbylist 和这个 Cache 是两个不同的东西。NTFS 缓存显示为已用内存,而备用缓存包含数据,但如果您确实新建该内存来在其中存储数据,则可以很快清空。
在 Sysinternals 论坛上,用户 wj32(Process Hacker 的作者)创建了一个命令行工具,可以执行您想要的操作:
http://forum.sysinternals.com/rammap-empty-standby-list_topic27297_post132769.html#132769(在此处下载)
如果它“解决”了您的问题,请尝试一下。
归档时间: |
|
查看次数: |
35038 次 |
最近记录: |