服务器之家:专注于服务器技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - 服务器知识 - w3wp.exe占用cpu过高的解决方法

w3wp.exe占用cpu过高的解决方法

2020-09-11 22:08服务器技术网 服务器知识

有时候发现某个网站的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文件,打开即可查看。

延伸 · 阅读

精彩推荐