我的一个应用程序有问题。我运行该应用程序,一切正常。当我关闭该应用程序时,我注意到系统中的一个“svchost”进程占用了大约95-100%的CPU,因此我必须弄清楚什么占用了这么多的CPU周期。
我为自己设定了非常简单明了的目标:
选项1:
如何确定这12个服务中的哪一个占用了太多CPU?我可以获取此svchost进程的扩展信息,该信息以该进程中托管的“每项服务”为基础,向我提供详细信息,以我现在拥有的进程为基础吗?
选项2:
是否可以将Windows配置为使svchost每个svchost实例仅运行一项服务?
如果在调查方法上有更好的选择,请缩小此问题的根本原因,请告诉我。
最佳答案
我已经回答了我的问题,但是在评论中提出了问题。我现在将其添加为答案,因此众所周知。
我想出了上述问题的两种选择方法:
选项1的解决方案:
打开资源监视器(resmon.exe),转到“CPU”选项卡,在“图像”选项卡下检查svchost.exe(带有要监视的PID),转到“服务”框,并检查不同服务的CPU使用率。
选项2的解决方案:
sc config <service name> type= own
或将注册表
HKLM\System\CurrentControlSet\Services\<ServiceName>\Type
更改为0x10。有关更多信息,请引用http://blogs.technet.com/b/askperf/archive/2008/01/11/getting-started-with-svchost-exe-troubleshooting.aspx。