IIS上的请求超时次数太多
本文关键字:太多 超时 请求 IIS | 更新日期: 2023-09-27 17:52:52
我有一个相当繁忙的网站,每月大约有1000万的浏览量。
我的一个应用程序池似乎堵塞了几个小时,我正在寻找一些关于如何解决它的想法…?我怀疑它以某种方式耗尽了线程,但我不确定如何追溯地确定这个…?以下是我所知道的:
- 该网站从未"停机",但大约90%的请求开始超时。
- 我可以看到大量的"HttpException - Request timed out."在日志中断期间
- 我找不到任何SQL错误或代码错误会导致超时。
- 所有页面似乎都出现了超时。
- 有一个页面上有一个错误,可能会导致该特定页面出现错误。
- 站点必须重新启动。
网站是ASP。. NET c# 3.5 WebForms..
可能性:
- 线程耗尽: 我的想法是,导致错误的页面可能以某种方式开始阻塞可用的线程?
- 全局代码错误: 另一种可能性是我的一个静态类在它的某个地方有一个未被发现的错误。这是不可能的,因为这以前从未发生过,我找不到这些类的任何日志错误,但这是一种可能性。
更新
当问题发生时,我已经设法追踪到它。页面正在正常加载,但由于某些原因WebResource。axd和ScriptResource。axd都是加载需要一分钟。在性能计数器中,我可以看到ASP。. NET请求此时排队尖峰。
我要尝试的第一件事是Sam Saffron的CPU分析器工具,它应该给出一个指示,如果有一些常见的事情正在发生太多/太长。部分原因是它不涉及任何改变;在服务器上运行它。
之后,还有各种其他调试工具可用;我们发现,一些非常狭隘的方法在查看时间花在哪里方面可以非常有效(当然,它只适用于10%的成功结果)。
你当然可以打开服务器分析工具,拖入各种。net/IIS计数器,这些可以帮助你发现一些问题。
在这三个选项之间,您应该包括:
- 代码掉进黑洞,永远不会出来(通常与线程相关)
- 代码运行,但太慢(通常与数据访问相关)