2016-07-01 10 views
2

MVC 및 EntityFramework 추가 기능과 함께 StackExchange.MiniProfiler을 사용하여 웹 사이트에서 한 유형의 요청에 대해 안정적으로 발생하는 긴 TTFB를 추적합니다. 하단의 이미지에서 볼 수 있듯이이 요청에 표시된 기간은 504.3ms입니다. 나는 이것이 BeginRequest에있는 MiniProfiler.Start에 대한 호출과 MiniProfiler.End에 대한 호출과 EndRequest (아이들 단계의 시간을 뺀) 사이의 시간에 해당한다고 생각합니다. 브라우저 도구를 사용하면이 요청에 대한 TTFB가 MiniProfiler의 데이터와 일치한다는 것을 알 수 있으므로 MiniProfiler가 정확하다고 생각합니다. 나는 점점 더 많은 코드 주위에 프로파일 러 단계를 추가하고 있으며 모든 것이 현재 래핑되었다고 생각하지만, 504ms 근처에 어떤 것도 추가하지는 않습니다.MiniProfiler 및 Azure가 TTFB에 대해 설명되지 않음

이 요청은 다른 요청이 동시에 발생하는 페이지에서 발생하는 ajax 요청입니다. 내가 URL을 빼내어 같은 브라우저에서 고립 시키면 기간과 TTFB는 ~ 100ms에 불과합니다. 이것은 다른 요청 중 하나가이 요청을 차단하고 있음을 암시하는 것처럼 보일 수 있지만, 차단해야하는 항목이 전혀 없다고 생각합니다. 다른 요청은 그만큼 오래 걸리지 않습니다.

사이트가 중간 수준의 Azure App Service로 실행 중이며, 여기에 제한이 될 수 있습니까? 어떻게 그것을 확인하거나 부정 할 수 있습니까? 여기에 더 많은 데이터를 노출시킬 수있는 MiniProfiler 트릭이 있습니까?

MiniProfiler Output

+1

시간 오프셋 데이터와 비슷합니까? 즉 "more columns"보기와 "from start"열은 무엇입니까? –

+0

아하, 바로 그게 도움이되는 이유를 알았어, 고마워! – jackmott

+0

더 많은 열과 관련없는 단계로 이미지를 업데이트했습니다. 지연이'Application_PostAuthenticateRequest'와'FormsAuthSessionEnforcement.OnAcquire' 사이의 어딘가에있는 것처럼 보입니다. 수명주기에 대해 공부할 때가 있습니다. – jackmott

답변

0

문제가이 관련되었다 그래서 여기에 질문 : I just discovered why all ASP.Net websites are slow, and I am trying to work out what to do about it

세션 상태가 잠겨 얻을, 당신은 하나의 브라우저/세션 동시 요청의 무리가 있다면, 그들은 모두 끝낼 수 있습니다 서로 기다리고있어. 우리의 관련 컨트롤러 중 일부를 속성으로 읽기 전용으로 지정하면 모두 나쁜 상태가됩니다. [SessionState(SessionStateBehavior.ReadOnly)]