Windows下进程占用CPU过大的解决方案

Windows下进程占用CPU过大


1、WMI Provider Host(wmiprvse.exe)占用CPU高


新装windows8.1 发现WMI Provider Host(wmiprvse.exe)占用CPU非常高,有事会瞬间飙升到100%造成机器卡死几秒。寻找了很久找到了以下解决方案:
1、首先要排除病毒或***的可能。
2、在运行里执行 services.msc启动系统服务。
3、找到windows management Instrumentation 这个服务,右键点击选择属性查看该服务的相关依赖服务。
4、将依赖服务里除了windows firewall/Internet connection sharing(ICS)设为自动启动,其余相关服务都设置为手动启动。
5、重启机器。

我按上述步骤找到windows management Instrumentation的相关依赖服务,有三个:Internet connection sharing(ICS)、IP Helper、Security Center。

Windows下进程占用CPU过大的解决方案

Internet connection sharing(ICS)原本就是禁用。IP Helper是和IPv6有关,目前基本上是没有用的,原本是自动,改为手动。

Windows下进程占用CPU过大的解决方案

Security Center是安全中心,原本设置是自动(延迟),因为觉得还有用,没舍得改。

Windows下进程占用CPU过大的解决方案

上面方案所说的windows firewall,是win8.1自带的防火墙。这个我就不需要了,禁用了。


Windows下进程占用CPU过大的解决方案

重启计算机后发现ok了。

老实说我只将IP Helper改为手动、windows firewall改为禁用就解决了问题,个人以为WMI Provider Host(wmiprvse.exe)占用CPU非常高和windows firewall相关的可能性更大些。所以建议先将windows firewall禁用看看,如果没用再按上面的方案进行。


(2)今天上班,发现系统有点卡,QQ总是没响应。

打开任务管理器,发现有一个程序- WMI Provider Host 占用cpu竟然高达80%

Windows下进程占用CPU过大的解决方案

然后通过事件查看器发现是一个pid为9832的程序造成的

Windows下进程占用CPU过大的解决方案

然后在任务管理器里面查找这个程序,发现是360的一个程序,名字为360QMachine,卸载即可。

我卸载不掉,就把360全都卸载了,重启后正常了

(3)更新驱动

最近忙着准备毕业论文,答辩便闲置下来维护手里的小黑,莫名发现任务管理器里面CPU占用率爆炸了。经常保持在100%.

Windows下进程占用CPU过大的解决方案

发现主要是因为WMI服务占用了太多的CPU,接下来作为伸手党的我打开百度插了若干方法,无一例外的都是说让我禁用WMI服务,虽然我对于系统这块来说是个小白,但是讲道理我也觉得禁用系统服务的做法太离谱,后来多方的探索后。在更新了主板Bios之后,我的CPU使用率大幅度下降Windows下进程占用CPU过大的解决方案

我估摸这应该是win10 和主板的兼容有问题,所以才导致wmi的异常。之后在贴吧里也发现吧友说win8.1也出现过wmi占用率贼高的问题。


所以win7以上的WMI Provider Host对CPU使用率高的话,推荐大家更新主板驱动,而不是去禁用该服务。---小麦苗把能更新的驱动都更新了一遍,然后就可以了。









2、NT Kernel & System 进程CPU占用过高

最近电脑突然出现顿卡顿卡的现象,查看进程管理,发现有一个System的进程一直占用CPU 50%,并且开机便如此。

Windows下进程占用CPU过大的解决方案

Windows下进程占用CPU过大的解决方案

针对这个问题我在网上查了很多资料,大部分都说系统该清理啦或者巴拉巴拉之类的电脑小白解决办法,都是复制粘贴的,看到老外写了一篇关于NT Kernel & System 进程CPU占用过高问题文章分析,我觉得分析的还是很好的,只可惜我最终发现我的问题并非出现在驱动上面(之前一直在这个误区里面走了好久,驱动装了卸了装,折腾不息)。

好了,背景介绍到这里,下面说下我的问题是怎么解决的:

首先打开Process Explorer查看System进程,

Windows下进程占用CPU过大的解决方案

接下来双击System进程,进入属性,查看Threads,

Windows下进程占用CPU过大的解决方案

按CPU排序之后你就会发现是什么后台服务占用了那么高的CPU,我到后来才发现竟然是91助手(连接android和PC的一个软件),当时虽然卸载了91助手,但是它竟然在C:windowsSystem32drivers下面留下了91Ass**.sys的一个文件,每次进系统都会加载,直接导致了我的CPU占用率居高不下,双核的CPU几乎废了一个核。






3、svchost.exe占用CPU 100%的解决方法


就前两天在使用电脑的时候,突然发现电脑缓慢,查看了一下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) 中运行的服务的通用主机进程名称。这个程序对系统的正常运行是非常重要,而且是不能被结束的。简单的说没有这个服务机器几乎就上不了网了。很多应用服务都是以来于这个接口RPC的,如果发现这个进程占了太多的CPU资源,造成svchost占系统CPU100%的原因并非svchost服务本身:以上的情况是由于Windows Update服务下载/安装失败而导致更新服务反复重试造成的。而Windows的自动更新也是依赖于svchost服务的一个后台应用,从而表现为svchost.exe负载极高。常发生这类问题的机器一般是上网条件(尤其是去国外网站)不稳定的机器,比如家里的父母的机器,往往在安装机器几个月以后不定期发生,每个月的第二个星期是高发期:因为最近几年MS很有规律的在每个月的第二个星期发布补丁程序)。其实都是软件太聪明惹的祸,svchost.exe的问题都是应用遇到失败/例外情况后自动重试造成的,微软本想为用户节省时间的设计,但是重试的频度过高反而导致了CPU被大量占用,电脑运行缓慢。


上一篇:876_linux趣味命令之screenfetch


下一篇:svchost是什么程序