procdump no w3wp.exe: apenas parte de uma solicitação ReadProcessMemory ou WriteProcessMemory foi concluída

2

Estou tendo um problema com um aplicativo do IIS que ocasionalmente aumenta o uso da CPU e estou tentando usar procdump para obter um despejo de memória para exame. Estou executando "procdump.exe -64 -mA 9999" onde 9999 é o pid do processo. Mas toda vez que faço isso, recebo um erro:

Only part of a ReadProcessMemory or WriteProcessMemory request was completed.

Fazer isso também recicla o apppool, aliviando o pico da CPU, por isso não posso continuar tentando até acertar.

Alguém sabe o que está errado?

EDITAR MAIS INFORMAÇÕES: Até agora eu não consegui gerar um despejo de depuração, não importa qual ferramenta eu tente. Todos eles parecem gerar o mesmo tipo de erro. Este é o 2008 R2 Datacenter executando o IIS7 com um site asp.net de 64 bits.

Meu melhor palpite é que algo está sendo bloqueado, fazendo com que algumas solicitações permaneçam abertas no IIS e, gradualmente, usando recursos. Se eu monitorar o processo de trabalho usando o Gerenciador do IIS e visualizar todas as solicitações, ao longo do dia, começarei a ver algumas solicitações que "permanecem" e serão executadas para sempre. Alguns deles são para arquivos estáticos. Alguns são para páginas aspx. Não consigo ver nenhuma razão "comum" para eles.

De vez em quando, o pool de aplicativos começa a usar 100% da CPU e o único remédio é eliminá-lo.

    
por JakeS 02.03.2011 / 02:50

2 respostas

1

Não tenho certeza do que está causando essa mensagem, mas sei que você pode criar um despejo usando o Process Explorer do SysInternals. No Process Explorer, clique com o botão direito do mouse em w3wp.exe e selecione Create Dump > Criar despejo completo. Demorou cerca de 15 segundos no meu servidor Windows 2003 x64 para criar um arquivo de despejo de 350 MB. Isso também não reiniciou o pool de aplicativos no meu servidor.

Outra opção é a ferramenta Debug Diag da Microsoft. Este é o melhor em capturar despejos de processo, com base em muitos critérios diferentes.

link

    
por 02.03.2011 / 06:04
0

Eu tive um problema semelhante, embora para um serviço do Windows. Acabou que meu problema era que era um processo de 32 bits sendo executado em uma máquina de 64 bits, então executar procdump em vez de procdump64 foi a solução para mim.

Já experimentou os dois procdump e procdump64 ?

    
por 05.08.2016 / 13:21