ntoskrnl.exe!_misaligned_access consome muita CPU quando ocioso

ntoskrnl.exe!_misaligned_access consome muita CPU quando ocioso

Por favor, informe o que pode estar causando o uso desnecessário da CPU descrito abaixo.

Sintomas:

  • Quando o computador fica ocioso, um processo do sistema começa a consumir cerca de 30% da CPU. Se alguma tecla for pressionada ou o mouse for movido, isso para em um segundo. Isto é irritante, já que este é um notebook bastante fino e o resfriamento não foi projetado para alto uso sustentado da CPU e fica barulhento.
  • Não acontece quando está na bateria.
  • Não parece estar relacionado a antivírus ou indexação, pois possuem processos facilmente distinguíveis.

O que descobri até agora:

  • O processo éSistema, o PID é sempre 4, a descrição éKernel e sistema NT.
  • Ao examinar esse processo comHacker de processos(clique com o botão direito/propriedades, depois na guia Threads), acontece que há um thread nele chamado ntoskrnl.exe!_misaligned_access+0x3f0que é responsável por todo esse uso desnecessário da CPU. O mesmo pode ser encontrado com outros aplicativos exploradores de processos. O endereço no nome do processo muda a cada reinicialização, mas permanece o mesmo entre elas.

    • Na verdade, existem vários threads com essas propriedades, mas sempre os mesmos utilizam a CPU (mesmo PID).
    • Clique com o botão direito e inspecione para obter esta pilha para este tópico

      0, ntoskrnl.exe!KeIsAttachedProcess+0x92e

      1, ntoskrnl.exe!KeWaitForMultipleObjects+0x140f

      2, ntoskrnl.exe!KeWaitForMultipleObjects+0xcb9

      3, ntoskrnl.exe!_misaligned_access+0x5fd

      4, ntoskrnl.exe!RtlGetCompressionWorkSpaceSize+0x1f0

      5, ntoskrnl.exe!KeSynchronizeExecution+0x59d6

  • Há uma guia Handles na janela de propriedades do mesmo processo. Existe esta linha, que pode estar conectada ao thread acima, já que o identificador é o mesmo que o endereço no thread com comportamento incorreto:

    • Tipo: SymbolicLink, Nome: \GLOBAL??\USB#VID_8087&PID_8000#5&47f868&0&1#{f18a0e88-c30c-11d0-8815-00a0c906bed8}, Alça: 0x3f0
  • Procurei o dispositivo (VID 8087 e PID 8000) no gerenciador de dispositivos e é o Intel Generic USB Hub

  • Não tenho mais ideia do que procurar.

Detalhes do ambiente:

  • Dell E7440, comalgunsdas toneladas de software da Dell instaladas. Eu sei que o problema pode ser a falta de algum componente/driver, mas ainda não quero instalar todos os itens listados possíveis. O gerenciador de dispositivos não mostra nenhum dispositivo sem drivers.
  • Windows 8.1 Enterprise 64 bits, não hackeado, com todas as atualizações possíveis. Instalado há cerca de um mês a partir da iso oficial, não há muita porcaria instalada nele, nenhum erro ou BSODs desde então.
  • Sem antivírus, além do Security Essentials integrado ao Windows.

Responder1

O uso da CPU ocorre por design. Vem da função ntoskrnl.exe!RtlScrubMemory/ ntoskrnl.exe!RtlpGenericRandomPatternWorker/ ntoskrnl.exe!RtlpTestMemoryRandomUp.

insira a descrição da imagem aqui

Esta função grava padrões aleatórios na RAM para testar erros na RAM. O Windows faz isso durante a tarefa de manutenção ociosa para otimizar o Windows (limpeza do WinSxS, otimização de arquivos .net com ngen)

Execute o Agendador de Tarefas, vá para Microsoft -> Windows -> Agendador de Tarefas, selecione Idle Maintenance,

insira a descrição da imagem aqui

clique com o botão direito e selecione disable.

insira a descrição da imagem aqui

Responder2

Infelizmente eu não tinha essa configuração no Agendador de tarefas, então não tinha nada para desabilitar. (Estou no Windows 10 b1607)

Mas o que realmente ajudou foi adicionar um valor DWORDManutenção desativada com valor1para esta chave:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenance

Depois disso, meu uso ocioso da CPU parou de ser alto.

Você pode ver mais detalhes aqui: https://www.tenforums.com/tutorials/40119-enable-disable-automatic-maintenance-windows-10-a.html

informação relacionada