首先:
- Windows 10 专业版内部版本 17134
- 英特尔 i5-6500 3.2GHz
- 8GB DDR4 内存
- 微星 GeForce GTX1070 8GB
因此,在过去的两周里,我的 Windows 10 Pro 机器一直出现问题:
- 应用程序将开始出现错误,通常与内存有关
- Chrome 将不再起作用
- 任务管理器无法打开
- 突然我的两个屏幕都变黑了
- 计算机完全冻结在黑屏上,我无法执行任何操作,也没有声音或任何内容播放(Ctrl+Alt+Del、Ctrl+Shift+Esc、Alt+Tab 不起作用)
我剩下要做的就是硬重启我的电脑。
所以我一直在四处寻找,试图找出到底发生了什么。事件视图告诉我内存出了问题。不过,没有任何与崩溃相关的信息,只是我的页面文件已满。有一些关于应用程序超时和内存耗尽的警告,然后什么都没有,直到我重新启动电脑。这是事件查看器中最后几条日志的转储。
这就是我尝试的
- 运行 Windows Defender 脱机扫描
- 使用 MalwareBytes 扫描我的电脑
- 更新了我的 GPU 驱动程序
- 更新了我的 BIOS(按照微软支持人员的说法)
- 将页面文件从最大 16GB 增加到最大 24GB(我的物理空间是 8GB)
- 运行“DISM.exe /Online /Cleanup-image /Restorehealth”和“sfc /scannow”,发现并修复了一些错误,问题仍然存在
- 运行 MemTest86,未发现错误
然后我决定让资源监视器保持打开状态,当我过了一会儿回到电脑前时,我发现它几乎冻结了,但我仍然可以看到资源监视器。一切似乎都很正常,但“taskhostw.exe”占用了 24GB 的内存!
这就解释了为什么我不断收到内存错误以及为什么我的页面文件已满。有解决办法吗?
编辑:
我设法在 Process Explorer 中找到了该进程,它显示的内容如下:
关于如何进一步排除故障有什么想法吗?
答案1
taskhostw
是运行系统服务的容器,你的计算机上有几十个这样的实例在运行。
盲目地更新驱动程序和操作系统是没有用的。您需要分析哪些系统服务正在使用 CPU。
由于每个taskhostw
实例可能包含多个系统服务,因此这变得复杂。
看这个答案了解如何分析哪个taskhostw
实例导致了问题,然后如何将其支持的所有系统服务分离到单独的taskhostw
实例中。
一旦您知道问题根源的确切系统服务,请告知我们以获取进一步的建议。
如果系统瘫痪后很难找到原因,在类似情况下,我已在任务管理器详细信息视图中添加了“工作集(内存)”列并按其对显示进行排序,然后将其留在屏幕上。
大多数情况下,您会看到内存使用率不断攀升,并且能够在冻结之前识别进程,然后右键单击它并执行“转到服务”。请记住,一个这样的进程可能包含列表中的其他服务。如果有多个,请执行上面链接的步骤将它们分开,直到您找到一个服务。
答案2
可能的答案:
今天我再次使用 Process Explorer 检查了占用内存的进程。由于这个问题已经持续了几个月,我现在养成了每次开始使用 PC 时检查任务管理器的习惯。你知道吗,taskhostw.exe 又耍了老花招,但它只使用了大约 4GB 的 RAM,而不是 22GB。它还给我的 CPU 增加了 25-30% 的负载,这还是新问题。
这次我注意到了进程的“父进程”,上面写着 svhost 和 PID。我用它找到了相应的服务,即“Schedule”。我开始在 Google 上搜索一些与任务调度程序、taskhostw 和 svhost 相关的随机内容。在那里,我完全随机地在 Microsoft 社区上发现了一篇关于 StorageSense 任务的帖子。
这确实有点奇怪,但我不确定是不是这样。再次查看 Process Explorer 中的线程时,我突然看到了之前从未见过的第 5 个线程。它名为 StorageUsage.dll!GetStorageUsageInfo,与 Microsoft 社区的发帖人所发的线程完全相同。
我的猜测是,该进程不断请求越来越多的内存,最终导致进程本身陷入困境并终止 StorageUsage 线程。我自己的测试似乎证实了这一点,因为如果我终止 StorageUsage 线程并保留其他线程,则该进程将停止使用我的 CPU 25-30%,但 RAM 使用率保持不变。通过终止存储线程,该进程突然看起来与我发现它时完全一样,当时我的 PC 开始冻结,没有 CPU 使用率,并且正在使用大量 RAM。
我已经禁用了该任务,希望它能起作用!如果这确实有帮助,我会向微软发送一张票,因为这似乎是他们做的。