用户
 找回密码
 立即注册
搜索

给你的CPU减负――系统假死解决方案面面观

[复制链接]

4515

主题

3万

帖子

17万

积分

版主

Rank: 7Rank: 7Rank: 7

积分
176769
QQ
发表于 2009-12-25 16:56:30
很多时候我们的计算机都会“发呆”,在这个时段计算机不会有任何的反应,我们对它发出的任何操作命令它也都置之不理。此时如果打开任务管理器查看当前性能,你多半会发现CPU占用率高居不下,甚至长时间处于100%使用的状态,其实我们的CPU远没有那么“低能”,正常使用出现CPU资源100%的情况并不多见,通常只有计算机出现问题时CPU才会被长时间大量占用,本期将帮你细细分析这里边的种种可能。
1.鼠标右键“点”死CPU
最早,也是最常见的CPU异常当属鼠标右键点击故障了,很多朋友都曾经反应,当在桌面上单击鼠标右键时CPU资源占有会达到100%,这主要是Windows XP设计上的先天不足所致。根据微软的官方资料,当用户右击一个目录或一个文件时,可能会遇到正在进行的文件拷贝操作停止响应;网络传输速度明显降低;所有的流输入/输出操作例如使用Windows Media Player听音乐,音乐可能出现失真。只有在关闭右键菜单后CPU才会恢复正常。
所幸得是,微软已经为这个问题提供了不算完善的解决方案,即关闭某项视觉特效,选择“控制面板”-“显示”-“外观”,在“外观”标签页中面单击“效果”按钮,在弹出的对话框中清除“为菜单和工具提示使用过渡效果”的勾选。
如果你连这个选项都懒的改,还可以改一下你的使用习惯,每次在右击某个项目之前,首先使用鼠标左键选择你的目标文件或目录,然后再在上面单击鼠标左键,同样可以避免这个问题。
2.连网也能累死CPU

