如何在不使用复杂的工具前提下探究Win7 SVCHOST.EXE占用100%CPU的原因
[原文发表地址] Figuring out why my SVCHOST.EXE is at 100% CPU without complicated tools in Windows 7
[原文发表时间] 2011-03-14 01:39 PM
SvcHost.exe进程承载着在Windows后台运行的服务。它的字面意思是“服务的载体”。你可能有十多个甚至更多服务在这个进程里运行。更复杂的情况是有时你能在任务管理器中看到好多个SvcHost.exe。
现在要告诉你的是,Task Manager不会帮上你。你可以在Services栏上看到运行中的服务的PID,但是如果某项服务出现异常,很难找出它。
这让你不可避免地提出这样的问题:“在哪个SvcHost.exe里运行着哪些服务?”,“哪个服务正占用100%的CPU ?”
有很多方法去弄清楚,但首先我要告诉你,简单地把占用CPU最多的SvcHost.exe进程终止也会终止承载在该进程中运行的其它所有服务。
有很多命令行的方法来弄清楚这东西,如
net start
或
sc query type= service
或
tasklist /svc
但本文只想用简单方法来搞清楚,而不用列出Process ID等。
哪项服务异常?
在开始菜单中,输入“Resource Monitor”并运行。
对于每个svchost.exe进程,将左边的选框选中(或者只将你关心的那些进程选中)。现在,切换到CPU栏:
看到中间的框里那些服务的名称了吗?现在,你可以按CPU使用情况排序,找到出毛病的进程的名字。
你可以使用右键单击来尝试停止或重启该服务,甚至可以通过默认浏览器的默认搜索引擎对该服务名称进行“Search Online”操作。
在编写或调试服务时,这小技巧帮过我好几次了。Resource Monitor是你的好帮手。很多人甚至不知道它的存在。
用的开心!