WMI 查询服务导致服务器CPU非常高!wmiprvse

内容纲要

转自 http://blog.csdn.net/fogyisland2000/article/details/7930810

今天到达杭州客户现场拜访,客户看到我来非常HAPPY,寒暄之后突然想起他们一个问题,希望能够帮忙处理!状况如下,SVCHOST和WMIPRVSE 这两个服务一共站到了

90%的内存。画面如下:

我们可以发现这三个进程占用的CPU很高,差不多占用了90%以上的内存了。这什么原因呢?我们通过Sysinternal 工具的processexplorer .来查看具体进程,发现WMI进程中占用系统资源比较大的是WMI 的 NETWORK SERVICE

在对比下系统资源管理器,我们发现系统资源占用比较大的是来自于网络服务,经过初步判断,我认为这是来自于网络对于这台AD服务器的WMI调用导致CPU占用率偏高:

接下来我需要确定下这个进程中WINPRVSE 与SVChost 的关联关系,我采用如下的命令 tasklist /svc 可以得出当前以服务模式的应用关联的PID及应用

 

 

运行后结果如下:

 

接下去怎么办呢?我们通过下载微软的网络协议分析工具 Network monitor 来分析网络数据包,下载地址如下:

http://www.microsoft.com/en-us/download/details.aspx?id=4865AFQjCNGHpuNa95BwPYBZ6M8dDVIUBhIL3A

安装好了以后,我们利用网络数据分析数据包,选择好相应的网卡:

在当前界面Capture,抓取与这台机器相关的数据包,点击Start 开始抓取:

然后我们停止抓取,点击上面PID对应的SVCHOST进程,这个PID 是前面我们用tasklist /svc 查到的进程。

 

发现抓取的界面有比较多的WMI查询语句:

 

来源找到了,上面是一张演示图片,不是真实的环境。我们在真实的环境中发现,他们目前的一个验证设备会与这台机器不断的进行WMI查询。在这台设备上取消与这台机器关联后,我们发现CPU立即降下来了。

这个问题顺利解决!

发表回复