【问题标题】:StateServer - System.Web.HttpApplication.BeginRequest SLOWStateServer - System.Web.HttpApplication.BeginRequest 慢
【发布时间】:2014-09-01 00:03:06
【问题描述】:

我有 8 个应用程序 (VB.NET) 我的服务器运行 SQL Server 2008 R2。每个应用程序都有一个数据库。应用程序在一台服务器上,而数据库在另一台服务器上。

只是为了让你知道:

服务器数据库平均占用 30% 的 CPU,应用服务器平均占用 60% 的 CPU。

2 台具有相同配置的服务器。基本配置:

  • 8CPU
  • 30GB 内存
  • Windows Server 2008 R2

我们使用 NewRelic 24 小时监控系统。还有一个大问题:NewRelic 总是指向由“System.Web.HttpApplication.BeginRequest()”引起的减速。

在第二张图中,我们可以看到问题是:“应用程序代码(System.Web.HttpApplication.BeginRequest())

我在互联网上搜索了很多,发现可能与“sessionState”有关。我使用“StateServer”所有八个应用程序。 (使用“StateServer”的原因是应用程序会更快。)

按照“sessionState”配置:

<sessionState
      cookieless="UseCookies"
      cookieName=".authz"
      mode="StateServer"
      regenerateExpiredSessionId="true"
      stateConnectionString="tcpip=127.0.0.1:42424"
      timeout="20"
      useHostingIdentity="true" />

在任何地方,我将对象放在会话中,我都使用“Serializable()”。示例:

<Serializable()> Public Class Example

无论如何,我想向你们解释一下情况。我该怎么做才能让它更快并解决这个问题?谢谢

【问题讨论】:

  • 好吧,深入了解实际运行的代码。显然,BeginRequest 调用了其他需要这么长时间的方法。认为 BeginRequest 本身执行了 150 毫秒是没有意义的。找出运行的代码。

标签: vb.net sql-server-2008 httpwebrequest session-state newrelic


【解决方案1】:

您似乎找到了与 thread agility and session state 相关的相关信息,因此我们可以跳过。如果您认为您缺少信息,您可以使用Custom TransactionsCustom Instrumentation 帮助代理查看可能缺少的方法。

但是,即使在进行自定义检测时,持续时间也不会改变。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    • 2012-01-14
    • 1970-01-01
    相关资源
    最近更新 更多