我如何找到耗尽我系统所有内存的内容?(不是 SuperFetch)

Col*_*ice 69 memory windows troubleshooting

如果任务管理器似乎没有正确报告,如何诊断/发现与内存相关的问题?

我一定有内存泄漏或其他问题——我的 12 GB 内存使用率为 75%,但任务管理器中进程的内存使用情况列表没有增加(是的,选中了“显示所有用户的进程” )。

似乎这种“幻影”内存使用量与系统运行时间有关。它显示总共有 118 个进程。除了前 5 名之外,所有这些都在 50 MB 以下。

顶级进程是 firefox,使用 2.6 GB。Adobe 首映 900 MB。300 MB 的插件容器。275 MB 的苍白月亮。Explorer.exe 为 94 MB。

我到底怎么才能找到耗尽我剩余记忆的东西?似乎任务管理器没有看到正在使用的所有内容。也许存在某种内存泄漏?或者程序没有正确释放已用内存?

资源监控报告(点击查看大图):

资源监视器打印输出

笔记:

  1. 由于我的主要操作系统驱动器是 SSD,因此我的系统上禁用了 SuperFetch。
  2. 而且我理解未使用的 ram 是“浪费”的 ram 的原则,可以这么说。但是,当我看到我的内存使用量几乎达到峰值容量时,它阻止我运行/加载后续程序(出于我自己的考虑),甚至将我发送到任务以关闭许多程序(对减少内存使用量几乎没有影响,至少明显且在短时间内)。
  3. 当内存填满时,我讨厌看到我的 SSD 上的 1GB 页面文件扩展到我设置的 6GB 限制,并且我“出汗”,知道我的“可怜”SSD 很可能会像 Windows 一样被粉碎成灰尘/rampantly 转而将其用作成熟的记忆棒。(关于这一点,我是否应该将页面文件硬限制为静态 1GB?)

Der*_*ler 63

您通常可以使用RamMap 之类的工具更好地了解什么正在消耗您的内存。

在此处输入图片说明点击放大

通常,内存可能会被已拉入 RAM 以提高性能的内存映射文件用完。

注意RamMap中的Active列。这是当前实际使用的内存。有关可用内存的指标通常具有误导性。这包括任务管理器等 Windows 工具。

更多信息


我还想从你的问题中解决一些额外的问题。

但是,当我看到我的内存使用量几乎达到峰值容量时,它阻止我运行/加载后续程序(出于我自己的考虑),甚至将我发送到任务以关闭许多程序(对减少内存使用量几乎没有影响,至少明显且在短时间内)。

你的推理完全没问题。但是,除非您因内存不足而遇到问题,否则您应该避免这种做法。操作系统应处理此任务,并在需要物理内存时将数据刷新到分页文件中。

可能,您也在练习中使用了错误的指标。您想关注您的提交费用Process Explorer术语)。

在此处输入图片说明

提交费用是所有已用内存的总和。您可以在屏幕截图中看到,它也有限制。这个限制是我的物理内存的大小 + 我的页面文件的大小。如果要达到该限制,那将是一个问题。

这让我们进入下一个主题。

当内存填满时,我讨厌看到我的 SSD 上的 1GB 页面文件扩展到我设置的 6GB 限制,并且我“出汗”,知道我的“可怜”SSD 很可能会像 Windows 一样被粉碎成灰尘/rampantly 转而将其用作成熟的记忆棒。(关于这一点,我应该将页面文件硬限制为 statci 1GB 吗?)

在我看来,这里有几件事是错误的。通常,强烈建议不要对分页文件的大小设置限制。Mark Russinovich 在我上面链接的视频中解释了这一点(比我以往任何时候都好)。

只有坏事才能由此而来。当 Windows 需要将超过 6GB 的数据刷新到分页文件中时,它应该做什么,但您将其限制在 6GB?是一个重大问题。

让 Windows 处理分页文件。我强烈建议您做的唯一一件事就是将分页文件从 SSD 上移开。Tom Wijsman 在他的博客文章最大化您的 SSD 的使用寿命 中很好地解释了这一点,我建议您阅读该文章。

  • 感谢您的帮助和附录。至于你关于页面文件和 SSD 的说明——我听到的正好相反(因此我听到了它现在的样子)。并不是说我无论如何都拥有明确的“权利”,但我读过该页面文件在 SSD 上是最佳的,因为 SSD 具有速度优势。至于降低SSD的寿命,我听说只要页面文件有限,这可以忽略不计。 (3认同)
  • 至于让 Windows 管理它——Windows 希望允许我的页面文件扩展到 18GB!不幸的是,我无法负担 SSD 上用于分页的空间量。我曾假设 12GB 的内存对于 Windows 来说足够使用了,奇怪的是,Windows 似乎很快就尽可能多地吸收了可用的内存,似乎缓存了它可以使用的任何东西:)因此,我担心如果我让它拥有它想要的任何大的页面文件,它会找到足够的文件来映射到内存中以快速桥接以填充整个页面文件。 (2认同)
  • 关于SSD上的页面文件,微软有这样的说法(https://blogs.msdn.microsoft.com/e7/2009/05/05/support-and-qa-for-solid-state-drives/):_”页面文件应该放在 SSD 上吗?- **是的。** 大多数页面文件操作都是小型随机读取或较大的顺序写入,这两种操作类型 SSD 都能很好地处理。[...]事实上,给定典型的页面文件参考模式以及 SSD 在这些模式上具有的有利性能特征,很少有文件比页面文件更好地放置在 SSD 上。"_ (2认同)

小智 5

就我而言,内存使用率高的原因是 Hyper-V 虚拟机,我为该虚拟机启用了 RAM 动态内存设置。

RamMap工具帮助我定位了根本原因。

首先,我注意到RamMap驱动程序锁定消耗的内存比29GB我的32GB内存还要多。然后,我发现一些文章解释了Driver Locked高内存使用率可能是由于HyperV启用了动态内存而引起的,然后我就确认了这一点。