如何查询占用CPU利用率比较高的站点

背景:最近发现8*.19*这台经常有客户反映很慢,重启IIS只是暂时解决问题,过段时间还是慢,今天登录这台服务器超慢,打开任务管理器一看,CPU利用率100%,先把占用比较高的进程结束掉,马上快多了。最后查到相应的站点提交经理处理了。

查询之前必须要了解一些概念,

PID(进程控制符)英文全称为Process Identifier。

PID就是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID。进程中止后PID被系统回收,可能会被继续分配给新运行的程序。

在任务管理器上面进程选项,默认是看不到PID的,需要调出来,方法:查看》选择列》勾选PID,如下图所示,然后就可以看到进程对应的PID值。

System Idle Process ,Windows内存管理进程,也是就是平时说的空闲进程。拥有0级优先,该进程作为单线程运行在每个处理器上,并在系统不处理其他线程的时候分派处理器的时间。它的CPU占用率越大表示可供分配的CPU资源越多,数字越小则表示CPU资源紧张。该进程是系统必须的,不能禁止。

W3wp或者W3wp.exe,IIS Application Pool Process。是在IIS(因特网信息服务器)与应用程序池相关联的一个进程,如果你有多个应用程序池,就会有对应的多个w3wp.exe的进程实例运行,如下图

上面的概念明白以后,下面就应该查了。

①看CPU利用率比较高的w3wp进程所对应的PID值。

②打开命令提示符,输入命令iisapp –i(或者是iisapp –a)会出现错误提示,可以忽略(具体为什么出现这个错误你们有兴趣自己百度下)

③确定之后会陆续出现几个windows脚本宿主,主要看里面内容,即w3wp对应的PID值和相应的进程池,这时候你就可以查到PID值对应的是哪个进程池

④根据进程池一一排查对应的站点

思路:

服务器慢》查到是CPU利用率高》查看对应的w3wp进程》查看w3wp对应PID》根据PID查对应进程池》根据进程池找出相应的站点,就这么简单。

扩展:

Iisapp的其他用法:

先再CMD里面输入:  cd %systemroot%\system32

然后再输入:   cscrIPt.exe iisapp.vbs –a

命令行显示

W3WP.exe PID: 5572   AppPoolId: apppool025015

W3WP.exe PID: 2168   AppPoolId: apppool025018

W3WP.exe PID: 1068   AppPoolId: apppool002001

W3WP.exe PID: 2948   AppPoolId: apppool025017

W3WP.exe PID: 7176   AppPoolId: apppool025016

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章