Para diagnosticar os problemas de uso da CPU, use o ETW (Rastreamento de eventos para Windows) para capturar dados / perfil de amostragem da CPU.
Para capturar os dados, instale o Windows Performance Toolkit , que faz parte do Windows SDK .
O Windows 10 WPT pode ser usado no Windows 8 / Server 2012, Windows 8.1 / Server 2012R2 e Windows 10 / Server 2016. Se você ainda usa o Windows 7, use o SDK / WPT com a Build 15086 .
(todas as outras entradas podem ser desmarcadas)
Agora execute WPRUI.exe
, selecione First Level
, em Recurso, selecione Uso da CPU e clique em Iniciar .

Agora capture 1 minuto do uso da CPU. Após 1 minuto, clique em Salvar .
Agora analise o arquivo ETL gerado com o Windows Performance Analyzer , arrastando e soltando o CPU Usage (sampled)
gráfico analysis pane
e ordenando as colunas, como você vê na figura:

Dentro do WPA, carregue os símbolos de depuração e expanda Pilha do processo do SISTEMA. Nesta demonstração, o uso da CPU vem do driver nVIDIA.
Na demonstração a seguir, o uso da CPU vem do driver Realtek NIC:

Quando você vê chamadas como ntoskrnl.exe! Veja KeTrimWorkerThreadRoutine, ntoskrnl.exe! Mm Verifier TrimMemory, ntoskrnl.exe! Verificador KeLeaveCriticalRegion , isso significa que você tem o Verificador de Driver ativado. Isso também prejudica muito o desempenho e causa alto uso do SISTEMA. Desative o Verificador de Driver e reinicie.

Nesta demonstração, o driver iai2ce.sys
( driver do controlador Intel Serial IO GPIO) faz com que:

Neste exemplo, o uso da CPU vem do arquivo rtsuvc.sys
que parece ser oRealtek UVC webcam Driver

Esta demonstração mostra que o driver Bitdefender ignis.sys

No exemplo a seguir, o uso da CPU é registrado pelo driver de rede broadcom bcmwl664.sys

Quando você vê ntoskrnl.exe!MiZeroWorkerPages
como causa, é mais complicado. Isso significa que a função do kernel que zera a memória antes que ela possa ser usada novamente causa o alto uso da CPU:

Não existe uma maneira real de detectar qual processo o causa, mas eu sei que o Chrome pode causar isso se você tiver a aceleração de hardware ativada no Chrome. Portanto, se você vir isso e usar o Chrome, desative a aceleração de hardware no Chrome.
Quando você vê esses ntoskrnl.exe! RtlpGenericRandomPatternWorker, ntoskrnl.exe! RtlpTestMemoryRandomUp chamadas

o uso da CPU vem do Kernel para testar problemas de memória (memtest). Esse uso é acionado por meio da tarefa de manutenção ociosa do Windows 8.1 / 10. Você pode usar o Agendador de tarefas para desativar a tarefa ociosa.

No Windows 10, a tarefa é chamada RunFullMemoryDiagnostics em Microsoft> Windows> MemoryDiagnostic> RunFullMemoryDiagnostic .

Nesse caso, o uso da CPU parece vir do Data Deduplication
Feature ( dedup.sys!DdpPostCreate
) do Windows Server:

Nesta demonstração, o uso da CPU é causado pelo driver da placa WIFI athrx.sys

Procure uma atualização de driver se você vir isso.
Na demonstração a seguir, um driver citrix está envolvido:

Entre em contato com sua equipe de TI para saber como resolver problemas da Citrix.
Nesta demonstração, a função usbhub.sys!UsbhPortRecycle
causa o uso da CPU:

Alterar as portas USB2.0 para velocidade 1.1 ou conectar unidades USB a outras portas USB 2.0 ajudaram alguns usuários.
Nesse caso, uma pequena quantidade de uso do SYSTEM vem do driver Acronis tdrpm251.sys
:

Nesta demonstração, o uso da CPU ntoskrnl.exe!KeAcquireSpinLockRaiseToDpc
e ntoskrnl.exe!KeReleaseSpinLock
.

portanto, um driver está usando muito os SpinLocks . Desative alguns dispositivos / drivers até encontrar um que o cause.
Nesse caso, o uso da CPU é causado pelo driver L1C62x64.sys

Este é o qualcomm atheros AR8171/8175 PCI-E gigabit Ethernet
motorista. Portanto, atualize o driver se você o encontrar na pilha.
Aqui, o uso da CPU vem da verificação do arquivo host (netbt.sys! DelayedScanLmHostFile)

verifique se o arquivo hosts não é muito grande para evitar esse uso.
Nesse caso, o uso da CPU é proveniente SRTSP64.SYS
da symantec.

Atualize o produto symantec usado para a versão mais recente.
Aqui, o uso da CPU vem do driver AMD GPU (atikmdag.sys)

se você vir isso, acesse o site da AMD e obtenha o driver mais recente para sua placa AMD.
Aqui, os drivers TMXPFlt.sys e VsapiNt.sys causam o alto uso da CPU.

