确定哪个页面/页面/功能锁定整个 IIS 服务器时出现问题

确定哪个页面/页面/功能锁定整个 IIS 服务器时出现问题

我无法确定哪个页面/页面/功能锁定了整个 IIS 服务器。

突然间整个 w3wp.exe 的 CPU 使用率跳升至 90-98%。我创建了 3 个不同的应用程序池来查看哪个 w3wp.exe 服务锁定了处理器,但我无法找到此信息。

我只看到 3 个服务中有 2 个的使用率为 0-5%,而其中一个在一段时间后跳到 90-98% 左右。我认为是某个进程/函数/重定向/sql 造成了这种情况,但我想消除它。到目前为止,我甚至找不到问题的根源。在我本地的装有 VS2010 的开发机器上,一切都运行正常,我无法复制问题。

服务器是 windows 2k3 web 服务器、sql server 2k5 和 .net 4.0

感谢您提供有关此问题的帮助、链接或任何信息。

费罗

答案1

我已经创建了 3 个不同的应用程序池来查看哪个 w3wp.exe 服务锁定了处理器,但我无法找到此信息。

这是什么意思?完成此操作后,您可以找出哪个 PID(进程 ID)占用了所有 CPU。然后,使用 SysInternals Process Explorer 之类的工具,您可以查看哪个应用程序池与哪个 PID 相关联。

/edit - 在我的其中一台机器上执行此操作时,我发现在 svchost.exe 下有多个 w3wp.exe 实例在运行 - 当我检查 svchost.exe 属性时,在图像下,我看到一个命令行

C:\WINDOWS\System32\svchost.exe -k iissvcs

所以我知道我正在查看 IIS。如果我查看其中一个 w3wp.exe 进程的命令行,我会看到

c:\windows\system32\inetsrv\w3wp.exe -a \\.\pipe\iisipm58b150c3-732e-4bd0-a8ef-f5544c062674 -t 20 -ap "DemoPool"

  • 最后一个参数是我的应用程序池的名称。

一旦你将范围缩小到哪个应用程序池,你就必须应用你所了解的应用程序池中正在运行的内容来找出答案。进行一些调试,跟踪日志,我不知道。如果你仍然卡在这一点上,你应该把问题抛给 StackOverflow。

相关内容