asp.net崩溃:IIS8请求Execting增加,CPU保持低位

时间:2015-02-10 10:23:08

标签: c# asp.net performance iis

我很难搞清楚接下来要采取或研究的故障排除步骤。

我在一个IIS8网络服务器上运行了一个Web应用程序。最近,我们正在努力应对Web应用程序的性能。今天早上,webapplication'再次崩溃'。有了这个,我的意思是它没有回应任何新的请求。

因为Perfmon是你的朋友,所以我解雇了以下的柜台:

  • 处理器时间(%)
  • 请求执行
  • 请求/秒

查看我已包含的图片。enter image description here

我发现有趣的是“请求执行”仅在此时增加。并且...... CPU没有100%运行以摆脱所有这些请求。

由于我是这个Web应用程序的主要开发人员,我已经优化了许多高CPU网页。 有了这个SO线程,我希望找到瓶颈。也许有额外记录的提示。应用程序代码分析等。我可以在需要时提供有关设置或应用程序的更多信息。

希望你能提供帮助。非常感谢提前。

一些规格:

  • Windows Server 2012R2
  • IIS8
  • Intel Xeon Quad核心CPU
  • 总计4 gig内存
  • ASP.net 4.0网络应用程序

用户规格:

  • Google Analytics实时访问者介于100-500之间
  • 正常请求/秒平均值为30
  • '峰值'请求/秒为200/300

编辑: 我运行一个Perfmon数据收集集大约一个小时。恰好在网站崩溃的那一刻。我使用工具PAL来分析它。它只有很多关于内存低于5%的警告。 这个记忆问题显然是我们即将解决的问题。

我注意到的另一件事是IIS8中的“当前请求”列表非常庞大。它包含数百个“当前请求”。我希望这些请求达到超时值并向用户发送请求超时。

这是当前健康状况的打印屏幕: enter image description here

此列表无限长。

而且,我刚才注意到的另一件事是,一个请求花了超过10分钟(!)来向用户传递一个byte []。 'state'是SendResponse。我认为这个用户是在一个低带宽的设备上。只要该用户正在下载 - 就会采用一个工作进程。我们应该如何准备这些待处理的长期请求?

1 个答案:

答案 0 :(得分:0)

https://pal.codeplex.com/查看PAL - 这将指导您收集大量统计数据,然后为您分析。

与CPU一起,其他瓶颈是内存,网络和磁盘IO。 PAL应该可以帮助您收集适当的统计数据 - 它有几个预定义的集合,例如Web服务器,数据库服务器等