我们在使用Windows XP操作系统的时候,用着用着系统就变慢了,一看“ 任务管理器 ”才发现CPU占用达到100%。这是怎么回事情呢?遇到病毒了,硬件有问题,还是系统设置有问题,在本文中笔者将从硬件,软件和病毒三个方面来讲解系统 资源占用率为什么会达到100%。
) h; E& W* Q1 \/ A/ B+ ` 经常出现CPU占用100%的情况,主要问题可能发生在下面的某些方面:
& Z) E( ` z/ A9 V" y8 fCPU占用率高 的九种可能
9 S0 y" ?. Q" E! G& {1、防杀毒软件造成 故障 $ q, ~. d0 N5 ?/ J9 c$ _! z
由于新版的 KV 、金山、 瑞星 都加入了对网页、 插件 、邮件的随机监控,无疑增大了系统负担。处理方式:基本上没有合理的处理方式,尽量使用最少的监控服务吧,或者,升级你的硬件配备。 " d7 I _, t4 o2 ^
2、驱动没有经过认证,造成CPU资源占用100% ( G5 O$ |4 |9 t
大量的测试版的驱动在网上泛滥,造成了难以发现的故障原因。 处理方式:尤其是 显卡驱动 特别要注意,建议使用 微软认证 的或由官方发布的驱动,并且严格核对型号、版本。
5 F8 W/ m6 j& _8 y! W% `3、 病毒、木马 造成
+ n- d& h* @( U8 o 大量的蠕虫病毒在系统内部迅速复制,造成CPU占用资源率据高不下。解决办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘,并且打开系统设置软件,察看有无异常启动的程序。经常性更新升级杀毒软件和防火墙,加强防毒意识,掌握正确的防杀毒知识。 ( k; w& l! F+ _8 W: @" w$ ~' y
4、控制面板— 管理工具 —服务—RISING REALTIME MONITOR SERVICE 点鼠标右键,改为手动。 0 A% z0 @% Y5 V# P9 K/ S- U
5、开始->运行->msconfig->启动,关闭不必要的启动项,重启。 ; W" j4 }9 ^' K6 D& P3 P
6、查看“ svchost ”进程。 + ^2 @' d3 w1 G7 g3 [
svchost . exe 是Windows XP系统 的一个核心进程。 svchost.exe 不单单只出现 在Window s XP中,在使用 NT 内核的 Windows系统 中都会有svchost.exe的存在。一般在 Windows 2000 中 svchost.exe进程 的数目为2个,而 在Windows XP中svchost.exe进程的数目就上升到了4个及4个以上。 - B: M j! @, R7 ^9 k
7、查看 网络连接 。主要是网卡。
! W" h: c- Z: D; k& Z/ U8、查看网络连接 5 g! X% L* v9 j0 d
当安装了Windows XP的计算机做服务器的时候,收到端口 445 上的连接请求时,它将分配内存和少量地调配 CPU资源来为这些连接提供服务。当负荷过重的时候,CPU占用率可能过高,这是因为在工作项的数目和响应能力之间存在固有的权衡关系。你要确定合适的 MaxWorkItems 设置以提高系统响应能力。如果设置的值不正确,服务器的响应能力可能会受到影响,或者某个用户独占太 多系统 资源。
" i) f% P$ P: I% X/ V \! q( Y 要解决此问题,我们可以通过修改注册表来解决:在 注册表编辑器 中依次展开[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver ]分支,在右侧窗口中 新建 一个名为“maxworkitems”的 DWORD值 。然后双击该值,在打开的窗口中键入下列数值并保存退出:
( ~2 H- n* E/ n 如果计算机有512MB以上的内存,键入“1024”;如果计算机内存小于 512 MB,键入“256”。
2 a8 _! N: w; |9、看看是不是Windows XP使用鼠标右键引起CPU占用100% ! b" M- K4 p# O2 M
前不久的报到说在资源管理器里面使用鼠标右键会导致CPU资源100%占用,我们来看看是怎么回事?
. G1 X9 N( }9 P% w1 V$ { u, u 征兆:
8 b8 |3 i- x3 j" f 在资源管理器里面,当你右键点击一个目录或一个文件,你将有可能出现下面所列问题:
5 M& t% W% U! |; L* t4 L 任何文件的拷贝操作在那个时间将有可能停止相应 , ^9 {! m% _- [$ `
网络连接速度将显著性的降低 ' o( _; f( q+ O$ p9 O0 |) u
所有的流输入/输出操作例如使用Windows Media Player 听音乐将有可能是音乐失真成因: r8 }- ]+ q& u/ o; m i: ?
当你在资源管理器里面右键点击一个文件或目录的时候,当快捷 菜单显示 的时候,CPU占用率将增加到100%,当你关闭快捷菜单的时候才返回正常水平。 " W, }% L( H' u5 k& J/ _, \
解决方法:
/ Y, U k8 |) [ 方法一:关闭“为菜单和工具提示使用过渡效果”
) e2 z8 l0 Q, C: t4 r 1、点击“开始”--“控制面板” % i5 d9 h( W& ]' L9 q7 c
2、在“控制面板”里面双击“显示”
$ ^( \9 T a+ [ B 3、在“显示”属性里面点击“外观”标签页 ( B9 }( z/ C7 Q. R8 f* G; h# r- p
4、在“外观”标签页里面点击“效果”
$ l& {5 B% A- W; g- x( p 5、在“效果”对话框里面,清除“为菜单和工具提示使用过渡效果”前面的复选框接着点击两次“确定”按钮。
% j6 k3 p$ s3 u6 F% U. f. Z 方法二:在使用鼠标右键点击文件或目录的时候先使用鼠标左键选择你的目标文件或目录。然后再使用鼠标右键弹出快捷菜单。
% ]% t" ], ` S* ~3 h& kCPU占用100%解决办法 # D0 }: K, m3 p/ p' ?! U5 Y
一般情况下CPU占了100%的话我们的电脑总会慢下来,而很多时候我们是可以通过做 一点点 的改动就可以解决,而不必问那些大虾了。
- V6 U& u1 f3 Z3 p/ g+ T; q+ z 当机器慢下来的时候,首先我们想到的当然是任务管理器了,看看到底是哪个程序占了较搞的比例,如果是某个大程序那还可以原谅,在关闭该程序后只要CPU 正常了那就没问题;如果不是,那你就要看看是什幺程序了,当你查不出这个进程是什幺的时候就去google或者 baidu 搜。有时只结束是没用的,在 xp下 我们可以结合msconfig里的启动项,把一些不用的项给关掉。在2000下可以去下个winpatrol来用。 * v* W$ @) j4 } h, ^" L3 L
一些常用的软件,比如浏览器占用了很搞的CPU,那幺就要升级该软件或者干脆用别的同类软件代替,有时软件和系统会有点不兼容,当然我们可以试下xp系统下给我们的那个兼容项,右键点该. exe文件 选兼容性。
& h- ?8 Y8 ~- _* s' U svchost.exe有时是比较头痛的,当你看到你的某个svchost.exe占用很大CPU时你可以去下个aports或者fport来检查其对 应的程序路径,也就是什幺东西在掉用这个svchost.exe,如果不是c:\Windows\ system32 (xp)或c:\winnt\system32(2000)下的,那就可疑。升级杀毒软件杀毒吧。
$ m4 E, }2 P5 z1 \' M) ?右击 文件导致100%的CPU占用我们也会遇到,有时点右键停顿可能就是这个问题了。官方的解释:先点左键选中,再右键(不是很理解)。非官方:通过在桌面点 右键-属性-外观-效果,取消”为菜单和工具提示使用下列过度效果(U)“来解决。还有某些杀毒软件对文件的监控也会有所影响,可以 关闭杀毒软件 的文件监控;还有就是对网页,插件,邮件的监控也是同样的道理。
- J& O8 j4 ~! v+ X 一些驱动程序有时也可能出现这样的现象,最好是选择微软认证的或者是官方发布的驱动来装,有时可以适当的升级驱动,不过记得最新的不是最好的。 ' Y/ q; O u6 S
CPU降温软件 ,由于软件在运行时会利用所以的CPU空闲时间来进行降温,但Windows不能分辨普通的CPU占用和 降温软件 的降温指令 之间的区别 ,因此CPU始终显示100%,这个就不必担心了,不影响正常的系统运行。 3 |, t) D& T# _3 k6 K; v
在处理较大的 word文件 时由于word的拼写和语法检查会使得CPU累,只要打开word的工具-选项-拼写和语法把”检查拼写和检查语法“勾去掉。
, ?0 z0 ]( n9 ^% V/ N. S* f 单击 avi视频 文件后CPU占用率高是因为系统要先扫描该文件,并检查文件所有部分,并建立索引;解决办法:右击保存视频文件的文件夹-属性-常规-高级,去掉为了快速搜索,允许索引服务编制该文件夹的索引的勾。
; C; d1 `! I8 J% n7 B3 Q: C+ G5 q" t, w
8 @ B7 K3 S3 `
CPU占用100%案例分析
5 j. q n# h4 `* C+ S* a 1、 dllhost进程造成CPU使用率占用100% * t4 F; U9 o) d' s0 W
特征:服务器正常CPU消耗应该在75%以下,而且CPU消耗应该是上下起伏的,出现这种问题的服务器,CPU会突然一直处100%的水平,而且不会下 降。查看任务管理器,可以发现是DLLHOST.EXE消耗了所有的CPU空闲时间,管理员在这种情况下,只好重新启动IIS服务,奇怪的是,重新启动 IIS服务后一切正常,但可能过了一段时间后,问题又再次出现了。 0 A* W% ? z+ d: d
直接原因: 0 g. \* ]" h4 y) R: f
有一个或多个ACCESS数据库在多次读写过程中损坏,微软的 MDAC 系统在写入这个损坏的ACCESS文件时,ASP线程处于BLOCK状态,结果其它线程只能等待,IIS被死锁了,全部的CPU时间都消耗在DLLHOST中。
( U$ E) @; Y+ x# Q& }: k 解决办法: 0 z& T: r/ T! x P
安装“一流信息监控拦截系统”,使用其中的“首席文件检查官IIS健康检查官”软件,
& m) h i' x1 ]% W; x 启用”查找死锁模块”,设置:
$ M" v* q, D3 q5 d --wblock=yes
# i% t, j3 M- F! S7 d( x 监控的目录,请指定您的主机的文件所在目录:
# H0 {, B, C- f. d --wblockdir=d:\test 9 ?) H! N/ N8 r9 }& q) I0 ^
监控生成的日志的文件保存位置在安装目录的log目录中,文件名为:logblock.htm
: x0 L5 ]# \2 Z. K+ @. o) n) R, }" z 停止IIS,再启动“首席文件检查官IIS健康检查官”,再启动IIS,“首席文件检查官IIS健康检查官”会在logblock.htm中记录下最后写入的ACCESS文件的。 q; a- l5 E. X8 }/ F
过了一段时间后,当问题出来时,例如CPU会再次一直处100%的水平,可以停止IIS,检查logblock.htm所记录的最后的十个文件,注意, 最有问题的往往是计数器类的ACCESS文件,例如:”**COUNT. MDB ”,”**COUNT.ASP”,可以先把最后十个文件或有所怀疑的文件删除到回收站中,再启动IIS,看看问题是否再次出现。我们相信,经过仔细的查找 后,您肯定可以找到这个让您操心了一段时间的文件的。
3 Z" L( W* i+ N) X 找到这个文件后,可以删除它,或下载下来,用ACCESS2000修复它,问题就解决了。 ) b8 f$ |0 _1 H* G% p; p. r
2、 svchost.exe造成CPU使用率占用100% * @, s5 I" ]4 [+ F' J
在win.ini文件中,在[Windows]下面,“run=”和“load=”是可能加载“木马”程序的途径,必须仔细留心它们。一般情况下,它们 的等号后面什幺都没有,如果发现后面跟有路径与文件名不是你熟悉的启动文件,你的计算机就可能中上“木马”了。当然你也得看清楚,因为好多“木马”,如 “AOL Trojan木马”,它把自身伪装成command.exe文件,如果不注意可能不会发现它不是真正的系统启动文件。
. l7 d) N& P' g; {, ^ 在system.ini文件中,在[BOOT]下面有个“shell=文件名”。正确的文件名应该是“explorer.exe”,如果不是 “explorer.exe”,而是“shell= explorer.exe 程序名”,那幺后面跟着的那个程序就是“木马”程序,就是说你已经中“木马”了。
( A# ^3 l1 x0 `1 b( @+ A1 o 在注册表中的情况最 复杂,通过regedit命令打开注册表编辑器,在点击至:“HKEY-LOCAL-MACHINE\Software\Microsoft\ Windows\CurrentVersion\Run”目录下,查看键值中有没有自己不熟悉的自动启动文件,扩展名为EXE,这里切记:有的“木马”程 序生成的文件很像系统自身文件,想通过伪装蒙混过关,如“Acid Battery v1.0木马”,它将注册表“HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Windows\ CurrentVersion\Run”下的Explorer 键值改为Explorer=“C:\Windows\expiorer.exe”,“木马”程序与真正的Explorer之间只有“i”与“l”的差别。 当然在注册表中还有很多地方都可以隐藏“木马”程序,如:“HKEY-CURRENT-USER\Software\Microsoft\Windows \CurrentVersion\Run”、“HKEY-USERS\****\Software\Microsoft\Windows\ CurrentVersion\Run”的目录下都有可能,最好的办法就是在“HKEY-LOCAL-MACHINE\Software\ Microsoft\Windows\CurrentVersion\Run”下找到“木马该病毒也称为“Code Red II(红色代码2)”病毒,与早先在西方英文系统下流行“红色代码”病毒有点相反,在国际上被称为VirtualRoot(虚拟目录)病毒。该蠕虫病毒利 用Microsoft已知的溢出漏洞,通过80端口来传播到其它的Web页服务器上。受感染的机器可由黑客们通过Http Get的请求运行scripts/root.exe来获得对受感染机器的完全控制权。 9 I% h/ [. [, m; O% ~% X" }
当感染一台服务 器成功了以后,如果受感染的机器是中文的系统后,该程序会休眠2天,别的机器休眠1天。当休眠的时间到了以后,该蠕虫程序会使得机器重新启动。该蠕虫也会 检查机器的月份是否是10月或者年份是否是2002年,如果是,受感染的服务器也会重新启动。当Windows NT系统启动时,NT系统会自动搜索C盘根目录下的文件explorer.exe,受该网络蠕虫程序感染的服务器上的文件explorer.exe也就是 该网络蠕虫程序本身。该文件的大小是8192字节,VirtualRoot网络蠕虫程序就是通过该程序来执行的。同时,VirtualRoot网络蠕虫程 序还将cmd.exe的文件从Windows NT的system目录拷贝到别的目录,给黑客的入侵敞开了大门。它还会修改系统的注册表项目,通过该注册表项目的修改,该蠕虫程序可以建立虚拟的目录C 或者D,病毒名由此而来。值得一提的是,该网络蠕虫程序除了文件explorer.exe外,其余的操作不是基于文件的,而是直接在内存中来进行感染、传 播的,这就给捕捉带来了较大难度。 ( X. G% s5 ~% Z) X
”程序的文件名,再在整个注册表中搜索即可。 : J% X7 w: l N
我们先看看微软是怎样描述svchost.exe的。在微软知识库314056中对svchost.exe有如下描述:svchost.exe 是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。
/ S; F! \4 l; c$ X 其实svchost.exe是Windows XP系统的一个核心进程。svchost.exe不单单只出现在Windows XP中,在使用NT内核的Windows系统中都会有svchost.exe的存在。一般在Windows 2000中svchost.exe进程的数目为2个,而在Windows XP中svchost.exe进程的数目就上升到了4个及4个以上。所以看到系统的进程列表中有几个svchost.exe不用那幺担心。
0 d( r0 d' H p# rsvchost.exe到底是做什幺用的呢? . l& f, k4 V7 u G
首先我们要了解一点那就是Windows系统的中的进程分为:独立进程和共享进程这两种。由于Windows系统中的服务越来越多,为了节约有限的系统资源微软把很多的系统服务做成了共享模式。那svchost.exe在这中间是担任怎样一个角色呢?
& @0 N) {9 ~. S1 z6 t5 Y svchost.exe的工作就是作为这些服务的宿主,即由svchost.exe来启动这些服务。svchost.exe只是负责为这些服务提供启动 的条件,其自身并不能实现任何服务的功能,也不能为用户提供任何服务。svchost.exe通过为这些系统服务调用动态链接库(DLL)的方式来启动系 统服务。 2 k9 Y9 F, D& a. ]3 K5 u6 X
svchost.exe是病毒这种说法是任何产生的呢? " c8 j0 W' W4 [
因为svchost.exe可以作为服务的宿主来启动服务,所以病毒、木马的编写者也挖空心思的要利用svchost.exe的这个特性来迷惑用户达到入侵、破坏计算机的目的。 : K1 K; W+ k& M4 x& |4 k5 a
如何才能 辨别 哪些是正常的svchost.exe进程,而哪些是 病毒进程 呢?
( p" A" \8 ~6 p; g; g' ^& { svchost.exe的键值是在“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost”,如图1所示。图1中每个键值表示一个独立的svchost.exe组。
- e0 N- g7 J6 B+ w' x% W o; T 微软还为我们提供了一种察看系统正在运行在svchost.exe列表中的服务的方法。以Windows XP为例:在“运行”中输入:cmd,然后在命令行模式中输入:tasklist /svc。系统列出如图2所示的服务列表。图2中红框包围起来的区域就是svchost.exe启动的服务列表。如果使用的是Windows 2000系统则把前面的“tasklist /svc”命令替换为:“tlist -s”即可。如果你怀疑计算机有可能被病毒感染,svchost.exe的服务出现异常的话通过搜索 svchost.exe文件 就可以发现异常情况。一般只会找到一个在:“C:\Windows\System32”目录下的svchost.exe程序。如果你在其它目录下发现 svchost.exe程序的话,那很可能就是中毒了。
6 {9 p4 u2 M/ |& f& F/ Z 还有一种确认svchost.exe是否中毒的方法是在任务管理器中察看进程的执行路径。但是由于在Windows系统自带的任务管理器不能察看进程路径,所以要使用第三方的进程察看工具。 " n* ~' g% s5 }) H; Z. ^
上面简单的介绍了svchost.exe进程的相关情况。总而言之,svchost.exe是一个系统的核心进程,并不是病毒进程。但由于 svchost.exe进程的特殊性,所以病毒也会千方百计的入侵svchost.exe。通过察看svchost.exe进程的执行路径可以确认是否中 毒。
7 N7 j" I) n$ n3 x4 {2 \ [ 3、 Services.exe造成CPU使用率占用100% 7 B2 X* C& Y& K, c
症状
; J/ C+ j6 W5 C 在基于 Windows 2000 的计算机上,Services.exe 中的 CPU 使用率可能间歇性地达到100 %,并且计算机可能停止响应(挂起)。出现此问题时,连接到该计算机(如果它是文件服务器或域控制器)的用户会被断开连接。您可能还需要重新启动计算机。 如果 Esent.dll 错误地处理将文件刷新到磁盘的方式,则会出现此症状。 ( x* Q- v* Q$ a! R* j3 K
解决方案 % x/ V! c, S4 T# w3 Z0 b1 Z$ O
Service Pack 信息
$ W% z6 `8 U. K. c( y! Q 要解决此问题,请获取最新的 Microsoft Windows 2000 Service Pack。有关其它信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: y/ E7 ?% l8 E) W$ [! x
260910 如何获取最新的 Windows 2000 Service Pack
9 @# H2 B z2 r- @2 M5 } 修复程序信息 6 U u% L O' L* n% u* n( u
Microsoft 提供了受支持的修补程序,但该程序只是为了解决本文所介绍的问题。只有计算机遇到本文提到的特定问题时才可应用此修补程序。此修补程序可能还会接受其它一 些测试。因此,如果这个问题没有对您造成严重的影响,Microsoft 建议您等待包含此修补程序的下一个 Windows 2000 Service Pack。 - f% H, ~1 r% {/ D$ g3 a& }9 n
要立即解决此问题,请与“Microsoft 产品支持服务”联系,以获取此修补程序。有关“Microsoft 产品支持服务”电话号码和支持费用信息的完整列表,请访问 Microsoft Web 站点:
" r! g6 ^& k$ y! N3 u 注意 :特殊情况下,如果 Microsoft 支持专业人员确定某个特定的更新程序能够解决您的问题,可免收通常情况下收取的电话支持服务费用。对于特定更新程序无法解决的其它支持问题和事项,将正常收取支持费用。 " f, I5 b: Z! E# Q* u: I
下表列出了此修补程序的全球版本的文件属性(或更新的属性)。这些文件的日期和时间按协调通用时间 (UTC) 列出。查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用“控制面板”中的“日期和时间”工具中的 时区 选项卡。
2 ], C3 l8 [$ y& D. @" H 状态 ! I* N9 {* K# d$ _1 d) T
Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中存在的问题。此问题最初是在 Microsoft Windows 2000 Service Pack 4 中更正的。
9 N4 ]+ a. Y7 T$ F4、正常软件造成CPU使用率占用100%
- h, T: y( V* d' B6 d. R7 T' z 首先,如果是从开机后就发生上述情况直到关机。那幺就有可能是由某个随系统同时登陆的软件造成的。可以通过运行输入“msconfig”打开“系统实用 配置工具”,进入“启动”选项卡。接着,依次取消可疑选项前面的对钩,然后重新启动电脑。反复测试直到找到造成故障的软件。或者可以通过一些优化软件如 “优化大师”达到上述目的。另:如果键盘内按键卡住也可能造成开机就出现上述问题。 : y& J9 g6 e8 p: Y; p% K
如果是使用电脑途 中出项这类问题,可以调出任务管理器(WINXP CTRL+ALT+DEL WIN2000 CTRL+SHIFT“ESC),进入”进程“选项卡,看”CPU“栏,从里面找到占用资源较高的程序(其中SYSTEM IDLE PROCESS是属于正常,它的值一般都很高,它的作用是告诉当前你可用的CPU资源是多少,所以它的值越高越好)通过搜索功能找到这个进程属于哪个软 件。然后,可以通过升级、关闭、卸载这个软件或者干脆找个同类软件替换,问题即可得到解决。 3 ?+ ^8 X7 e: ~% e, H, k
5、病毒、木马、间谍软件造成CPU使用率占用100%
& x4 d! M) K2 ]' Y/ ?1 \ d3 I 出现CPU占用率100% 的故障经常是因为病毒木马造成的,比如震荡波病毒。应该首先更新病毒库,对电脑进行全机扫描 。接着,在使用反间谍软件Ad—Aware,检查是否存在间谍软件。论坛上有不少朋友都遇到过svchost.exe占用CPU100%,这个往往是中毒 的表现。 , }6 h2 l) j, J2 y3 {2 G
& t/ p$ K5 L2 x' D6 W! g svchost.exe Windows中的系统服务是以动态链接库(DLL)的形式实现的,其中一些会把可执行程序指向svchost.exe,由它调用相应服务的动态链接库并 加上相应参数来启动服务。正是因为它的特殊性和重要性,使它更容易成为了一些病毒木马的宿主。 |