我有两台装有Windows 10的计算机:
个人电脑:
- Windows 10 教育版 1803(四月更新)
- 英特尔酷睿 i5 8400
- Crucial Ballistix Sport LT 16GB (2x8GB) DDR4 2400
- MSI GeForce GTX 1060 3GT OC,3GB GDDR5
- MSI Z370 SLI PLUS - 英特尔 Z370
- 三星 SSD 850 EVO - 250GB,基本款
- 希捷 BarraCuda - 2TB
笔记本:
- Windows 10 家庭版 1803(4 月更新)
- 规格:https://msi.com/Laptop/GS70-2PE-Stealth-Pro/Specification
问题是,计算机运行的时间越长,占用的 RAM 就越多。占用的 RAM 越多,运行速度就越慢,尤其是在玩游戏时(有些游戏甚至因为每隔几秒钟就会出现“微延迟”而无法玩,所以我需要重新启动计算机来清除 RAM),甚至视频在一段时间后也会开始与音频不同步。
此外,在 4 月更新之后,系统进程开始消耗大量 CPU,这可能是因为 xperf 程序可能指出的 RAM 使用率增加。也许计算机运行时间越长,CPU 使用率就越高,但情况并不像 RAM 那样简单。
我尝试使用poolmon,发现池标签“Proc”和“Toke”正在增加其内存使用量。但我无法找到哪个驱动程序或其他软件使用这些标签并泄漏内存。
这两台电脑的问题大概是在一月份我买电脑的时候开始的。
以下是大约 5 小时后的一些截图:
- 任务管理器中“进程”选项卡中的 RAM 使用情况
- 任务管理器中的“性能”选项卡中的 RAM 使用情况
- 任务管理器中的“用户”选项卡中的 RAM 使用情况
- Poolmon 输出
- 系统进程的 CPU 使用率
- Xperf 输出系统进程的 CPU 使用情况
我使用的一些非标准软件:
- Google Drive 同步
- 狂躁时间
- MEGAsync
- MSI Afterburner
- OpenVPN
- 虚拟盒
- WireShark
我尝试过但没有成功:
- 设置 ClearPageFileOnShutdown
- 禁用预取
- 禁用超级提取
- 禁用 NDU
- 更新所有驱动程序
- 卸载一些驱动程序
- 运行 sfc /scannow
谁能告诉我可能是什么问题或者我下一步应该尝试什么?
编辑:
非常感谢@magicandre1981。问题出在 Rainmeter 的 Win10 Widgets 皮肤生成的僵尸进程上。
我使用了关于僵尸进程的文章中的实用程序“FindZombieHandles”,它显示我的系统中在运行 2 小时后大约有 20000 个僵尸进程,并且其数量仍在以每秒约 5 个新僵尸进程的速度增加。它没有显示哪个进程导致了此泄漏,但它至少让我知道出了什么问题。
然后我调试了该实用程序,看看是否有更多信息。我发现有很多僵尸 CMD 进程。所以我使用 Process Explorer 查看哪个进程创建了这些 CMD,结果发现是前面提到的 Rainmeter。
答案1
系统进程的 CPU 使用率是 Windows 认为你内存不足,并且修剪工作集。
下次使用xperf/WPA 查看哪些进程使用“Proc”和“Toke”标签. (Proc 表示有很多进程正在运行)。
在最后一步中,查看 Taskmgr->Perf 下的 CPU 条目,查看是否有大量句柄(超过 100k)。