很多朋友觉得上网并没有什么太特别的,然而如果网络访问的请求过多时,计算机的CPU同样可能不堪重负,出现CPU占用100%的情况。例如我们使用安装有Windows XP操作系统的计算机为别的朋友提供网络服务时,当别的计算机试图通过网络连接我们计算机上的端口时(如445端口),我们可以把CPU理解成一个团队,当一台计算机连接445端口时,团队中的一个人会进行接待(系统分配内存和少量地调配CPU资源为这个连接提供服务)。但是如果在同一时刻发出连接的计算机过多时,我们的CPU团队的每一个人都会外出接待,即CPU占用率过高,这使得CPU团队中的成员无暇顾及计算机的其它请求。出现这样的问题,主要是因为系统无法清晰的分析当前系统资源的整体需求,我们需要告诉系统只能指派一部分人手去响应网络上的请求,其他人还需要继续为计算机的其他请求服务,即我们需要为系统设置合适的MaxWorkItems以提高系统响应能力。
具体修改方法是,选择“开始”-“运行”,输入“regedit”,回车后打开注册表编辑器,定位到:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserver,在右侧窗口的空白处单击鼠标右键,选择新建一个DWORD值,将其命名为“maxworkitems”,然后双击该值,在打开的窗口中键入合适的数值(512MB以上的内存,键入“1024”;如果计算机内存小于512MB,键入“256”。
使用道具 举报 回复
发表于 2009-12-25 16:56:48
3.资源管理器“管”死CPU通常来说,资源管理器(explorer.exe)是比较节俭的,并不会占用我们太多的CPU资源,除非他正在别的程序恶意骚扰着,例如病毒的骚扰,我们通常可以通过杀毒、清除资源管理器上挂载的恶意程序和重新拷贝新的资源管理器文件来解决问题。
首先我们需要使用杀毒软件进行查毒,如果没有找到病毒或者找到的病毒很难清除,可以参照以下的方法解决。选择“开始”-“运行”,在里边输入“system.ini”后回车,在这个文件中可以找到“[BOOT]”关键字,在它的后边可以找到“shell=文件名”这个字段,正常情况下这个值应当是“explorer.exe”,如果是“shell= explorer.exe 程序名”这样的形式,则说明在运行资源管理器时explorer.exe后边的程序也会跟着一起执行,而这个程序通常就是木马或病毒了。可以参照下面的方法进行清除,在“运行”中输入“regedit”,打开注册表编辑器,定位到:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun目录下,将这里边不熟悉的键值都删除掉。需要注意的是很多病毒和木马使用的文件名和键值与系统自身的文件非常相像,如运行的程序为“expiorer.exe”,即将“explorer.exe”的L换成了i。
如果资源管理器被病毒破坏了,我们还需要使用好的资源管理器文件覆盖有问题的文件,将Windows XP的安装光盘放入光驱,在“运行”中输入“sfc /scannow”并回车,系统会自动执行系统文件的修复操作,修复结束再重启一下系统即可。如果修复不成功,我们还可以尝试手动进行覆盖,找一个Windows XP的Ghost恢复镜像或者从正常的计算机中将“explorer.exe”和“explorer.scf”都复制出来,由于资源管理器就是帮我们管理复制、粘贴的程序,所以直接鼠标进行复制时,由于资源管理器在运行,我们就会看到遭到拒绝的提示。为此我们需要使用命令行的方式进行复制,首先将这两个文件拷贝到D盘的根目录下,然后按快捷键“Ctrl+Shift+Esc”,打开“Windows 任务管理器”,选择“进程”标签,右击“explorer.exe”并在弹出的菜单中选择“结束任务”。此时桌面上就只剩下了“Windows 任务管理器”的窗口了,选择“文件”-“新建任务(运行...)”,在弹出的窗口中输入“c:windowssystem32cmd.exe”后回车。在弹出的命令行窗口中输入:copy d:explorer.exe c:windows,如图3所示,系统会提示你是否要覆盖,输入“yes”并回车即可。
使用同样的方法将“explorer.scf”也拷贝过去,再重新启动计算机,问题就可以解决了。
4.打印机也能“打蒙”CPU
前一段时间,相信很多朋友都曾遇到过spoolsv.exe占用100%的CPU资源的情况,这个程序时是打印后池服务,它如果不正常,可能也会“打蒙”你的CPU。首先我们要排除是木马在作怪,因为最近已经出现了转么借助spoolsv.exe发作的木马程序,杀毒后如果发现spoolsv.exe仍然占用100%的CPU资源,就可以参考下面的方法解决了。
spoolsv.exe这个服务主要负责计算机的打印工作。正常情况下,操作系统在执行打印任务时,会首先将你发出的打印作业存放到“c:windowsSystem32SpoolPrinters”文件夹下(假设系统安装在C盘下)。如果在打印任务还没有完成的时候,你修改了当前的打印任务,就有可能陷入死循环,即打印工作并不会停止,后台的打印程序会反复地尝试对该打印作业进行后台处理,这样循环操作就会导致极大的占用CPU资源。所以当陷入循环操作时,解决这个问题的方我们需要手动进行解决,在“运行”中输入“%Systemroot%System32SpoolPrinters”后回车,将里边的文件均删除即可,如果出现无法删除的提示,请在任务管理器中将任务spoolsv.exe结束。
接下来,选择“控制面板”-“管理工具”-“服务”-“Print Spooler”,双击这个服务,在对话框中单击“停止”按钮,并单击“确定”,如图4所示。然后再在“运行”中输入“regedit”,回车后打开注册表编辑器,然后定位到:HKEY_LOCAL_MACHINESYSTEMControlSet001ControlPrintPrinters,将这个项下所有非本地打印机的项都删除,只保留本地打印机或所在网络中的打印机,或者干脆将所有的内容都删除再重新添加你需要的打印机,修改完成后再重新启动计算机即可。
使用道具 举报 回复 支持 反对
发表于 2009-12-25 16:56:59
5.核心服务“吃”光CPU资源

很多核心的系统服务在运行出现问题时,同样会占用极高的系统资源,例如最长使用的Svchost.exe服务就是一个非常爱惹麻烦的服务。Svchost.exe是个筐,什么都往里装。它属于Windows的一种共享进程,Windows为了节约系统资源,将很多个系统服务都做为共享方式由Svchost.exe来启动。因此Svchost.exe本身只是其他服务的宿主,本身并不实现任何服务功能。通常情况下,Windows XP有4个由Svchost启动的服务组,也就是说Windows XP系统一般有4个Svchost.exe进程。当然很多程序和服务都会调用Svchost.exe,所以即时Svchost.exe进程超过4个也是很正常的,我们也不能据此判断系统中了病毒。
一般来说Svchost.exe占用极高的CPU资源都是由病毒引起的,我们在使用杀毒软件进行查毒后,如果还无法解决问题,还可以从以下几个位置检查异常。首先是在“运行”中输入“win.ini”,检查这个文件“run=”和“load=”后边的字段,一般来说这两个字段后边应该什么都没有,如果后边跟着某个路径,则可能是一个恶意的程序了,要格外小心。另外你还可以使用上面介绍的方法查看注册表中的可疑启动项。
如果你从上述的位置都无法看到可疑的的程序,还可以通过命令的形式查看当前运行Svchost.exe的程序,我们以Windows XP为例,在“运行”中输入“cmd”,然后输入“tasklist /svc”(Windows 2000使用“tlist -s”),回车后即可看到Svchost.exe程序都在为哪些进程和程序服务。通过检查Svchost.exe程序的宿主,也可以帮我们找到引发问题的凶手。

最后,有些病毒会故意将文件名改为Svchost.exe来迷惑我们,你可以在系统中搜索这个文件,一般来说只有在“C:WindowsSystem32”目录下的才是正常文件,其他位置的都可能是恶意程序创建的。

CPU资源占用100%问题的解决方法就先简单介绍到这里,其实未经认证的驱动程序、设计有问题的杀毒软件和病毒都会引起CPU占用率极高的问题,大家在处理这个问题的时候还要对症下药。
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则