我有8個應用程序(VB.NET)我的服務器與SQL Server 2008 R2一起運行。每個應用程序都有一個數據應用程序位於另一臺服務器上的服務器和數據庫中。StateServer - System.Web.HttpApplication.BeginRequest SLOW
只是爲了讓你知道:
服務器數據庫上的CPU使用的平均30%和應用服務器對CPU使用的平均60%。
2臺服務器的配置相同。基本配置:
- 8CPUs
- 30GB存儲器RAM
- 的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本身執行150ms是沒有意義的。找出運行的代碼。 – usr