Como posso diagnosticar o IIS empurrando a CPU para 100% de uso?

1

Eu tenho um servidor web com mais de alguns sites ASP.NET rodando nele. De vez em quando, noto que o IIS está empurrando a CPU do servidor para 100%. Os sites compartilham pools de aplicativos, por versão .NET que estão sendo executados.

O que estou procurando é uma maneira de identificar qual site está fazendo isso, usando alguma ferramenta. Se essa ferramenta se encaixasse no código para mostrá-la, isso também seria bom. Se não, fico feliz em saber qual site está causando o problema.

Eu já tentei usar o ANTS. No entanto, com o ANTS, você precisa saber qual site é e, em seguida, executá-lo e aguardar esse aplicativo da web com falha de CPU. Não é perfeitamente ideal.

Alguma experiência / ideias?

    
por Micah 15.11.2010 / 22:58

3 respostas

3

Algumas pessoas consideram uma boa prática, criar um pool de aplicativos por site / aplicativo para que, quando você precisar reiniciar um site, isso não afete os outros. Da mesma forma, ele criará um novo w3p.exe de processo de trabalho do IIS por site e, ao fazê-lo, acredito que você possa monitorar com mais facilidade cada um de meus sites estava atingindo a CPU.

Em seguida, para observar em detalhes o uso da CPU, você pode, por exemplo, usar o Process Explorer do link da Miscrosft Sysinternal que é uma ótima ferramenta gratuita na qual você pode reunir as informações que está procurando.

Espero que minha dica ajude de alguma forma a solucionar o problema do IIS.

    
por 15.11.2010 / 23:06
3

Eu respondi exatamente a mesma pergunta aqui: Spikes da CPU do IIS6

Abaixo está o texto da minha resposta:

Quantos pools de aplicativos? Você pode começar movendo seus sites para pools de aplicativos separados e, em seguida, usando o gerenciador de tarefas + linha de comando iisapp para corresponder ao pool de aplicativos que corresponde a qual tarefa. Isso ajudará você a identificar com qual Web começar.

Uma vez que você tenha identificado, pegue a ferramenta de depuração do Microsoft IIS: link

Então:

Usando o IIS Debug Diagnostics para solucionar problemas de uso da CPU do processo de trabalho no II6

O rastreamento de solicitações com falha no IIS7 pode ajudar a rastrear muitos problemas de desempenho em sites, mas ainda temos uma ampla base de clientes no IIS6. A solução de problemas de desempenho no IIS6 tem sido bastante difícil até que a Microsoft lançou um conjunto de ferramentas que forneceu mais informações sobre a análise de um rastreamento de pilha.

A Ferramenta de Diagnóstico de Depuração do IIS pode ajudar a rastrear problemas de CPU e memória de um processo de trabalho. A Microsoft tem um bom artigo do kb que também aborda o básico: link .

  1. Instale o Diagnóstico de Depuração do IIS localmente no sistema.

  2. Abra a Ferramenta de Diagnóstico de Depuração em Iniciar > Programas > Diagnóstico do IIS > Ferramenta de Diagnóstico de Depuração > Ferramenta de Diagnóstico de Depuração.

  3. Clique em Ferramentas > Opções e configurações > Log de desempenho. Selecione a opção Ativar log de dados do contador de desempenho. Clique em OK.

  4. Use o gerenciador de tarefas para localizar o PID do processo de trabalho.

  5. Selecione a guia Processos e encontre o processo na lista.

  6. Clique com o botão direito do mouse no processo e selecione Create Full Userdump. Isso levará alguns minutos e uma caixa será exibida, fornecendo o caminho para o arquivo de despejo.

  7. Selecione a guia Análise avançada e clique no botão Adicionar arquivos de dados. Navegue até o arquivo de despejo criado por salto e clique em OK.

  8. Selecione Analisadores de falhas / interrupções na caixa Scripts de análise disponíveis para Desempenho da CPU e análise de falhas. Clique em Iniciar Análise.

Após alguns minutos, um relatório deve ser gerado contendo informações de rastreamento de pilha, bem como informações sobre quaisquer solicitações em execução por mais de 90 segundos. Observe que o despejo de memória com o uso de algumas centenas de megabytes de espaço, portanto, certifique-se de instalar a ferramenta em uma unidade com espaço de depuração suficiente. Além disso, se a caixa estiver sob carga pesada, você poderá criar o despejo do usuário no sistema, copiar o arquivo para sua estação de trabalho e executar a análise localmente.

    
por 16.11.2010 / 04:50
0

Existe uma maneira muito simples para isso, pelo menos no IIS8, não sei se isso existia no IIS6. De qualquer forma, acho que é útil.

  • Você vai para o IIS
  • Selecione seu servidor à esquerda
  • clique em Processos de trabalho de ícone
  • veja CPU / memória por aplicativo

    
por 19.11.2014 / 12:02