IIS上的请求超时数很多

时间:2011-04-26 09:14:05

标签: c# asp.net iis

我有一个相当繁忙的网站,每个月的观看次数大约为10万。

我的一个应用程序池似乎堵了几个小时,我正在寻找一些关于如何解决它的想法..?我怀疑它以某种方式耗尽线程,但我不确定如何追溯确定...?这就是我所知道的:

  • 该网站从未“失败”,但大约90%的请求开始超时。
  • 我可以看到大量的“HttpException - Request timed out”。在停电期间的日志中
  • 我找不到任何可能导致超时的SQL错误或代码错误。
  • 所有页面上的超时似乎都在网站上。
  • 有一个页面上有一个错误,会导致该特定页面出错。
  • 该网站必须重新启动。

该站点是ASP.NET C#3.5 WebForms ..

可能性:

  1. 线程耗尽 我的想法是导致错误的页面可能以某种方式开始干扰可用线程?
  2. 全局代码错误: 另一种可能性是我的某个静态类在某个地方有一个未被发现的错误。这不可能,因为之前从未发生这种情况,我找不到这些类的任何日志错误,但这是可能的。
  3. 更新

    我已经设法在问题发生时跟踪问题。页面正常加载但由于某种原因 WebResource.axd ScriptResource.axd 需要一分钟才能加载。在性能计数器中,我可以看到ASP.NET Requests Queued峰值。

1 个答案:

答案 0 :(得分:3)

我要尝试的第一件事是Sam Saffron的CPU analyzer tool,它应该表明是否存在太多/太长时间发生的共同事件。部分原因是它不涉及任何变化;只需在服务器上运行它。

之后,还有各种其他调试工具可用;我们发现some very ghetto approaches可以非常有效地查看花费的时间(当然,它只能用于成功结果的10%)。

您当然可以打开服务器分析工具并拖动各种.NET / IIS计数器,可以帮助您发现一些事情。

在这三个选项之间,您应该了解:

  • 代码掉入黑洞但从未出现(通常与线程相关)
  • 代码正在运行,但速度太慢(通常与数据访问相关)