解决无法终止的w3wp.exe进程

问题描述

我在IIS上有Web应用程序,并且发生了奇怪的事情。几天后,启动了4,5,6或7个w3wp.exe进程,只有一个正在运行,而其他人正坐在那里并各自分配1GB以上的内存。

我无法终止该挂起进程:

C:\Users\administrator>taskkill /F /PID 5072 /T
ERROR: The process with PID 5072 (child process of PID 2988) Could not be terminated.
Reason: Access is denied.

(pid:2988是svchost.exe)

看来IIS无法杀死w3wp.exe进程,只是将其留在那里。唯一的区别是此Web应用程序位于已安装NFS卷的Z:\磁盘上。 由于此应用程序仅与sql通信并将文件保存到磁盘,因此我认为NFS上发生了一些怪异的锁定,并且进程处于某种不稳定状态,内部SSD RAID上执行相同操作的其他Web应用程序也很好。

是否有任何方法可以终止/杀死此类进程或找出导致此进程的原因?

添加

enter image description here

解决方法

您可以使用以下命令杀死工作进程:

taskkill /im processname.exe /f

taskkill /pid 1234 /f

注意:以管理员身份运行命令提示符。

“ / f”代表“力”。

还尝试设置iis回收应用程序池设置。应用程序池回收是指卸载应用程序池的所有辅助进程(w3wp.exe)并启动新实例来处理传入请求时。

https://docs.microsoft.com/en-us/iis/configuration/system.applicationhost/applicationpools/add/recycling/

设置了iis应用程序池cpu使用率设置的另一个选项:

enter image description here

超过其CPU限制的应用程序池工作程序进程将被迫关闭。

https://docs.microsoft.com/en-us/iis/configuration/system.applicationHost/applicationPools/add/cpu

如果您想知道内存使用率高的原因,则可以尝试生成内存转储文件,并根据转储对问题进行调试和分析。

https://docs.microsoft.com/en-us/sysinternals/downloads/procdump

https://www.microsoft.com/en-sg/download/details.aspx?id=49924

https://docs.microsoft.com/en-us/iis/troubleshoot/performance-issues/troubleshooting-high-cpu-in-an-iis-7x-application-pool

,

这通常意味着某些东西已锁定在您的IIS进程中,例如网络(TCP连接)或无法读取物理文件;在您的生产环境中很难解决这个问题,我建议您可以转储内存并调查真正的原因。 (任务管理器->详细信息->右键单击进程->创建转储文件)。