Meu computador está demorando muito tempo para desligar.
Como posso identificar o culpado? Não quero esperar minutos para o meu computador desligar ...
Existe um programa que eu possa usar para rastrear quanto tempo leva para desligar?
windows
performance
shutdown
wizlog
fonte
fonte
Respostas:
O Windows fornece contadores de desempenho , bem como rastreamento de eventos, que permite que os aplicativos analisem o desempenho, para que se possa identificar a causa dos problemas de desempenho. Entre os que existem, existe um excelente kit de ferramentas: o Windows Performance Toolkit disponível no Windows SDK .
Neste kit de ferramentas você encontrará
xbootmgr.exe
, destinado à Análise de Desempenho de Transição On / Off do Windows .Embora o documento vinculado acima entre em todos os detalhes de cada transição liga / desliga, aqui está a idéia geral sobre como rastrear e analisar a transição de desligamento usando
xbootmgr
e a GUI do xperf:Baixe o Windows SDK e instale o Windows Performance Toolkit usando-o.
Abra um prompt de comando como administrador e execute:
Se você quiser ajuda no futuro, poderá digitar
xbootmgr -help
tambémxperf /?
.Faça um rastreamento de reinicialização como este:
Após a inicialização, ele gerará um rastreio em dois minutos.
O rastreio foi salvo
%ProgramFiles%\Microsoft Windows Performance Toolkit
, você pode arrastá-loxperf.exe
e será aberto em uma GUI.Você verá uma GUI com gráficos diferentes. A seta no lado esquerdo permite adicionar / remover gráficos.
Olhe para os gráficos e veja se você consegue identificar algo fora do comum, pode selecionar um intervalo e aumentar o zoom, se quiser. Clique com o botão direito e descompacte quando quiser ver o todo.
Para cada gráfico, você pode clicar com o botão direito do mouse para obter tabelas de resumo para o intervalo atualmente selecionado .
Nestas tabelas, classifique por peso ou tempo para descobrir para o qual está gastando mais. Observe que você pode arrastar as colunas; portanto, a tabela de E / S permite verificar o processo de uso mais alto e o caminho de uso mais alto.
O divisor (uma coluna de cabeçalho amarela) faz com que as colunas à direita mostrem o total das colunas restantes. Portanto, se você tiver o Path primeiro e depois o Process, poderá abrir a árvore de um arquivo para ver quais processos o acessaram e obter os totais dessa combinação de processo / arquivo.
Você pode encontrar mais informações sobre como os gráficos e tabelas funcionam aqui .
Se você precisar, de alguma forma, descer para examinar os rastreamentos da pilha; faça outro rastreio de inicialização e inclua o
-stackWalk profile
parâmetro, defina _NT_SYMBOL_PATH e clique com o botão direito do mouse em qualquer gráfico e ative "Load Symbols". Isso permitirá que você verifique quais funções estão realmente chamando; em geral, você não precisará disso para um desligamento; mas pode permitir coisas como descobrir que seu firewall está interferindo no seu depurador como programador. Muito bacana ...Boa sorte, espero que você possa encontrar o culpado. Caso contrário, abandone o rastreamento e daremos uma olhada em você ...
Observe que os DPCs são chamadas de procedimento adiado e interrupções são interrupções de software , ambas relacionadas a drivers / hardware.
fonte
Meus desligamentos demoravam muito tempo a correr. O que se segue é o meu exemplo com a resposta de Tom .
O primeiro gráfico mostra o problema, Disk I / O :
Meu desligamento está demorando mais de um minuto e é tudo E / S do disco rígido.
O próximo gráfico, Utilização de disco , mostra que uma unidade está quase no máximo com 100% de uso:
O gráfico final mostra a utilização do disco por processo :
Filtrando para baixo, percebo que tudo é causado por
WinInit.exe
:Ao clicar com o botão direito do mouse em qualquer um dos gráficos do disco rígido e selecionar Tabela de resumo , posso obter os detalhes de quais arquivos foram acessados por qual processo:
56,4 segundos do meu desligamento foram gastos
WinInit
escrevendo 6,7 GB paraC:\hiberfil.sys
.Mas a pergunta é por que o Windows está gravando no meu arquivo de hibernação no desligamento ?
Lembrei-me de uma opção que havia ativado para limpar esse arquivo de paginação no desligamento:
Desativei a opção e execute
xbootmgr
novamente. Agora meu desligamento é de 22 segundos:Agora,
9s
o22s
desligamento é gastoSystem
gravando em algumunknown
arquivo. Isso pode ser digno de mais investigação.Mas por enquanto resolvi meu minuto e meio de desligamento.
fui mais longe e resolvi meu desligamento lento de 22 anos. De t =
12s
até t =21s
mostrou 100% de utilização de disco , mas zero de E / S de disco . Foi desconcertante.Até que durante um desligamento ouvi o som familiar de uma das minhas unidades girando. O desligamento foi interrompido por 9 segundos porque o Windows estava tentando acessar um disco que havia adormecido. Nove segundos depois, a unidade responde e um momento depois a máquina foi desligada.
Irônico que o Windows ative um disco para dizer que é hora de dormir.
Isso tornaria meu desligamento real em 13,5 segundos. Isso pode valer mais investigação. Mas, por enquanto, resolvi meu desligamento de 22 segundos.
fonte