w3wp.exe占用cpu过高的解决方法
作者:
有时候发现某个网站的w3wp.exe占用资源过高,一个w3wp.exe代表一个网站的进程,查询某个站点w3wp.exe占用cpu过高的方法就是使用iisapp.vbs文件。
iisapp.vbs:IIS 应用程序查询脚本
报告为特定的应用程序池提供服务且当前正在运行 w3pwp.exe 进程的进程标识符 (PID)。
语法
iisapp [a/ AppPoolName | /p AppPoolID]
参数
/a AppPoolName
指定特定应用程序池的名称。(可选项)
/p AppPoolID
按 ID 号指定应用程序池。(可选项)
注释
如果未指定应用程序池名或 ID,则 iisapp 列出所有运行应用程序。
仅当使用 /s 时,才可使用 /u 和 /p 命令行选项。必须同时使用 /p 和 /u 才能提供用户密码。
Iisext.vbs 执行 IIS 管理器中可用的相同操作。可使用任何一种工具管理 IIS 网站。
发出命令的计算机必须正在运行 Windows XP 或 Windows Server 2003 操作系统。用户必须是命令所影响的计算机上的 Administrators 组成员。
命令所影响的计算机必须是运行带有 Internet 信息服务 (IIS) 6.0 的 Windows Server 2003 的服务器。
示例
下列示例显示在特定的情况下如何使用 iisapp。
查看所有运行应用程序
下列示例显示本地计算机上运行的所有应用程序池,按其进程 ID (PID) 和应用程序池 ID (AppPoolID) 标识。该命令忽略所有可选参数并接受默认值。
iisapp
Iisapp 发出如下响应信息:
正在连接到服务器 ...已完成。W3WP.exe PID:2232 AppPoolID:DefaultAppPool W3WP.exe PID:2608 AppPoolID:MyAppPool
按进程 ID 查看运行应用程序
如果知道特定应用程序的 PID,则可以使用下列命令检查其状态。
iisapp /p 2608
Iisapp 发出如下响应信息:
正在连接到服务器 ...已完成。W3WP.exe PID:2608 AppPoolID:MyAppPool
格式图例
格式 意义
斜体 用户必须提供的信息
粗体 用户必须完全按照显示的那样键入的元素
省略号 (...) 可以在命令行中重复多次使用的参数
在括号 ([]) 之间 可选项目
在大括号 ({}) 之间,将选项用竖线 (|) 隔开。例如:{even|odd} 用户必须从中只选择一个选项的选项集
Courier font 代码或程序输出
另外需要注意:
1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid
2、在命令提示符下运行iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池
3、到iis中察看该应用程序池对应的网站,就ok了
查询某个站点w3wp.exe占用cpu过高的方法
服务器里面有几个站,所以进程里面的w3wp.exe也有好几个,可是这2天有点不正常,其中有一个w3wp.exe占用CPU接近100%,导致服务器非常卡.
一开始怀疑是被攻击了,因为一般被CC都是这样,但是找不到是哪一个站点.以前在某个站上看过一个方法,试试看.
1.进入命令行.
2.输入命令:iisapp -a
弹出PID值与应用池对应的提示框,最后找到是主站流量比较大.确实这几天流量比较大了.用的还是ACC的数据库,内容页用的都是动态html(伪静态).所以导致w3wp.exe过多占用CPU资源.回收一下应用池,有所好转了.
经测试,偶尔会出现vbs提示没有权限运行的错误,大家可以写个批处理如下:
cmd.exe /k cscript.exe //e:vbscript c:\windows\system32\iisapp.vbs -a >>iis_w3wp.txt
即可生成iis_w3wp.txt文件,打开即可查看。
报告为特定的应用程序池提供服务且当前正在运行 w3pwp.exe 进程的进程标识符 (PID)。
语法
iisapp [a/ AppPoolName | /p AppPoolID]
参数
/a AppPoolName
指定特定应用程序池的名称。(可选项)
/p AppPoolID
按 ID 号指定应用程序池。(可选项)
注释
如果未指定应用程序池名或 ID,则 iisapp 列出所有运行应用程序。
仅当使用 /s 时,才可使用 /u 和 /p 命令行选项。必须同时使用 /p 和 /u 才能提供用户密码。
Iisext.vbs 执行 IIS 管理器中可用的相同操作。可使用任何一种工具管理 IIS 网站。
发出命令的计算机必须正在运行 Windows XP 或 Windows Server 2003 操作系统。用户必须是命令所影响的计算机上的 Administrators 组成员。
命令所影响的计算机必须是运行带有 Internet 信息服务 (IIS) 6.0 的 Windows Server 2003 的服务器。
示例
下列示例显示在特定的情况下如何使用 iisapp。
查看所有运行应用程序
下列示例显示本地计算机上运行的所有应用程序池,按其进程 ID (PID) 和应用程序池 ID (AppPoolID) 标识。该命令忽略所有可选参数并接受默认值。
iisapp
Iisapp 发出如下响应信息:
正在连接到服务器 ...已完成。W3WP.exe PID:2232 AppPoolID:DefaultAppPool W3WP.exe PID:2608 AppPoolID:MyAppPool
按进程 ID 查看运行应用程序
如果知道特定应用程序的 PID,则可以使用下列命令检查其状态。
iisapp /p 2608
Iisapp 发出如下响应信息:
正在连接到服务器 ...已完成。W3WP.exe PID:2608 AppPoolID:MyAppPool
格式图例
格式 意义
斜体 用户必须提供的信息
粗体 用户必须完全按照显示的那样键入的元素
省略号 (...) 可以在命令行中重复多次使用的参数
在括号 ([]) 之间 可选项目
在大括号 ({}) 之间,将选项用竖线 (|) 隔开。例如:{even|odd} 用户必须从中只选择一个选项的选项集
Courier font 代码或程序输出
另外需要注意:
1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid
2、在命令提示符下运行iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池
3、到iis中察看该应用程序池对应的网站,就ok了
查询某个站点w3wp.exe占用cpu过高的方法
服务器里面有几个站,所以进程里面的w3wp.exe也有好几个,可是这2天有点不正常,其中有一个w3wp.exe占用CPU接近100%,导致服务器非常卡.
一开始怀疑是被攻击了,因为一般被CC都是这样,但是找不到是哪一个站点.以前在某个站上看过一个方法,试试看.
1.进入命令行.
2.输入命令:iisapp -a
弹出PID值与应用池对应的提示框,最后找到是主站流量比较大.确实这几天流量比较大了.用的还是ACC的数据库,内容页用的都是动态html(伪静态).所以导致w3wp.exe过多占用CPU资源.回收一下应用池,有所好转了.
经测试,偶尔会出现vbs提示没有权限运行的错误,大家可以写个批处理如下:
复制代码 代码如下:
cmd.exe /k cscript.exe //e:vbscript c:\windows\system32\iisapp.vbs -a >>iis_w3wp.txt
即可生成iis_w3wp.txt文件,打开即可查看。