Como analiso o uso excessivo da CPU no modo kernel do Windows?

8

Minha máquina Windows XP recentemente começou a congelar semi- em mim a cada reinicialização ímpar após alguns minutos de uso (programas diferentes / nenhum programa adicional inicia).


Atualização: Agora consegui obter um pouco mais de detalhes com o Process Explorer. Esta é uma CPU de 2 núcleos e o uso 100% do kernel é apenas em um núcleo. A lista de processos mostra DPCs - chamadas de procedimento diferido em 50% (100% em um núcleo). Então a pergunta é agora: ** O que é DPC e como corrigi-los?


Próxima atualização : OKIES ... usando isso e que eu consegui executar o xperf no meu Windows XP, e os exemplos de dump que eu exibi muito bem no meu laptop Win7. Sim, você precisa de um computador Win7 / Vista para visualizar os dumps feitos no Windows XP. No entanto , agora estou enfrentando o seguinte problema, eu posso permitir XPerf rastreamento , xperf -on Latencyeo problema agora também reoccurred enquanto XPerf traçado estava ligado, mas assim que meu DPC vai para 100%, o Windows não iniciar quaisquer novos processos (ou a sua inicialização nunca termina) (uma janela aberta, por exemplo, cmd, permanece responsiva muito bem , mas todo exe que você tenta chamar apenas trava (dirfunciona muito bem porque esse é um comando cmd) - Só posso assumir que CreateProcesstrava com alguma parte do kernel). Agora, não poder iniciar nenhum novo processo significa que não posso executar xperf -d dumpfile.etl, porque , quando o insiro na janela do cmd, ele simplesmente trava .

Então parece que estou sem sorte aqui. Prefiro jogar fora toda a plataforma do que começar a desativar manualmente os drivers ... :-)

Outras idéias apreciadas!


Ou seja, enquanto o Windows permaneceu responsivo teoricamente (por exemplo, o Cursor do Mouse se moveu normalmente e eu podia clicar, e o clique acabou sendo reconhecido), as ações tomadas pelo usuário foram respondidas apenas após minutos (literalmente).

Exemplo: pressionar a tecla Num-lock no teclado normalmente alterna o LED Num-lock no teclado. Este também é o caso da minha máquina semi-congelada, mas apenas após um minuto ou dois.

Uma vez, consegui iniciar o Process Explorer e, após alguns minutos, o gráfico de informações do sistema indicava claramente 100% de uso da CPU na linha vermelha (modo kernel) e a linha verde permanecia em zero. Nesse estado, embora o gráfico ainda estivesse atualizado na tela, a máquina não pôde mais ser operada. (Bem, a menos que você esteja disposto a esperar alguns minutos após cada clique.)

Então, agora estou me perguntando qual poderia ser o problema, pois não instalei nada de novo nesta máquina por semanas, certamente não antes de ver esse comportamento. (Às vezes, a reinicialização ajuda, algumas vezes eu preciso de uma segunda ou terceira reinicialização antes que a máquina se torne utilizável por um longo período de tempo.)

Agora, como posso descobrir o que realmente está causando o uso excessivo do modo kernel?


Nota: Também postou isso nos fóruns do sysinternals .

Martin
fonte
Uma maneira seria usar o processo de eliminação. No XP, execute o programa MSCONFIG e vá para a guia INICIALIZAÇÃO e desabilite tudo, reinicie e verifique se isso foi corrigido. Se isso não acontecer, tente um programa como AUTORUNS ou HijackThis e fique mais agressivo com a eliminação. Depois de recuperar as operações, reative as coisas uma de cada vez. 90% da porcaria que é executado no arranque não é nesssiary os outros 10% é junkwares :-)
Psycogeek
@Psycogeek - apreciado. Eu prefiro não fazer isso, como que me levaria dias eu não tenho :-)
Martin
ahh, seus minutos para desativar o lixo eletrônico de inicialização, são dias para desativar os drivers de dispositivo :-) quando tento aprimorar seu problema, usando todo o seu conjunto de pistas, na verdade parece mais algum tipo de vírus. mas poderia ser facilmente algum dispositivo que não está respondendo. Tem algum material preso externamente que você pode remover temporariamente? você executou uma verificação dos discos, como, por exemplo, um teste SMART das unidades. para ver se você tem alguma pista disso?
Psycogeek
Ok, então agora (dpc) vou ter que verificar as coisas aqui: superuser.com/q/202254/50211 e ver se consigo chegar ao fundo disso.
Martin
Qual foi o resultado?
stej

Respostas:

2

Você pode descobrir qual rotina do DPC está causando os congelamentos usando uma ferramenta como LatencyMon ( http://www.resplendence.com/latencymon ). Basta procurar a rotina DPC, demorando mais tempo total.

Zero3
fonte
Claramente, LatencyMon não funciona no Windows XP. E a pergunta é sobre um problema de desempenho no sistema Windows XP.
Edward
Eu não estava ciente disso - obrigado. Minha sugestão ainda é a mesma - basta usar um programa diferente. Um exemplo: DPC Latency Checker ( thesycon.de/deu/latency_check.shtml ).
Zero3
Na verdade, os recursos do LatencyMon são muito melhores / mais fáceis de usar para os usuários finais do que o Latency Checker. O sistema LatencyMon analisa e fornece informações muito detalhadas, até o nível em que driver consome mais recursos, qual deles causa o pior efeito no desempenho do sistema. Por outro lado, o Latency Checker apenas exibe um gráfico que fornece apenas as informações mais básicas. Esse é o seu sistema sem latência DPC ou não. Trabalhos futuros estão por sua conta. Estou com problemas para encontrar uma ferramenta igual / semelhante para o XP, que funciona da mesma maneira que o LatencyMon.
Edward