如何找到未在任何任务管理程序中显示的已提交内存泄漏/使用情况?(Windows 10)

如何找到未在任何任务管理程序中显示的已提交内存泄漏/使用情况?(Windows 10)

我一直遇到操作系统响应问题(alt-tab、打开程序、终止进程有时需要方式最近我发现自己最近在使用我的电脑时遇到了内存占用过长的问题(即占用内存太长),并且意识到几个月前一直搁置的一个未解决的问题仍然存在,而且很烦人。我的页面文件随着时间的推移而迅速膨胀,打开电脑几个小时后,已用内存通常就会超过 30 GB,即使我打开的应用程序只有 Firefox、Discord 和 Steam。虽然这个速度在 30-35 GB 左右时会减慢,但它会继续以更慢的速度攀升,最终达到我已用内存的上限 ~40-42 GB,并导致我的电脑硬锁定,需要进行完整的电源循环。在导致这种锁定之前没有任何症状,所以有几次我感到很意外。这个限制似乎需要超过 8 小时的时间才能达到 - 我有时可以连续运行几天而没有问题(通过休眠),有时只能运行几个小时。

我尝试在任务管理器、资源监视器、Process Hacker、RamMap 和 Process Explorer 中寻找有问题的程序,但是当将所有显示的分配相加时,它们都显示相同的数据,即总共约 14 GB 的已用 RAM。

上次我尝试处理这个问题时,我尝试使用 powershell 脚本,但从脚本中返回的大多数值都没有帮助(~32 位 int 限制)。我只知道足够的 powershell 来审查我输入的脚本,但不幸的是,还不足以真正自己查看并寻找更有用的值。我怀疑它们是虚拟内存值,我不确定它们对已提交内存是否有影响,如果有的话。

重新启动我的电脑可以暂时解决这个问题,但由于一个愚蠢的问题,我每隔几个小时就要重新启动我的电脑,占用了我 C 盘 10% 以上的空间,开始变得越来越麻烦,我正在寻找一个更持久的解决方案。

当我最初启动时,已提交的内存大小合理;它开始大约为 4-8 GB,一旦我的所有程序(Discord、Steam、驱动程序等)启动,它就会增长到大约 11 GB。一旦超过约 35 GB 的已提交内存,响应性问题就会开始出现。

如果有关系的话,我的物理 RAM 使用率通常在 50%-60% 左右;大约 8 - 9 GB 的使用量,其中大约 2 - 4 GB 是 Firefox,大约 0.5 GB 是压缩 RAM。

CPU:AMD Ryzen 2400G RAM:16 GB 无 GPU

实际硬件列表可能需要一点时间;我手头没有。如果需要,我会开始挖掘我使用的在线店面的订单历史记录。

更新已持续至少 6 个月(大部分)一致的驱动程序更新。

我搜索了几个星期,没有找到任何可以提供帮助的问题/答案。我找到了一些类似问题的描述,但这些问题通常位于分页/非分页池中(我的没有问题),或者有一个提交大量内容的进程(我的没有),或者它被驱动程序锁定(我的再次没有报告可疑的高数字)。有几个提到了打印后台处理程序“splwow64.exe”,但我没有运行它。禁用打印后台处理程序服务没有帮助。我看到的唯一可能类似的问题没有答案,例如这个:超级用户问题链接(尽管这个是针对 8.1 的)

除了外置硬盘(没有自己的驱动程序)之外,我使用的唯一配件是 wifi 天线。除此之外,我知道我有 APU 的 AMD 驱动程序,以及不再使用的鼠标的 Logitech 驱动程序。

游戏似乎不会影响这一点,但更有针对性的测试可能会证明我错了(即特定游戏或特定渲染设置)。然而,浏览 Reddit 和 Youtube 似乎确实加剧了这个问题,尽管我不确定这些网站如何导致我的操作系统丢失已提交内存的跟踪。

上述诊断程序的一些截图:(所有程序均以管理员身份运行)Process Hacker 中的内存细分: 图片链接

任务管理器中的内存细目: 图片链接

Process Explorer 中的内存细分: 图片链接

Process Hacker 中的任务列表,包含已提交的内存,按最高顺序排列: 图片链接

任务管理器中的相同列表: 图片链接

Process Explorer 中的任务列表,按私有字节数从高到低排序: 图片链接

RAMMap 摘要: 图片链接

如果我可以或应该提供更多信息,请告诉我!如果我对 Windows 10 的“正常”部分有误解,也请告诉我!

答案1

我知道这个问题已经问了 11 个月了,所以问题(或有问题的整台电脑)现在可能已经消失了。LeakingAmps 最有可能是非 Microsoft 驱动程序泄漏了内存,这是造成这种情况的原因。技巧是使用排除法将问题隔离到特定的驱动程序。通常的候选对象通常是视频驱动程序,因此请卸载您的驱动程序并运行 VGA 驱动程序以查看问题是否消失。您提到没有 GPU,但现实情况是您可能正在使用英特尔视频驱动程序。您不太可能更新过视频驱动程序,因此请尝试更新(或删除)它们。否则,继续测试,同时一次删除一个驱动程序。我预计,一旦删除所有驱动程序,并且您正在使用带有通用键盘和鼠标驱动程序的 VGA 视频,并且没有音频,您将无法重现内存泄漏。然后一次添加一个驱动程序,直到问题再次出现,以找到罪魁祸首。如果是视频驱动程序,请考虑使用视频芯片制造商提供的参考驱动程序,而不是系统构建者或主板制造商提供的驱动程序。

相关内容