Windows 10 Fall Creators Update之后,svchost.exe实例一直在使用CPU时间


10

自从安装Windows 10 Fall Creators Update之后,我的svchost.exe进程一直在持续使用大约14%的CPU时间:

CPU利用率图

svchost.exe实例负责托管三个服务:

基本筛选引擎,CoreMessaging,Windows Defender防火墙

CPU时间由该进程内部的一个线程消耗,Process Hacker无法将其归因于以下三个服务中的任何一个:

Process Hacker的屏幕截图

鉴于这三项服务被视为关键系统服务,因此很难对其进行任何处理。不能通过停止或禁用这些服务services.msc,终止该过程将触发错误检查(CRITICAL_PROCESS_DIED)。通过设置UI禁用Windows Defender防火墙不会减少CPU使用率。

我没主意了。是什么原因造成的?如何进一步调试?有没有解决办法来停止这些服务?


更新:使用@HelpingHand进行调试后,我们将其隔离到Windows Defender防火墙服务。Process Monitor显示它正在不断访问注册表:

过程监视器的屏幕截图

此处提供过滤到该流程的Process Monitor捕获的CSV导出。

我仍在寻找一种方法来停止这种行为。


更新2:使用Windows Performance Analyzer进行的分析显示,以下代码占用了大多数CPU时间rpcrt4.dll

Windows Performance Analyzer的屏幕截图


1
如果您在管理员提示中执行以下2个命令,然后重新启动;如果有的话,哪个svchost进程正在导致CPU Sc config BFE type= ownSc config MpsSvc type= own
过多,

1
由于您已经拥有Process Hacker,因此,例如,如果您发现托管BFE的svchost进程。如果双击“服务”选项卡中的服务名称,然后查看“安全性”选项卡,我本以为管理员可以修改配置权限。以上对我有用。
HelpingHand 2015年

1
也许您现在可以运行Process Monitor,并将其过滤到该PID。看看出现了什么。
HelpingHand

1
它也可以在我的计算机上使用。TBH,我认为您最好的选择是安装Windows Performance Toolkit工具-docs.microsoft.com/zh-cn/windows-hardware/test/wpt。本质上,您将使用Windows Performance Recorder捕获跟踪文件,并使用Windows Performance Analyzer对其进行分析。 channel9.msdn.com/Shows/Defrag-Tools上有一些不错的节目。
HelpingHand

1
不要按模块排序。删除此列。还跟踪RPC事件。下载此文件,运行WPRUI.exe,单击“添加配置文件”,选择下载的WPRP,在“自定义测量”下选择“ CPU使用情况配置文件”和“网络使用情况配置文件”。单击开始并捕获使用情况30秒钟。现在查看具有较高cpu使用率的PID和具有较高使用率和RPC事件的exe的通用事件图/表过滤器,并查看执行了哪些rpc操作
magicandre1981

Answers:


11

事实证明,这与Internet连接共享(ICS)有关。

在下文中,我想描述我如何得出这个结论,希望它可以帮助其他有类似问题的人。


第一步是识别引起问题的服务。尽管Windows自己的任务管理器最近也已经学会了这样做,但是我使用了Process Hacker,它也可以编辑服务的配置。

双击有问题的svchost.exe实例,然后选择“ 服务”选项卡,显示该进程中正在运行的服务:

svchost.exe(1688)属性

svchost.exe可以同时托管许多Windows服务,因此很难确定哪个服务引起了问题。尽管有足够的RAM可用时,Windows 10的最新版本通常会隔离服务,但某些服务仍共享一个进程。

在这种情况下,找出导致问题的服务的最简单方法是将它们分开。

Process Hacker可以做到这一点。在其主窗口的“ 服务”选项卡中,我们可以配置服务是否可以共享流程:

MpsSvc属性

需要将三个可疑服务中的至少两个配置为“ 自己的进程”,以确保将来将它们分开。

