w3wp pendurado - possíveis threads bloqueados? Tentando depurar com WinDbg

w3wp pendurado - possíveis threads bloqueados? Tentando depurar com WinDbg

Tenho tido problemas na semana passada, onde um dos meus aplicativos da web em execução no IIS fica travado em horários aleatórios, pelo menos uma vez por dia. Preciso reciclar o pool de aplicativos para trazê-lo de volta à vida. CPU e memória parecem normais.

Quando olho para os threads ativos na seção de processos de trabalho no gerenciador do IIS, posso ver os threads se acumulando como se estivessem presos, quando ele trava, há cerca de 25 ou mais threads lá, quando executado ok, há 3-6 em qualquer ponto .

Suponho que isso pode ser devido a uma alteração de código em meu aplicativo da web C #, mas não consigo descobrir onde/o que é, pelo que me lembro, foram feitas apenas algumas pequenas alterações.

Na última semana, realmente tentei diagnosticar com várias ferramentas, como WinDbg e dotTrace, para ver se consigo rastrear algo óbvio, mas estou um pouco confuso neste momento.

Posso ver que há muitos threads com erros de tempo limite conectando-se ao meu banco de dados NoSql (RavenDb), no entanto, acho que isso é uma pista falsa e se deve aos threads que estão sendo bloqueados no IIS, pois posso me conectar ao mesmo banco de dados de outro aplicativo IIS muito bem, bem como usar as ferramentas de gerenciamento de banco de dados para gerenciar/consultar o banco de dados.

Tenho mini dumps e instantâneos dotTrace para brincar.

Aqui estão os resultados de "~*e !clrstack" no WinDbg: https://gist.github.com/phinett/7901d82fa526696d3c92

Alguma ajuda/ideia sobre o que devo procurar para rastrear o culpado? Fico feliz em fornecer acesso a minidespejos, se necessário.

Obrigado!

Responder1

Provavelmente muito mais simples e rápido começar com a atualização 1 do DebugDiag v2 e forçar um despejo do processo e, em seguida, executar a análise de travamento.

informação relacionada