就前两天在使用电脑的时候,突然发现电脑缓慢,查看了一下windows任务管理器,发现CPU被占用99%,查看了一下进程,发现是一个叫svchost.exe的进程占用了,于是直接结束了这个进程,结束进程后,发现无法上网了(上不了网问题是因为我们结束了这个关键进程svchost.exe)。于是我又重新启动了一下电脑,在没上网的时候发现svchost.exe运行正常,没有占用多余资源,CPU资源占用也正常,但是我连接网络后,过了一小会又发现svchost.exe占用了大量的CPU资源,导致系统很慢,刚开始以为是中病毒了,赶紧重新安装了一下系统。
系统安装完了,更新补丁,由于网络速度不是很快,于是我先取消了更新补丁(需要先上网查点东西),过了一会,老问题重现了,svchost.exe又开始占几乎100%的CPU资源了,到这里我突然想到,是不是因为自动更新的原因?因为我上次出现这个问题的时候也是取消了自动更新安装进程,于是我打开了自动更新的服务:打开控制面板管理工具服务,找到"Automatic Updates",“Automatic Updates”这个服务的描述是:启用下载和安装 Windows 更新。如果此服务被禁用,这台计算机将无法使用“自动更新”功能和 Windows Update 网站。可执行文件路径为:“C:\WINDOWS\system32\svchost.exe -k netsvcs”目前状态是已启动,于是我直接停止了该服务,发现svchost.exe占用资源情况正常了,问题得到了解决。问题解决后,我在网络上也转了一下,发现遇到这问题的人还挺多,大概现象就是:
1.电脑启动运行几分钟后 svchost.exe就会占系统cpu资源接近100%,一般99%左右。
2.当电脑拔掉网线后,svchost.exe就恢复正常了,但是重连上网后一会儿:svchost.exe又占cpu资源的99%;
下面总结一下解决方法:
1.首先需要使用杀毒软件排除病毒的影响。
2.清空C:\WINDOWS\SoftwareDistribution 目录下所有的文件重启机器即可。(C:\WINDOWS\SoftwareDistribution是Windows update服务的临时文件存放目录)
如果机器提示文件正在使用("Automatic Updates"服务正在运行)无法删除相应目录:则想办法打开控制面板管理工具服务,找到"Automatic Updates",停止启动状态,设置成手动启动, 重启后再删除 C:\WINDOWS\SoftwareDistribution。问题就解决了。 然后再打开控制面板>管理工具服务,找到"Automatic Updates",恢复成自动启动重启。 重启后让系统认真的把补丁安装一下,不要再取消安装操作了,完成系统自动更新后应该就不会再出现这个问题了。
再来说说什么是“svchost.exe”:svchost.exe是一个属于微软Windows操作系统的系统程序,微软官方对它的解释是:Svchost.exe 是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。这个程序对系统的正常运行是非常重要,而且是不能被结束的。</FONT>简单的说没有这个服务机器几乎就上不了网了。很多应用服务都是以来于这个接口RPC的,如果发现这个进程占了太多的CPU资源,造成svchost占系统CPU100%的原因并非svchost服务本身:以上的情况是由于Windows Update服务下载/安装失败而导致更新服务反复重试造成的。而Windows的自动更新也是依赖于svchost服务的一个后台应用,从而表现为svchost.exe负载极高。常发生这类问题的机器一般是上网条件(尤其是去国外网站)不稳定的机器,比如家里的父母的机器,往往在安装机器几个月以后不定期发生,每个月的第二个星期是高发期:因为最近几年MS很有规律的在每个月的第二个星期发布补丁程序)。其实都是软件太聪明惹的祸,svchost.exe的问题都是应用遇到失败/例外情况后自动重试造成的,微软本想为用户节省时间的设计,但是重试的频度过高反而导致了CPU被大量占用,电脑运行缓慢。
转载于:https://blog.51cto.com/sky2133/1659505