背景:最近发现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
转载于:https://blog.51cto.com/shuangyang/498080