svchost.exe占用cpu高50%如何解决?
大家都知道在Windows系统中svchost.exe进程是系统进程,而且会有很多个,一般来说并不会影响系统性能,不过某些情况下出现svchost.exe占用cpu高达到25%甚至50%的情况也会出现,这时该怎么解决呢?本文由svchost.exe的运行原理说起,然后帮助大家解决svchost.exe占用CPU高的问题。故障图如下:

Windows7进程
SVCHOST.EXE 位于Windowssystem32系统文件夹,其文件描述为“Generic Host Process for Win32 Services”。当Windows启动时,SVCHOST.EXE将自动检查Windows注册表的系统服务组成、构建系统服务列表,然后将相关的.DLL动态库文件加载为具体的运行中的系统服务。因此,我们可以将SVCHOST.EXE看作一个“用于加载系统服务的宿主程序”由于每个SVCHOST.EXE进程可能会加载一个或若干个系统服务,直到所有的SVCHOST.EXE将全部系统服务加载完毕,所以我们会在任务管理器中看到多个SVCHOST.EXE同时运行,这是设计使然。一般地,Windows XP/Windows Server 2003可能会有不超过六个SVCHOST.EXE同时运行;而Windows Vista/Windows Server 2008/Windows 7会有不少于十个SVCHOST.EXE同时运行。当您在Windows任务管理器中查看 SVCHOST.EXE进程时,SVCHOST.EXE进程的“用户名”应该显示为SYSTEM、LOCAL SERVICE或NETWORK SERVICE。(如果在任务管理器中看不到“用户名”,请在菜单中选择“查看”-“列设置”,选中“用户名”复选框。)如果某个SVCHOST.EXE 进程的“用户名”显示的是用户帐户的名称(例如Administrator),则这个SVCHOST.EXE很可能是冒仿的恶意程序。另外您需要确认,您看到的SVCHOST.EXE进程的名称拼写是否有误。比如假设显示的进程名称是SVCH0ST.EXE(用数字0替换了字母O),则很可能是冒仿的恶意程序;再比如进程的名称虽然是SVCHOST.EXE,但此进程却没有位于Windowssystem32(Windows Vista以上版本的任务管理器可以查看进程所在的文件夹路径),则也可能是冒仿的恶意程序。由于SVCHOST.EXE是加载系统服务的宿主进程,所以您如果发现某SVCHOST.EXE进程占用的系统资源较多,即表明通过这个 SVCHOST.EXE进程加载的系统服务占用的系统资源较多。您首先需要确定通过这个SVCHOST.EXE进程加载的系统服务具体是什么,然后根据计算机的实际情况决定是否关闭相应的系统服务、以释放服务占用的系统资源,这样SVCHOST.EXE即可释放相应的系统资源。虽然大多数系统服务只有在遇到故障时才会占用较高的系统资源,但某些特殊的服务即使是正常工作状态也将消耗较多系统资源。例如Automatic Updates自动更新服务,当自动更新在后台搜索可用的系统更新程序时必将占用较高的资源,这是设计使然而不是故障。判断一个SVCHOST.EXE加载了哪些系统服务有两种方法判断方法一:
1、在Windows任务管理器的“进程”选项卡中查看占用资源较高的SVCHOST.EXE进程对应的PID,将PID记下。(如果在任务管理器中看不到“PID”,请在菜单中选择“查看”-“列设置”,选中“PID”复选框。)
2、以管理员权限运行命令提示符(CMD.EXE),在命令提示符中执行:
TASKLIST –SVC
您将看到类似如下所示的结果:
图像名 PID 服务 SVCHOST.EXE 1104 DcomLaunch,TermServices SVCHOST.EXE 1188 RpcSs……
3、对照您在任务管理器中看到的SVCHOST.EXE的PID,在上述结果中查找对应的 SVCHOST.EXE。例如,假设您在任务管理器中看到PID为1188的SVCHOST.EXE占用了较多系统资源,而TASKLIST –SVC的结果显示PID为1188的SVCHOST.EXE加载的服务是RpcSs,即表明RpcSs服务(Remote Procedure Call (RPC)服务)占用了较高的系统资源。
判断方法二:
1、在microsoft.com下载系统工具Process Explorer:
http://www.microsoft.com/technet/sysinternals/Utilities/ProcessExplorer.mspx www.winwin7.com(http://www.microsoft.com/technet/sysinternals/Utilities/ProcessExplorer.mspx)
2、运行Process Explorer,在进程列表中找到占用系统资源较多的SVCHOST.EXE进程,右键单击选择Properties(属性),切换至Services(服务)选项卡,在这里即可查看SVCHOST.EXE进程加载的系统服务是什么。当我们判断完成后,定位到加载的服务我偿可以打开本地服务,然后尝试停止服务再启动一般就可以解决问题了。解决案例:通常情况下,网络不好时Windows自动更新服务可能会失败,导致其反复重试,结果CPU负载极高。其表现为:系统启动几分钟后 svchost.exe就会占100%cpu资源,但是拔掉网线就好了。解决办法: 1、进入安全模式 2、删除C:WINDOWSSoftwareDistribution下面所有的文件重启机器, 3、 打开控制面板- 管理工具- 服务,找到自动更新(Automatic Updates),设成手动更新或者关闭自动更新, 4、重启机器,删除C:WINDOWSSoftwareDistribution下面的文件,这时再在控制面板里恢复自动更新设置。当然不同的问题要用不同的方法来解决,多搜索网络上可能都会解决答案。
Windows7软件相关内容
-
-
-
-
玩游戏时出现0xc0000142的弹窗时该如何解决?
有时候我们在游玩游戏时,会突然出现以下弹窗:应用程序无法正常启动(0xc0000142)。请单击“确定”关闭应用程序。导致游戏无法正常运行了,也找不到合适的办法解决,怎么办呢?本次为玩家们带来了几种解决办法,能够完美的解决0xc0000142无法正常...2025-10-01 -
-
-
-
-
mds是什么文件?mds文件怎么打开用什么软件
在使用电脑过程中,我们会遇到各种各样的文件格式,其中一些比较少见的,用户可能会不知道是什么文件,怎么打开,如mds是什么文件,用什么打开问的朋友很多,这里小编和大家讲解一下。mds是什么文件?MDS文件镜像文件格式之一,想要打开这个文件必须借助虚拟光...2025-10-01 -
发表回复
评论列表 ( 0条)