Como posso investigar 99% do uso da CPU pelo w3wp.exe?

7

w3wp.exe está mostrando 99% de uso da CPU. Quais são as melhores maneiras de investigar a causa desse alto uso da CPU?

    
por HopelessN00b 28.04.2009 / 11:56

5 respostas

6

Anexe o WinDbg + sos e execute !runaway . Isso mostrará qual segmento está demorando mais tempo de CPU. Faça um !clrstack no encadeamento para descobrir o que está fazendo.

    
por 28.04.2009 / 11:59
3

Outra sugestão de ferramentas é DebugDiag, veja mais aqui
[ATUALIZAR] Use ProcDump , veja mais em Usando o ProcDump.exe para monitorar o w3wp.exe para picos de CPU .

    
por 28.04.2009 / 15:59
2

w3wp.exe é o processo de trabalho do ASP.NET, portanto, se estiver usando uma alta porcentagem da CPU do servidor, é o aplicativo ASP.NET que está causando o problema. No entanto, isso não necessariamente indica que há um problema com o aplicativo ASP.NET. Pode estar atendendo a muitos pedidos com recursos limitados. A única medida real é verificar o uso da CPU em relação à quantidade de tráfego que está sendo manipulada pelo aplicativo.

Se você suspeitar que uma determinada solicitação demore demais, poderá usar o utilitário de linha de comando Logparser para analisar seus arquivos de log e descobrir qual página tem um longo tempo de execução.

c:\>logparser "select top 10 cs-uri-stem, time-taken from INSERT_YOUR_IIS_LOG_FILE_NAME.log group by cs-uri-stem order by time-taken desc" -q:on

Você também pode usar uma ferramenta para mostrar quais páginas estão em execução no momento, como IISPeek (não gratuito).

Se você quiser ir mais fundo, tente entender como usar o WinDbg. Aqui está um bom tutorial: Depuradores do Windows: Parte 1: Um tutorial do WinDbg

    
por 28.04.2009 / 13:59
0

Eu tive esse problema intermitentemente antes. Parece aumentar para 99% após o primeiro pedido e nunca desce. Se eu matar o processo, o novo processo de trabalho geralmente se comportará corretamente. Eu nunca descobri porque isso acontece.

    
por 28.04.2009 / 15:30
0

Estamos tendo o mesmo problema que Greg mencionou acima. Estamos apenas matando esses processos. Não observou isso no IIS6 / windows server 2003, apenas no IIS7 / windows server 2008.

    
por 30.08.2009 / 15:41

Tags