电脑互动吧

 找回密码
 注册
查看: 4384|回复: 0

成功解决CPU为什么占用100%之谜

[复制链接]
发表于 2011-4-22 08:35:10 | 显示全部楼层 |阅读模式
症状:经常无缘无故出现CPU占用100%的情况 : }2 ?$ o5 ], V9 d
  初步诊断:系统资源占用得高,有很多种可能性,但最常见的故障来自于Svchosts.exe,它是一个容器,承载着各种系统服务,所以Svchost.exe突然出现问题,那就一定是有系统服务出了故障。 ) p4 E5 k4 A* f- d( h0 s  _6 v
  小知识——Svchost.exe有什么作用
5 o* F4 _4 z& m9 }' s, ~  Svchost.exe是NT内核操作系统(Windows 2000/XP/2003都属于NT内核操作系统)独有的进程,“Svchost”其实就是“Service Host”(服务宿主)的缩写。微软官方对它的定义是:Svchost.exe是从动态链接库(DLL)中运行的服务的通用主机进程名称,通俗讲,它就是一个服务装载器。大家可以把每个服务想象成一张音乐CD,而Svchost.exe就是用来播放这种CD的CD机。每个Svchost.exe进程都包含多个系统服务,同时系统中也有多个Svchost.exe进程(Windows XP会有4~6个Svchost.exe进程,而Windows 2000通常只有2个Svchost.exe进程,这个数字都是根据已启动的服务的情况而定的)。
7 c0 k% P! |$ i  E" ?8 a, s  小提示
( h* I( U1 O% D7 T/ H, T$ V  点击“开始→运行”,在运行框中输入“CMD”回车,然后在打开的命令行窗口中输入“Tasklist /svc”(不含引号)命令,可以更直观地看到每个Svchost.exe进程装载的服务名称列表。 1 n# o$ B7 w2 v' B" S
  处方:用Process Explorer找出藏在Svchost.exe里的坏蛋 - n, z+ P2 X5 P! Z
  实际上Svchost.exe中的服务都是进程中的DLL模块,所以用进程查看工具找出进程中有问题的线程模块,就能找到问题所在。
5 f+ _1 V$ M: q8 a  第一步:找出有问题的进程。下载并安装Process Explorer(下载地址:http://www.newhua.com/soft/19289.htm),运行后在主界面中找到CPU占用率较高的Svchost.exe进程,将鼠标悬停在这个进程项上时,会显示出这个进程中具体包含哪些系统服务。
2 r) X" H. E% I( E$ {( Y9 Q第二步:找出有问题的线程。右击有问题的进程项,选择“Properties”(属性),在弹出的属性框中切换至Threads选项卡,就能看到下方列表中CPU占用率最高的线程,选中它后点击“Suspend”(暂停),如果这时系统的高CPU占用现象得到缓解,则说明已经确诊了,再点击“Stack”(堆栈),可以看到大多数占用CPU的操作都源于wuaeng.dll的文件。
' s: J2 _2 q2 v* d" s' ^* Z第三步:找出有问题的服务。运行services.msc打开服务管理界面,根据刚才找到的问题文件的名称查找匹配的服务,同时可以根据经验对文件名的全称进行推算,比如“wuaueng”就很容易让人想到“Windows Update Automatic Updates Engine”(Windows升级-自动升级引擎),根据综合比对可以将最后目标锁定为“Windows Update”服务,因为它的服务名称是“wuauserv”。 & V+ R. k& Y7 p2 z- C9 G4 I2 B7 S+ {+ ]
第四步:关闭问题服务。在服务管理界面中双击打开有问题的服务项,然后在其属性窗口中将“启动类型”设置为“手动”并点击“停止”就行了。  f4 F6 D) }- j* c6 s; h1 P! s' x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系我们|手机版|小黑屋|Archiver|电脑互动吧 ( 浙ICP备13037409号 )

浙公网安备 33032402001025号

GMT+8, 2024-6-29 23:09 , Processed in 0.048788 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表