CPU被一个进程推到100%,试图跟踪和消除这个问题

我有networking服务器CPU陷入25%,然后50%,然后75%,直到最终达到100%出现问题。 我们猜测可能是一些稍慢的SQL查询堆积起来,但不能复制这个问题

为了解决这个问题,我们开始研究IIS(7)上的设置,我们遇到了将“Web服务器进程”设置为1以上的选项,认为这可以释放并增加可用的进程用户查询,但是一旦我们这样做了,它就破坏了我们的应用程序,后来我们发现这很可能是因为我们使用会话,并且Web服务器进程不会保持来自同一用户的会话。

所以问题是,是否有一个设置可以让我们继续使用会话,还允许多个工作进程?

或者,有没有人有任何想法可能会导致在CPU使用的提升?

预先感谢您的任何build议

最大进程:这就是所谓的Web园艺 – 除非你的应用程序是无状态的,你不能这样做。 此外,在大多数情况下#进程不会提高可伸缩性,因为Windows调度线程而不是进程。

要弄清楚什么是错的:

  • 在IISpipe理器的服务器级别使用“工作进程”视图。

  • 在工作stream程中,所有的W3WP将被列出,以及它们所属的应用程序。

  • 然后,您可以通过右键单击每个进程中的运行请求。

如果这还不足以缩小原因,则需要使用采样分析器或debugging器来确定应用程序要做什么。 可以使用Windows Performance Toolkit,DebugDiag,WinDBG或Process Explorer中的XPERF来了解它在做什么。

尝试使用Sysinternals的Process Explorer + Process Monitor。

PE会让你查看大部分过程统计信息,以及每个线程调用堆栈。 PM将实时向您显示进程的所有进程,文件系统,registry和networking活动。

如果您想了解更多关于使用它们的详细信息,请浏览Sysinternals网站。 有几个教程和video突出显示它们的用法。