Pelo que vejo, esses arquivos fazem parte do pacote Trend Micro AV. Atualize a ferramenta ou remova-a.
Neste exemplo, o uso da CPU vem da função ntoskrnl.exe!MmGetPageFileInformation

Esta função obtém informações sobre o arquivo de paginação.
Descrição da rotina: essa rotina retorna informações sobre os arquivos de paginação ativos no momento.
Desative o arquivo de paginação, reinicie e ative-o novamente e veja se isso o corrige. Além disso, a remoção dos serviços Intel (por exemplo, Serviço Intel Content Protection HECI) parece corrigi -lo para um usuário .
Aqui, você pode ver que o driver Netwtw04.sys
( driver Intel Wifi) chama a função flushCompleteAllPendingFlushRequests
e isso causa um alto uso da CPU.

Como os símbolos de depuração são carregados, o driver da caixa de entrada do Windows é usado. Somente aqui podemos obter símbolos de depuração para ver a pilha de chamadas com o nome da função flushCompleteAllPendingFlushRequests
.
Aqui, você deve instalar o driver mais recente da Intel para corrigi-lo.
O caso mais complicado do uso do SYSTEM é o uso do ACPI.sys no callstack:
Line #, DPC/ISR, Module, Stack, Count, Process, Weight (in view) (ms), TimeStamp (s), % Weight
6, , , | |- ACPI.sys!ACPIWorkerThread, 40246, , 39.992,941063, , 4,13
7, , , | | ACPI.sys!RestartCtxtPassive, 40246, , 39.992,941063, , 4,13
8, , , | | ACPI.sys!InsertReadyQueue, 40246, , 39.992,941063, , 4,13
9, , , | | ACPI.sys!RunContext, 40246, , 39.992,941063, , 4,13
10, , , | | ntoskrnl.exe!KeReleaseSpinLock, 40246, , 39.992,941063, , 4,13
11, , , | | ntoskrnl.exe!KiDpcInterrupt, 40246, , 39.992,941063, , 4,13
12, , , | | ntoskrnl.exe!KiDispatchInterruptContinue, 40246, , 39.992,941063, , 4,13
13, , , | | ntoskrnl.exe!KxRetireDpcList, 40246, , 39.992,941063, , 4,13
14, , , | | ntoskrnl.exe!KiRetireDpcList, 40246, , 39.992,941063, , 4,13
15, , , | | |- ntoskrnl.exe!KiExecuteAllDpcs, 40198, , 39.945,173325, , 4,13
16, , , | | | |- ACPI.sys!ACPIInterruptDispatchEventDpc, 27565, , 27.408,930428, , 2,83
17, , , | | | | |- ACPI.sys!ACPIGpeEnableDisableEvents, 24525, , 24.384,921620, , 2,52
18, , , | | | | | ACPI.sys!ACPIWriteGpeEnableRegister, 24525, , 24.384,921620, , 2,52
19, , , | | | | | |- hal.dll!HalpAcpiPmRegisterWrite, 24421, , 24.281,015516, , 2,51
20, , , | | | | | | |- hal.dll!HalpAcpiPmRegisterWritePort, 24166, , 24.027,316013, , 2,48
isso é extremamente difícil de depurar. Em um tópico sysinternals , listei alguns conselhos:
- verifique se a CPU não superaquece devido a poeira no ventilador da CPU
- atualizar ou atualizar novamente o (mesmo) BIOS / UEFI
- carregar configurações padrão de BIOS / UEFI
- verifique se a bateria não está danificada, remova a bateria do notebook ou desative a bateria no gerenciador de dispositivos.
- mude o jumper no HDD caddy se você substituiu o DVD / Blue-Ray Drive por um Caddy para instalar um SSD próximo ao seu HDD antigo

Na demonstração a seguir, o driver Intel HD igdkmd64.sys
na versão .4574 para o Intel HD 630 causa o problema:

A solução é atualizar para o driver com a versão de pelo menos 0,4590.
No caso a seguir, o uso da CPU do processo SYSTEM é causado pelo driver stdriverx64.sys

Este parece ser um driver de streaming de áudio . Portanto, atualize este software / driver se você vir isso no WPA.
Se você risdxc64.sys
vir um driver chamado na pilha de chamadas do SYSTEM que causa o alto uso da CPU, atualize o driver Ricoh PCIe SDXC / MMC Host Controller ou desative o leitor de cartão SD no gerenciador de dispositivos se nenhuma atualização do driver o corrigir.

Esse leitor de cartão SD parece estar embutido em muitos dispositivos Lenovo.
O usuário @stevemidgley mostrou um novo problema de maior uso da CPU com Wdf01000.sys!FxSystemWorkItem::_WorkItemThunk

Aqui você pode ver um driver UDE.sys causando-o.
No hub de símbolo

Eu posso ver que ele pertence ao driver do modem e aos dados PNP dos programas de rastreamento Fibocom L850-GL
(modem LTE) como possível dispositivo:

E a solução é desativar o modem e o dispositivo composto USB no gerenciador de dispositivos.