gpt4 book ai didi

asp.net - System.Web.HttpApplication.BeginRequest() 中的间歇性延迟,与 SessionState 无关

转载 作者:行者123 更新时间:2023-12-04 12:54:45 24 4
gpt4 key购买 nike

我们有两个 Web 应用程序(Azure Web 角色),它们在 System.Web.HttpApplication.BeginRequest 期间都会遇到偶尔的长时间延迟(40 到 60 秒)。我们知道这一点是因为我们使用 NewRelic 来监控我们的网络应用程序。 The usual culprit is thread agility issues由于 ASP.NET 的 session 状态锁定机制,但是我们不使用 ASP.NET session 状态,并且在其中一个站点上我们根本不使用 session 。

一个应用程序比另一个应用程序复杂得多并且延迟更多,但我将在这个问题中使用简单的应用程序来缩小根本原因。

简单的 Web 应用程序是一系列基于 ServiceStack 的 Web 服务。它不使用 session 。它仅充当基于 WCF 的服务层的中介。它主要是将请求传送到 WCF 服务,然后将响应映射到 View 以传输回代理。服务器甚至不会因为它们正在运行的负载而出汗(最多 2.5% CPU)。

那么,请问可能的原因是什么?

  • 我最好的猜测是这是一个线程敏捷性问题,因为它似乎在等待某些东西,这表明某处有锁。但是如果不是 session 状态,它在等待什么? NewRelic 或 ServiceStack 导致锁定?
  • NewRelic的上报是错误的,没有问题。好吧,当我们过去使用 ASP.NET session 状态时,NewRelic 正确地报告了问题,并且出现了更多的延迟。
  • 最佳答案

    New Relic 没有特定于 ServiceStack 的检测,WCF 是非常基础的,没有自定义检测。没有更多信息,很难提供任何建议。线程敏捷性也是罪魁祸首,我建议先调查该路线。

    New Relic 可能将时间归因于它不应该的方法。我可能会首先打开 New Relic Support 的票证,并包含您的所有信息(代理日志、IIS/ASP.NET 配置、自定义处理程序?以及您的 New Relic 图表的永久链接)。

    关于asp.net - System.Web.HttpApplication.BeginRequest() 中的间歇性延迟,与 SessionState 无关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19409244/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com