我的 Windows 10 机器出现了一个奇怪的问题:启动时消耗了大部分内存(大约20 GB32 个进程)。奇怪的是,我找不到任何进程占用接近这个数量的内存;实际使用量最多可能为 3-4 GB。以下是我所做的:
- 查看了任务管理器和资源监视器中的内存统计信息;没有什么异常。
- 查看了进程资源管理器中的内存统计信息;没有什么异常。
- 安装了 WDK 并使用 poolmon (非分页、按字节排序) 查看内存使用情况;同样,没有什么有趣的东西。
- 检查事件查看器中的错误;我不太确定“正常”应该是什么样子,但我确实看到 DCOM 引发了相当多的错误。
- 安装了 WPT 并使用 xperf 运行跟踪,然后使用 WPA 尝试追踪发生了什么。这远远超出了我的能力范围,但我仍然没有看到任何使用大量内存的标签。
我还运行了 AV 软件、malwarebytes 以及类似软件——结果为零。
我真的不知道如何用其他方法调试这个问题;我几乎要重新安装我的 Windows,但如果可能的话,我想避免这样做。
有任何想法吗?
编辑:我注意到一些奇怪的调用递归导致堆栈跟踪中出现定期的 CPU 峰值,这似乎与内存分页有关,因此我禁用了系统页面文件(因为我有 32GB),问题消失了一周。现在又出现了,所以我附上了一个应该有帮助的屏幕截图。这是在系统启动时;请注意,一开始使用 16GB(这很低),但如果你计算一下进程本身使用的 RAM 量,这个数字远不及这个数字。
编辑2:这真是令人沮丧。Windows 似乎不知道发生了什么;我终于触发了Resource-Exhaustion-Detector
“虚拟内存不足”事件,但占用内存最多的三个进程据报告每个消耗不到 1 GB。唯一能解决这个问题的方法似乎是启用然后禁用系统页面文件(中间重新启动)。