【发布时间】:2023-03-08 06:05:02
【问题描述】:
我的 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 应用程序做同样的事情就好了。
有什么方法可以终止/终止此类进程或找出导致此问题的原因吗?
【问题讨论】:
-
您需要在提升的命令提示符下运行
taskkill。当它们被孤立时,IIS 将这些进程留在那里docs.microsoft.com/en-us/iis/configuration/… -
同样的事情(cmd 以管理员身份运行):taskkill /pid 4648 /f 错误:PID 4648 的进程无法终止。原因:没有正在运行的任务实例。
-
如果你点击“没有正在运行的任务实例”,那么问题就更大了。您可能会从 stackoverflow.com/questions/12528963/… 中找到提示,解决此类问题绝非易事。
-
@LexLi 我尝试使用 powershell 仍然存在进程。由于这是生产环境的传出流量被阻止,而且我没有足够的知识运行内核调试器最终找到根本原因,我认为 Mark Russonovich 说了这么多,存在内核级别的“问题”
标签: iis out-of-memory terminate w3wp