c# 网站在服务器上第一次请求都需要耗时很久,c#-IIS上的大量请求超时

我有一个非常繁忙的网站,每月大约有1000万次观看.

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

>该站点从未停止运行,但是大约90%的请求开始超时.

>我可以看到大量的“ HttpException-请求超时”.在停机期间在日志中

>我找不到任何可能导致超时的SQL错误或代码错误.

>超时似乎在所有页面上都存在.

>一页上有错误,这会导致该特定页面上的错误.

>必须重新启动站点.

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

可能性:

>线程耗竭:我的想法是,导致错误的页面可能已经以某种方式开始阻塞可用线程?

>全局代码错误:另一种可能性是我的一个静态类的某个地方存在未发现的错误.这不太可能,因为这从未发生过,并且我找不到这些类的任何日志错误,但这是有可能的.

更新

现在,我已经设法跟踪了该问题的发生.页面正常加载,但是由于某种原因WebResource.axd和ScriptResource.axd都需要一分钟的时间来加载.在性能计数器中,我可以看到此时的ASP.NET请求排队高峰.

解决方法:

我要尝试的第一件事是萨姆·萨弗隆(Sam Saffron)的CPU analyzer tool,它应该指出是否发生了太多/太长的常见情况.部分原因是它不涉及任何更改;只需在服务器上运行它即可.

在那之后,还有其他各种调试工具可用.我们发现some very ghetto approaches可以有效地判断时间花在哪里(当然,仅在成功结果的10%上有效).

当然,您可以打开服务器配置文件工具,然后拖入各种.NET / IIS计数器,这可能有助于您发现一些问题.

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

>代码掉入一个黑洞而永不出来(通常与线程相关)

>代码正在运行,但是速度太慢(通常与数据访问有关)

标签:iis,asp-net,c

来源: https://codeday.me/bug/20191208/2091780.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值