Per diagnosticare i problemi di utilizzo della CPU, è necessario utilizzare Event Tracing per Windows (ETW) per acquisire dati / profilo di campionamento della CPU.
Per acquisire i dati, installare Windows Performance Toolkit , che fa parte di Windows SDK .
Windows 10 WPT può essere utilizzato su Windows 8 / Server 2012, Windows 8.1 / Server 2012R2 e Windows 10 / Server 2016. Se si utilizza ancora Windows 7, utilizzare SDK / WPT con Build 15086 .
(tutte le altre voci possono essere deselezionate)
Ora esegui WPRUI.exe
, seleziona First Level
, in Risorsa seleziona utilizzo CPU e fai clic su Avvia .
Ora acquisisci 1 minuto di utilizzo della CPU. Dopo 1 minuto, fai clic su Salva .
Ora analizza il file ETL generato con Windows Performance Analyzer trascinando il CPU Usage (sampled)
grafico analysis pane
sull'ordine e ordinando le colonne come vedi nell'immagine:
All'interno di WPA, carica i simboli di debug ed espandi lo stack del processo SYSTEM. In questa demo, l'utilizzo della CPU proviene dal driver nVIDIA.
Nella seguente demo, l'utilizzo della CPU proviene dal driver NIC Realtek:
Quando vedi chiamate come ntoskrnl.exe! Vi KeTrimWorkerThreadRoutine, ntoskrnl.exe! Mm Verifier TrimMemory, ntoskrnl.exe! Verifier KeLeaveCriticalRegion , questo significa che Driver Verifier è abilitato. Ciò inoltre danneggia molto le prestazioni e causa un elevato utilizzo del SISTEMA. Disabilita Driver Verifier e riavvia.
In questa demo, il driver iai2ce.sys
( driver Intel Serial IO GPIO Controller) lo provoca:
In questo esempio, l'utilizzo della CPU proviene dal file rtsuvc.sys
che sembra essere il fileRealtek UVC webcam Driver
Questa demo mostra quel driver Bitdefender ignis.sys
Nell'esempio seguente, l'utilizzo della CPU è determinato dal driver di rete broadcom bcmwl664.sys
Quando vedi ntoskrnl.exe!MiZeroWorkerPages
come causa, è più complicato. Ciò significa che la funzione del kernel che azzera la memoria prima che possa essere riutilizzata provoca un elevato utilizzo della CPU:
Non esiste un modo reale per rilevare quale processo lo causa, ma so che Chrome può causarlo se hai l'accelerazione hardware abilitata in Chrome. Quindi, se vedi questo e usi Chrome, disattiva l'accelerazione hardware in Chrome.
Quando vedete quei ntoskrnl.exe! RtlpGenericRandomPatternWorker, NTOSKRNL.EXE! RtlpTestMemoryRandomUp chiamate
l'utilizzo della CPU proviene dal kernel per testare la memoria per problemi (memtest). Questo utilizzo viene attivato tramite l'attività di manutenzione inattiva di Windows 8.1 / 10. È possibile utilizzare l'Utilità di pianificazione per disabilitare l'attività inattiva.
In Windows 10, l'attività si chiama RunFullMemoryDiagnostics in Microsoft> Windows> MemoryDiagnostic> RunFullMemoryDiagnostic .
In questo caso, l'utilizzo della CPU sembra provenire dalla Data Deduplication
funzionalità ( dedup.sys!DdpPostCreate
) di Windows Server:
In questa demo, l'utilizzo della CPU è causato dal driver della scheda WIFI athrx.sys
Cerca un aggiornamento del driver se lo vedi.
Nella seguente demo è coinvolto un driver citrix:
Quindi contatta il tuo IT per come risolvere i problemi Citrix.
In questa demo, la funzione usbhub.sys!UsbhPortRecycle
provoca l'utilizzo della CPU:
Cambiare le porte USB 2.0 alla velocità 1.1 o collegare le unità USB ad altre porte USB 2.0 ha aiutato alcuni utenti.
In questo caso, una piccola quantità di utilizzo del SISTEMA viene dal driver Acronis tdrpm251.sys
:
In questa demo, l'utilizzo della CPU ntoskrnl.exe!KeAcquireSpinLockRaiseToDpc
e ntoskrnl.exe!KeReleaseSpinLock
.
quindi un driver sta usando SpinLocks molto pesantemente. Disabilita alcuni dispositivi / driver fino a quando non ne vedi uno che lo causa.
In questo caso, l'utilizzo della CPU è causato dal driver L1C62x64.sys
Questo è il qualcomm atheros AR8171/8175 PCI-E gigabit Ethernet
driver Quindi aggiorna il driver se lo vedi nello stack.
Qui, l'utilizzo della CPU proviene dalla scansione del file host (netbt.sys! DelayedScanLmHostFile)
assicurarsi che il file hosts non sia troppo grande per evitare questo utilizzo.
In questo caso, l'utilizzo della CPU proviene SRTSP64.SYS
da Symantec.
Aggiorna il tuo prodotto Symantec usato all'ultima versione.
Qui, l'utilizzo della CPU proviene dal driver GPU AMD (atikmdag.sys)
se vedi questo, vai al sito AMD e ottieni l'ultimo driver per la tua scheda AMD.
Qui, i driver TMXPFlt.sys e VsapiNt.sys causano un elevato utilizzo della CPU.
Da quello che vedo, quei file fanno parte della suite Trend Micro AV. Aggiorna lo strumento o rimuovilo.
In questo esempio, l'utilizzo della CPU deriva dalla funzione ntoskrnl.exe!MmGetPageFileInformation
Questa funzione ottiene informazioni sul file di paging.
Descrizione della routine: questa routine restituisce informazioni sui file di paging attualmente attivi.
Disabilita il file di paging, riavvia e abilitalo di nuovo e vedi se questo lo risolve. Inoltre, la rimozione dei servizi Intel (ad es. Il servizio HECI di Intel Content Protection) sembra risolverlo per un utente .
Qui puoi vedere che il driver Netwtw04.sys
( driver Intel Wifi) chiama la funzione flushCompleteAllPendingFlushRequests
e questo provoca un elevato utilizzo della CPU.
Poiché i simboli di debug vengono caricati, viene utilizzato il driver della posta in arrivo di Windows. Solo qui possiamo ottenere simboli di debug per vedere il callstack con il nome della funzione flushCompleteAllPendingFlushRequests
.
Qui, è necessario installare il driver più recente di Intel per risolverlo.
Il caso più complicato di utilizzo del SISTEMA è l'utilizzo di ACPI.sys nel 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
questo è estremamente difficile da eseguire il debug. In un argomento sysinternals , ho elencato alcuni consigli:
- assicurarsi che la CPU non si surriscaldi a causa della polvere nella ventola della CPU
- aggiornare o ripetere il flashing dello (stesso) BIOS / UEFI
- carica le impostazioni BIOS / UEFI predefinite
- assicurarsi che la batteria non sia danneggiata, rimuovere la batteria dal notebook o disabilitare la batteria in Gestione dispositivi.
- cambia jumper sul caddy dell'HDD se hai sostituito il DVD / Blue-Ray Drive con un Caddy per installare un SSD vicino al tuo vecchio HDD
Nella seguente demo, il driver Intel HD igdkmd64.sys
nella versione .4574 per Intel HD 630 causa il problema:
La soluzione è aggiornare al driver con una versione di almeno .4590.
Nel seguente caso, l'utilizzo della CPU del processo SYSTEM è causato dal driver stdriverx64.sys
Questo sembra essere un driver di streaming audio . Quindi aggiorna questo software / driver se lo vedi in WPA.
Se vedi un driver chiamato risdxc64.sys
nel callstack di SYSTEM che causa un elevato utilizzo della CPU, aggiorna il driver Ricoh PCIe SDXC / MMC Host Controller o disabilita il lettore di schede SD in Gestione periferiche se nessun aggiornamento di driver lo risolve.
Questo lettore di schede SD sembra essere integrato in molti dispositivi Lenovo.
L'utente @stevemidgley ha mostrato un nuovo problema di maggiore utilizzo della CPU con Wdf01000.sys!FxSystemWorkItem::_WorkItemThunk
Qui puoi vedere un driver UDE.sys che lo causa.
Nell'hub dei simboli
Vedo che appartiene al driver del modem e ai dati PNP degli spettacoli di traccia Fibocom L850-GL
(modem LTE) come dispositivo possibile:
E la soluzione è disabilitare il modem e il dispositivo composito USB in Gestione dispositivi.