CPU alta do ntoskrnl.exe durante a inatividade no GetStackLimits

3

Estou tendo um bug estranho no Windows 10.

Após 5 minutos de inatividade, meu cpu fica alto. Eu usei o Win Performance Analyzer e descobri que isso acontece dentro do ntoskrnl.exe no thread GetStackLimits.

Atualizei todos os drivers e tudo está funcional. As tarefas inativas são todas desativadas e excluídas. Eu também executei sfc / scannow e chkdsk sem erros.

Como devo encontrar o erro quando ele está dentro do kernel?!

    
por Martin Jensen 01.09.2015 / 01:42

3 respostas

2

Encontrei a resposta para o meu problema há muito tempo, mas esqueci de adicioná-la aqui.

Era a funcionalidade de manutenção no Windows 10 chamada:

RunFullMemoryDiagnostic

Encontrado em:

\ Microsoft \ Windows \ MemoryDiagnostic

Depois de desabilitar isso, minhas tarefas de manutenção podem ser concluídas, em vez de apenas usar a CPU nessa tarefa.

Eu não tenho problemas de memória ou BSODs ultimamente, mas tenho 32 GB de memória, o que pode desempenhar um papel para que essa tarefa seja concluída.

Eu fiz isso por algumas horas, mas nunca terminei, então estou muito melhor sem ele.

Obrigado pela ajuda!

    
por 28.06.2018 / 13:11
0
Infelizmente, não sei se esse comportamento pára quando as condições ociosas desaparecem, mas é normal que o mpengine (material AV da Microsoft) execute a ferramenta MRT e faça a varredura como um louco, o que resulta em alto uso da CPU por algum tempo (que a ferramenta precisa executar suas varreduras), após um pequeno período de inatividade quando um usuário está logado.

Se o uso da CPU voltar ao normal depois de fazer algo como mover o mouse ou tocar em uma tecla, provavelmente é isso que está acontecendo.

Acho isso mais fácil de ver com o Process Explorer.

Se a atividade permanecer alta quando as condições ociosas cessarem, é outra coisa.

    
por 19.09.2015 / 20:58
0

Martin, no meu caso, foi causada pela habilitação do Hyper-V (antes de atualizar do Windows 8.1 para 10) e provavelmente por conexões de rede em ponte que não eram compatíveis com o controle Realtek PCIe GBE Family (Ethernet) sistema desktop que originalmente tinha o Windows 8.0 instalado. A única razão pela qual eu estava usando o Hyper-V foi para o desenvolvimento do Windows Phone 8. Eu não uso isso há anos, mas a rede estava funcionando com conexões em ponte e nunca consegui fazê-lo funcionar sem a ponte. Eu não sei nada sobre como configurar isso. O instalador do Visual Studio fez toda a configuração da rede virtual e do Hyper-V.

Para corrigir o problema, eu simplesmente removi o Hyper-V na caixa de diálogo "Ativar ou desativar recursos do Windows" e isso removeu automaticamente as conexões de ponte. Então passei algumas horas fazendo minha conexão ethernet direta funcionar novamente. Os diagnósticos não ajudaram nisso. Eu finalmente recorri ao velho truque de trocar a porta de conexão usada no roteador por outra (de quatro) e o Windows poderia finalmente ver os outros computadores na minha rede doméstica novamente.

Para ajudar a diagnosticar o problema, usei a configuração xperf cmd do MagicAndre1981 para gerar um etl. (Veja Instale o WPT .) Em seguida, abri esse arquivo no "Windows Performance Analyzer" e adicionei a coluna "Stack" como no exemplo de MagicAndre1981. Os nomes dos módulos sob a raiz do sistema me deram a pista de que poderia ser o Hyper-V como eu suspeitava o tempo todo.

    
por 19.09.2015 / 20:36