w3wp 중단 - 스레드가 차단될 수 있습니까? WinDbg로 디버깅을 시도 중입니다.

w3wp 중단 - 스레드가 차단될 수 있습니까? WinDbg로 디버깅을 시도 중입니다.

저는 지난 주 동안 IIS에서 실행되는 웹 앱 중 하나가 하루에 한 번 이상 무작위로 중단되는 문제를 겪었습니다. 다시 활성화하려면 앱 풀을 재활용해야 합니다. CPU와 메모리는 정상인 것 같습니다.

IIS 관리자의 작업자 프로세스 섹션에 있는 활성 스레드를 보면 스레드가 멈춘 것처럼 쌓이는 것을 볼 수 있습니다. 중단되면 약 25개 이상의 스레드가 있고 ok를 실행하면 어느 한 지점에 3-6개가 있습니다. .

내 C# 웹 앱의 코드 변경 때문일 수 있다고 추측하지만 그것이 어디에 있는지, 무엇인지 알 수 없으며 기억할 수 있는 것 중 몇 가지 사소한 변경 사항만 있었습니다.

지난 주에 나는 WinDbg 및 dotTrace와 같은 여러 도구를 사용하여 명백한 것을 추적할 수 있는지 확인하기 위해 열심히 진단하려고 노력했지만 지금은 약간 오버했습니다.

내 NoSql 데이터베이스(RavenDb)에 연결하는 데 시간 초과 오류가 있는 스레드가 많이 있는 것을 볼 수 있습니다. 그러나 이것은 빨간 청어이며 다른 IIS 앱에서 동일한 데이터베이스에 연결할 수 있으므로 IIS에서 스레드가 차단된 것으로 생각됩니다. 괜찮습니다. 데이터베이스 관리 도구를 사용하여 데이터베이스를 관리/쿼리하세요.

가지고 놀 수 있는 미니 덤프와 dotTrace 스냅샷이 있습니다.

다음은 WinDbg의 "~*e !clrstack" 결과입니다. https://gist.github.com/phinett/7901d82fa526696d3c92

범인을 추적하기 위해 찾아야 할 사항에 대한 도움이나 아이디어가 있습니까? 필요한 경우 미니 덤프에 대한 액세스를 제공하게 되어 기쁘게 생각합니다.

감사합니다!

답변1

아마도 DebugDiag v2 업데이트 1로 시작하여 프로세스 덤프를 강제 실행한 다음 중단 분석을 실행하는 것이 훨씬 더 간단하고 빠를 것입니다.

관련 정보