如何在不使用复杂的工具前提下探究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

 

Windows Task Manager won't save you

 

现在要告诉你的是,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是你的好帮手。很多人甚至不知道它的存在。

 

用的开心!


Comments (0)

Skip to main content