terça-feira, 23 de março de 2010

Como descobrir o processo responsável por determinado pool de aplicativos neste exato momento?

Cenário:
Sistema Operacional da família Windows 2003, IIS 6, você dividiu os diretórios virtuais em Pools de aplicação diferentes. Você percebeu que um dos "worker processes" (w3wp.exe) está consumindo memória demais, ou seja, tem alguma coisa errada em um dos projetos.

Descobrindo quem é o culpado:
Qual é o pool que está crescendo tanto? Qual diretório virtual? Você só sabe o nome do processo e todos os processos têm o mesmo nome! Ok. Neste caso você vai até o IIS e olha qual é o processo pelo PID(Process ID), o qual você verificou no "Task Manager", pedindo para exibir a coluna PID, não é verdade? Não, não é verdade, simplesmente porque não tem onde olhar isso lá dentro! Bom, pelo menos eu não achei...
Até que apareceu o incrível script IISAPP.vbs, ele estava lá o tempo todo só me esperando e eu não o vi!!!

Vá ao Prompt do DOS e digite IISAPP. Ele vai retornar o ID do processo e o nome do Pool. Para descobrir as outras variações do comando digite IISAPP /?.

Mais detalhes sobre o IISAPP.

Fonte: Cleydson Silva
http://pontonetpt.com/blogs/cleydson/archive/2006/09/07/P8961.aspx


******************************************

O ideal seria você criar uma app pool para cada site e através do comando iisapp verificar o PID de cada uma e verificar no task manager ou no log do PerfMon o seu consumo de memória.

Dessa forma será mais fácil tirar um dump do processo em questão, pois o dump será menor.

Recomendo que você verifique os seguintes artigos:

"Quick things to check when you experience high memory levels in ASP.NET"
http://support.microsoft.com/kb/893660

"How to use the Debug Diagnostics Tool to troubleshoot high CPU usage by a process in IIS"
http://support.microsoft.com/kb/919791

"Debug Diagnostic Tool v1.1"
http://www.microsoft.com/downloads/details.aspx?familyid=28bd5941-c458-46f1-b24d-f60151d875a3&displaylang=en

"IISSTATE"
http://www.iisfaq.com/default.aspx?view=P197

Fonte: MSDN - Rafael Fagundes
http://social.msdn.microsoft.com/Forums/pt-BR/aspnetpt/thread/49a7390f-5c5d-4c7c-af89-9b6ce1db4b6e

Nenhum comentário: