如何找到占用我系统所有内存的东西?(不是 SuperFetch)

如何找到占用我系统所有内存的东西?(不是 SuperFetch)

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

我肯定是出现了内存泄漏或者其他什么问题——我的 12 GB 内存的使用率是 75%,但是任务管理器列出的进程内存使用情况却不对(是的,已选中“显示所有用户的进程”)。

看起来这个“幻像”内存使用量随着系统运行时间的增加而增加。它显示总共有 118 个进程。除了前 5 个进程外,其他所有进程的内存使用量都在 50 MB 以下。

占用空间最大的进程是 Firefox,占用 2.6 GB。Adobe Premiere 占用 900 MB。插件容器占用 300 MB。Pale Moon 占用 275 MB。Explorer.exe 占用 94 MB。

我怎么才能找到哪些程序占用了剩余的内存?任务管理器似乎无法看到所有正在使用的内容。也许是存在某种内存泄漏?或者程序没有正确释放已使用的内存?

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

资源监视器打印输出

笔记:

  1. 由于我的主操作系统驱动器是 SSD,因此我的系统上禁用 SuperFetch。
  2. 我理解未使用的内存就是“浪费”内存的原理。但是,当我看到内存使用量几乎达到峰值容量时,它会阻止我运行/加载后续程序(出于我自己的担忧),甚至会让我执行任务以关闭许多程序(这对减少内存使用量几乎没有什么效果,至少在短时间内没有明显的效果)。
  3. 当内存填满时,我讨厌看到 SSD 上的 1GB 页面文件扩展到我设置的 6GB 限制,并且我“紧张”地想到,随着 Windows 大量/猖獗地将其用作成熟的内存条,我的“可怜”SSD 可能会被磨成灰尘。(就这一点而言,我是否应该将页面文件硬限制为静态 1GB?)

答案1

通常,您可以使用以下工具更好地了解哪些内容占用了您的内存拉姆地图

在此处输入图片描述点击放大

通常,为了提高性能,被拉入 RAM 的内存映射文件会耗尽内存。

注意积极的RamMap 中的列。这是当前实际正在使用的内存。有关自由的内存经常会产生误导。这包括任务管理器等 Windows 工具。

更多信息


我还想谈谈您问题中的一些其他观点。

但是,当我看到我的内存使用量几乎达到峰值容量时,它会阻止我运行/加载后续程序(出于我自己的担心),甚至会让我执行任务来关闭许多程序(对减少内存使用量几乎没有太大效果,至少在短时间内没有明显的效果)。

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

可能你也使用了错误的指标。你需要关注你的承诺收费进程探索器术语)。

在此处输入图片描述

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

这引出了我们的下一个话题。

当内存填满时,我讨厌看到我的 SSD 上的 1GB 页面文件扩展到我设置的 6GB 限制,并且我“紧张”地想到我的“可怜”SSD 可能会被磨成灰尘,因为 Windows 大量/猖獗地将其用作成熟的内存条。(就这一点而言,我是否应该将页面文件硬限制为 1GB?)

在我看来,这里有几个问题。一般来说,强烈反对对分页文件的大小设置限制。Mark Russinovich 在我上面链接的视频中解释了这一点(比我解释得好多了)。

这只会导致糟糕的事情。当 Windows 需要将超过 6GB 的数据刷新到分页文件但您将其限制为 6GB 时,它应该做什么?是一个重大问题。

让 Windows 处理页面文件。我强烈建议你做的唯一一件事就是将页面文件从 SSD 中移出。Tom Wijsman 在他的博客文章中对此进行了出色的解释最大程度延长 SSD 的使用寿命,我推荐你阅读一下。

答案2

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

拉姆地图该工具帮助我找到了根本原因。

首先,我注意到RamMapDriver Locked 占用了超过29GB32GBRAM 的内存。然后,我找到一些文章,解释了 Driver Locked 高内存使用率可能是由HyperV启用动态内存引起的,然后我就证实了这一点。

答案3

RAMMap 显示C:\Windows\SoftwareDistribution\DataStore\DataStore.edb映射文件浪费了我宝贵的 4 Gb RAM 中的 400 Mb。

此外,Windows Update 在更新该巨型文件的过程中不断减慢系统速度。

这可能是许多低端PC的常见问题。

PC Boots 随后会写入巨大的 datastore.edb 文件,从而减慢计算机速度寻找可能的解决方案。

答案4

您可以尝试 Sysinternal 的 RAMMAP,但它显示内存使用情况的方式与任务管理器和资源管理器不同,因此没有太大帮助。

任务管理器和资源监视器不显示文件缓存及其大小。它是内存中“正在使用”部分的一部分(请参阅资源监视器)。文件缓存可能会增长到非常大的大小,尤其是当计算机连续运行数小时时。由于文件缓存和内存泄漏的增长,程序的整体内存使用量会随着时间的推移而增加。有些程序的内存管理实在是太差了。

最小化内存使用量的一种方法是减少进程数量。(为什么要运行 118 个进程?为什么要运行多个 Explorer.exe 实例?)

有一个程序可以帮助您定期减少内存使用量并定期压缩文件缓存。(PcWinTech 的 CLEANMEM)。以这种方式减少内存使用量还可以减少甚至消除 Windows 将数据从内存写入交换文件(在您的 SSD 上)的需要。因此,它可以延长 SSD 的使用寿命。减少内存使用量还可以提供更多“待机”内存,允许 Windows 在待机内存中预加载更多文件,从而加快系统速度。

相关内容