SQL Server 2008 R2를 실행하는 8 대의 응용 프로그램 (VB.NET)이 있습니다. 데이터베이스가있는 각 응용 프로그램. 응용 프로그램은 서버에 있고 데이터베이스는 다른 서버에 있습니다.StateServer - System.Web.HttpApplication.BeginRequest SLOW
그냥 알려 :
서버 데이터베이스는 CPU 사용의 평균 30 %에 응용 프로그램 서버는 CPU 사용의 평균 60 %에 있습니다.
두 개의 동일한 구성을 가진 서버. 기본 구성 :
- 8CPUs
- 30기가바이트 메모리 램
- 윈도우 서버 2008 R2
우리는 시스템에게 NewRelic 24 시간을 모니터링 할 수 있습니다. 그리고 큰 문제 : NewRelic은 항상 "System.Web.HttpApplication.BeginRequest()"으로 인한 속도 저하를 지적합니다. 문제는 그 두 번째 이미지에서
, 우리는 볼 수 있습니다 : " 응용 프로그램 코드 (System.Web.HttpApplication.BeginRequest())"내가 검색 인터넷에서 많은 것을 발견했으며 아마도 "sessionState"와 관련이 있음을 발견했습니다. 나는 "StateServer"라는 8 개의 응용 프로그램을 모두 사용합니다. (그 이유는 "은 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