显然,Windows Defender不喜欢用户干预其服务的配置,因此要成功更改此设置,我需要

  • 授予管理员组对该服务的完全访问权限
  • 禁用服务,
  • 重新启动,以便服务停止(无法单独停止),
  • 将服务类型更改为Own Process并重新启用服务(将其设置为Auto Start),然后
  • 最后一次重新启动以应用这些更改。

在那之后,违规行为svchost.exe仅托管一项服务,因此我们确实有一个疑问:

Windows Defender防火墙(MpsSvc)

为了分析防火墙服务中发生的事情,我们将使用Windows ADK中的Windows Performance Recorder和Windows Performance Analyzer工具。

我们将从记录一些数据开始。当嫌疑人svchost.exe在后台移动时,下载此文件,将其添加为配置文件,像这样设置Windows Performance Recorder并开始录制:

Windows Performance Recorder:检查第一级分类和CPU使用情况配置文件

让录音运行30秒钟左右,然后保存录音。保存后,单击“ 在WPA中打开”立即将其打开以进行分析。

这是事情开始变得棘手的地方。就我而言,我需要来自@ magicandre1981的提示,以便在系统活动通用事件下找到正确的位置。那里,RPC事件的数量看起来很高:

46.918 Microsoft-Windows-RPC事件

下钻时,Windows Defender的防火墙的svchost.exe是展示了大量的服务器的侧面win:Startwin:Stop事件:

RpcServerCall

下一步是找出谁发送了这些RPC调用。通过查看客户端,另一个svchost.exe实例看起来可疑:

RpcClientCall

确实,Process Hacker无法检测到在该进程中运行的服务,这也一直导致CPU负载:

服务组名称:netsvcs

在这种情况下,Windows的任务管理器成功识别了该服务:

Internet连接共享(ICS)

确实,服务停留在启动状态。我已禁用它,因为我不需要它,并且下次重启后CPU负载已恢复正常。


我想对@HelpingHand和@ magicandre1981表示感谢,他们的评论使之成为可能。


正如后来在TenForums帖子中发现的那样,重置Windows Defender防火墙可以解决此问题。


@HelpingHand:如果禁用该Internet Connection Sharing (ICS)服务会怎样?不再会选择WiFi热点吗?
llinfeng

在Process Explorer中,这稍微容易一些。如果右键单击正在使用恒定处理器量的“ svchost.exe”(我的情况是5%恒定),然后单击“服务”选项卡,您将看到在此svchost下正在运行的服务。在这种情况下,我只有一个,ICS。同样,我的Internet连接共享处于启动状态。转到“防火墙和网络保护”,我能够单击“将防火墙还原为默认值”-这立即解决了我的问题。
霍华德·林斯三世

@霍华德:觉得自己很幸运–对我来说,市长的麻烦是三个服务共享有问题的实例svchost.exe,因此很难识别导致此问题的服务。我不确定为什么他们没有在您的实例中共享主机进程。
fefrei

2

更简单地说,我通过使用以下说明重置其Windows防火墙设置(特别是如果CPU负载出现相关峰值)而获得成功:

将Windows Defender防火墙重置为默认设置可以解决此问题。

为此,请打开设置->更新和安全-> Windows Defender->打开Windows Defender安全中心->防火墙和网络保护->恢复防火墙默认设置

希望这对其他人有所帮助和帮助...似乎是一个相当普遍的问题。


1
确实,这对我也很有效,正如我在回答的最底部提到的那样。感谢您在这里反映步骤!
fefrei

0

就我而言,尝试了各种失败的修复程序(包括上述一些建议,例如,重置Windows防火墙)后,我禁用了“诊断策略服务”,并且最终停止了CPU占用。这可能不是理想的解决方案,但它似乎不是关键服务。禁用它的方法如下:

  1. 以管理员身份打开“系统配置”('msconfig.exe')
  2. 常规标签:选择“选择性启动”
  3. 服务标签:取消选中“诊断策略服务”
  4. 重新启动Windows

感谢Ranga Rajesh Kumar的YouTube频道为我指出了该解决方案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.