2014-07-21 1 views
1

CPU 사용량이 내 응용 프로그램 풀의 w3wp 프로세스에 비해 너무 높다는 것을 알았습니다. Google에서 디버그 진단 도구를 사용하여 덤프 및 분석과 관련된 기사를 찾아 냈습니다.w3wp CPU 사용량이 50 %로 고정되어 디버그 진단의 호출 스택 정보가 유용하지 않습니다.

그러나 분석은 "높은 CPU 사용량이 최고 1 실"에서이 호출 스택 나타납니다 :

System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion (IntPtr입니다, System.Web.RequestNotificationStatus하는 ByRef를) System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion (IntPtr입니다, System.Web.RequestNotificationStatus하는 ByRef) 최대한 빨리 응용 프로그램 풀을 다시 시작으로

는 CPU 사용량이 정상으로 돌아 간다. 웹 사이트에서 몇 시간 동안 여러 가지 테스트를 한 후 CPU 사용이 50 %로 돌아 갔음을 확인했습니다. 어떤 시나리오가이 문제를 일으키는 지 잘 모르겠습니다.

이 응용 프로그램은 Windows Server 2008 R2, IIS 7에서 실행되는 .NET 4 Razor 웹 사이트입니다. 여기에서 문제를 식별하기 위해 할 수있는 차선책은 무엇입니까? 몇 가지 조언을 부탁드립니다.

+0

IE에서 F12 개발자 도구를 사용해 보셨나요? 당신은 모양을 가지고 서버에 어떤 요청이 가장 오래 걸리거나 병목 현상을 일으키는 지 확인할 수 있습니다 ... 시작입니다. –

+0

전체 웹 사이트의 속도가 느려집니다. – Jags

답변

2

Process Explorer를 사용하여 의미있는 정보를 얻었습니다.

"Threads"탭을보고, CPU의 45 % 가까이를 소비하는 스레드를 발견하고 스택 정보를 보았을 때 w3wp의 속성으로갔습니다. 그리고 거기에, 내 코드에 암호화 된 문자열 알고리즘이있었습니다! :)

동일한 정보를 준 dotTrace 평가판을 사용하여보다 쉽게 ​​읽을 수있는 방식으로 확인했습니다.

암호화 알고리즘을 변경하고 CPU 스파이크를 모니터링하는 데 며칠 더 걸릴 것입니다.

관련 문제