Configure um alerta de desempenho e, na página de ação, execute um programa ou script em lote para gerar o despejo.
vmmap.exe -p w3wp.exe C:\memory.txt
A GUI é bastante útil também.
Estou acompanhando o uso da CPU de uma compilação recente que fiz em nosso servidor Windows 2008 SP2. Aqui está o screenie do gerenciador de tarefas ...
Veja como se destaca? Eu gostaria de descobrir o que está causando isso. Antes de fazer qualquer coisa, acredito que precisarei de um Memory Dump. Atualmente, o processo está em torno da marca de 450MB.
Alguém tem alguma idéia de como eu posso pegar um despejo de memória quando picos sobre .. digamos .. 50%. Pico - > instantâneo. Não tiros multi-snap, apenas um. Eu sei como MANUALMENTE obter um despejo .. mas isso é muito difícil. Eu preciso de uma vez de despejo depois de um gatilho, diga .. cpu > 50%.
Então eu tenho que descobrir como depurá-lo.
Alguma sugestão?
Configure um alerta de desempenho e, na página de ação, execute um programa ou script em lote para gerar o despejo.
vmmap.exe -p w3wp.exe C:\memory.txt
A GUI é bastante útil também.
Você pode pegar um despejo de memória com as Ferramentas de Depuração para Windows.
O script adplus.vbs pode fazer isso a partir da linha de comando, portanto, pode ser adicionado como a tarefa de um alerta em um conjunto de coleta de dados no Monitor de Confiabilidade e Desempenho.
O desafio é identificar o processo em um prazo mais longo, os processos do w3wp.exe normalmente são reciclados em um agendamento e, portanto, é necessário recriar a coleta de dados e os alertas.
Adicional: A SysInternals acaba de lançar uma nova ferramenta de linha de comando: ProcDump, para criar dumps de processo com suporte embutido para janelas suspensas (não-responsivas) e CPU acima de algum tempo. Consulte aqui .
DebugDiag para o IIS pode ser programado para ter um despejo quando o aplicativo tem pendurado (contra certas regras). Se não houver um para uso da CPU (não me lembro do topo da minha cabeça, desculpe), o blog do DebugDiag tem um script VB que será anexado ao Perfmon e permitirá que você acione um dump quando determinados critérios forem atendidos - nesse caso, o uso da CPU poderá acionar um despejo de memória completo do w3wp.
Mais do que você poderia querer saber está contido no whitepaper " Como usar a Ferramenta de diagnóstico de depuração v1.1 (DebugDiag) para depurar processos no modo de usuário ".
Atualização: DebugDiag v2 agora está disponível.
Se você está tentando descobrir o que está usando a CPU, use o Monitor de desempenho do usuário. Monitore o contador de "Processos"% de tempo do processador para todas as instâncias. Você pode apenas observar o gráfico ou configurá-lo para registrar em um arquivo CSV que você pode analisar no Excel.
JR
Depuração:
A depuração nativa de despejos pode ser feita no VS2005 e no VS2008, apenas certifique-se de ter símbolos configurados para usar o servidor de símbolos da MS.
A depuração gerenciada (ASP.NET) pode ser feita no VS2010 (na versão Beta) ou no WinDbg com as extensões SOS.
Veja os seguintes blogs para mais detalhes:
Vários livros foram escritos sobre esse tópico, muito grandes para que esse espaço comece.