CPU sendo enviada para 100% por um processo, tentando rastrear e eliminar o problema

1

Estou tendo problemas com a CPU dos servidores da Web que ficou presa em 25%, depois em 50% e, em seguida, em 75%, até que, finalmente, atingisse o limite de 100%. O que estamos adivinhando pode ser algumas consultas SQL um pouco mais lentas, mas não é possível replicar o problema

Tentando chegar ao fundo do problema, começamos a olhar as configurações no IIS (7), nos deparamos com a opção de definir 'processos de servidor web' para mais de 1, pensando que isso poderia liberar e aumentar o processos disponíveis para consultas de usuários, mas assim que o fizemos, ele quebrou nosso aplicativo, o que mais tarde descobrimos que provavelmente ocorre porque usamos sessões, e os processos do servidor web não mantêm sessões do mesmo usuário.

Portanto, a questão é: existe uma configuração que nos permita continuar usando sessões, mas também permitindo vários processos de trabalho?

ou, alguém tem alguma opinião sobre o que poderia estar causando o aumento no uso da CPU?

Agradecemos antecipadamente por qualquer conselho

    
por simon 05.07.2011 / 13:03

2 respostas

1

No Máximo de Processos: Isso é chamado de Web Jardinagem - a menos que seu aplicativo seja sem estado, você não pode fazer isso. Além disso, na maioria dos casos, # processos não melhoram a escalabilidade, porque o Windows agenda threads, não processos.

Para descobrir o que há de errado:

  • Use a exibição Processos de trabalho no nível do servidor no Gerenciador do IIS.

  • Dentro dos Processos de Trabalho, todos os W3WPs serão listados e os aplicativos aos quais pertencem.

  • Você pode então examinar as solicitações em execução em cada processo clicando com o botão direito do mouse nele.

Se isso ainda não for suficiente para diminuir a causa, você precisará usar um profiler de amostragem ou um depurador para determinar o que o aplicativo está tentando fazer. XPERF do Windows Performance Toolkit, ou DebugDiag, ou WinDBG, ou Process Explorer, pode ser usado para ter uma ideia do que está fazendo.

    
por 06.07.2011 / 05:21
0

Tente usar o Process Explorer + Process Monitor da Sysinternals.

O PE permite visualizar a maioria das estatísticas dos processos, bem como a pilha de chamadas de thread. PM irá mostrar-lhe todo o processo, sistema de arquivos, registro & atividade de rede do processo em tempo real.

Se você quiser informações mais detalhadas sobre como usá-los, consulte o site da Sysinternals. Existem vários tutoriais e vídeos destacando seu uso.

    
por 06.07.2011 / 05:47