Elimina automaticamente o processo do IIS 7 que está pendente

3

Eu tenho um problema intermitente com meu aplicativo. Está sempre sob carga relativamente alta (10-50 req / segundo). Na maioria das vezes corre fantasticamente, com CPU < 10%. Ocasionalmente (cerca de uma vez por semana) subitamente aumenta para 100% a CPU ao longo de cerca de 3 minutos e depois fica lá fazendo com que o servidor pare de responder até que eu mate o w3wp.exe. Eu continuo tentando depurar esse problema. Nesse meio tempo eu preciso de uma solução temporária.

Existe um serviço ou ferramenta que eu possa usar para monitorar o w3wp.exe e automaticamente matar o processo se ele ficar acima de 80% de utilização por um período de tempo?

    
por Joshua 08.08.2010 / 18:24

2 respostas

3

O IIS pode cuidar disso sozinho; você pode configurar um pool de aplicativos para ser reciclado (ou seja, reiniciado) quando o uso da CPU ficar acima de um determinado limite por um determinado período de tempo.

    
por 08.08.2010 / 19:44
1

Eu não sei se você tem outras máquinas em seu ambiente, mas eu sugiro colocar algum monitoramento dentro do Nagios ou Zabbix ou um aplicativo como esse. Eles podem monitorar o uso da CPU / espaço em disco / memória / etc etc ... se o uso da CPU ficar acima de 80% ou 90% por qualquer período que você considerar muito longo, então o sistema de monitoramento pode disparar um trabalho (zabbix é capaz de fazer isso, chamar itens externos) para matar esse pool. Com essa solução, há um pouco de curva de aprendizado. No entanto, você precisaria aprender o aplicativo e escrever um script para reiniciar o pool de aplicativos ... algo como um aplicativo .net ou um script vb que usa o aplicativo do IIS para determinar o pool de aplicativos responsável e, em seguida, uma linha de comando kill nesse processo.

    
por 08.08.2010 / 19:24

Tags