Aby zdiagnozować problemy z użytkowaniem procesora, należy użyć Event Tracing for Windows (ETW), aby przechwycić dane próbkowania procesora / Profil.
Aby przechwycić dane, zainstaluj Windows Performance Toolkit , który jest częścią Windows SDK .
System Windows 10 WPT może być używany w systemach Windows 8/Server 2012, Windows 8.1/Server 2012R2 i Windows 10/Server 2016. Jeśli nadal używasz Windows 7, użyj SDK/WPT z Build 15086 .
(wszystkie inne wpisy mogą być odznaczone)
Uruchom teraz WPRUI.exe
, wybierz First Level
, w sekcji Resource select CPU use i kliknij na start.
Przechwyć teraz 1 minutę użycia CPU. Po 1 minucie, kliknij na Zapisz.
Teraz przeanalizuj wygenerowany plik ETL z Windows Performance Analyzer przeciągając i upuszczając wykres CPU Usage (sampled)
na analysis pane
i porządkując kolumny jak na rysunku:
Wewnątrz WPA, załaduj symbole debugów i rozszerz stos procesu SYSTEM. W tym demo, wykorzystanie procesora pochodzi ze sterownika nVIDIA.
W poniższym demo, wykorzystanie procesora pochodzi ze sterownika Realtek NIC:
Gdy zobaczysz połączenia jak ntoskrnl.exe! Vi KeTrimWorkerThreadRoutine, ntoskrnl.exe!Mm Verifier TrimMemory, ntoskrnl.exe! Verifier KeLeaveCriticalRegion, to znaczy, że masz włączony Driver Verifier. To również bardzo boli wydajność i powoduje wysokie zużycie SYSTEMU. Disable Driver Verifier i zrestartować.
W tym demo sterownik iai2ce.sys
(sterownik Intel Serial IO GPIO Controller) powoduje to:
W tym przykładzie wykorzystanie procesora pochodzi z pliku rtsuvc.sys
, który wydaje się być Realtek UVC webcam Driver
W tym przykładzie demonstracja pokazuje, że sterownik Bitdefender ignis.sys
W poniższym przykładzie, Użycie procesora jest spowolnione przez sterownik sieciowy broadcom bcmwl664.sys
Gdy widzisz ntoskrnl.exe!MiZeroWorkerPages
jako przyczynę, jest to trudniejsze. Oznacza to, że funkcja jądra, która zeruje pamięć, zanim będzie mogła być ponownie użyta, powoduje wysokie zużycie procesora:
Nie ma prawdziwego sposobu na wykrycie, który proces to powoduje, ale wiem, że Chrome może to spowodować, jeśli masz włączoną akcelerację sprzętową w Chrome. Więc jeśli widzisz to i używasz Chrome, wyłączyć akcelerację sprzętową w Chrome.
Gdy zobaczysz te ntoskrnl.exe!RtlpGenericRandomPatternWorker, ntoskrnl.exe!RtlpTestMemoryRandomUp wzywa
wykorzystanie procesora pochodzi z jądra do testowania pamięci na problemy (memtest). Użycie to jest wywoływane przez jałowe zadanie konserwacyjne Windows 8.1/10. Możesz użyć Task Scheduler do wyłączenia zadania w stanie bezczynności.
W systemie Windows 10, zadanie nazywa się RunFullMemoryDiagnostics pod Microsoft > Windows > MemoryDiagnostic > RunFullMemoryDiagnostic.
W tym przypadku wykorzystanie procesora wydaje się pochodzić z funkcji Data Deduplication
serwera Windows:
W tym demo wykorzystanie procesora jest spowodowane przez sterownik karty WIFI dedup.sys!DdpPostCreate
Wyszukaj aktualizację sterownika, jeśli to widzisz.
W poniższym demo sterownik Citrix'a jest zaangażowany:
Skontaktuj się z działem IT, aby dowiedzieć się, jak rozwiązać problemy Citrix'a.
W tym demo funkcja athrx.sys
powoduje użycie procesora:
Zmiana prędkości portów USB2.0 na 1.1 lub podłączenie pamięci USB do innego USB 2. Porty 0 są pomocne dla niektórych użytkowników.
W tym przypadku, małe zużycie SYSTEMU pochodzi ze sterownika Acronis usbhub.sys!UsbhPortRecycle
:
W tym demo, CPU używa tdrpm251.sys
i ntoskrnl.exe!KeAcquireSpinLockRaiseToDpc
.
więc sterownik używa SpinLocks bardzo mocno. Wyłącz niektóre urządzenia/drivery dopóki nie zobaczysz jednego, który to powoduje.
W tym przypadku, użycie procesora jest spowodowane przez sterownik ntoskrnl.exe!KeReleaseSpinLock
To jest sterownik L1C62x64.sys
. Więc zaktualizuj sterownik, jeśli widzisz go w stosie.
Tutaj, zużycie procesora pochodzi ze skanowania pliku hosta (netbt.sys!DelayedScanLmHostFile)
Upewnij się, że plik hosta nie jest zbyt duży, aby uniknąć tego użycia.
W tym przypadku, użycie procesora pochodzi z qualcomm atheros AR8171/8175 PCI-E gigabit Ethernet
z symantec.
Zaktualizuj swój używany produkt symantec do najnowszej wersji.
W tym przypadku wykorzystanie CPU pochodzi ze sterownika procesora graficznego AMD (atikmdag.sys)
Jeśli to zobaczysz, przejdź na stronę firmy AMD i zdobądź najnowszy sterownik dla karty AMD.
Tutaj, sterowniki TMXPFlt.sys i VsapiNt.sys powodują wysokie zużycie procesora.
Z tego co widzę, te pliki są częścią pakietu Trend Micro AV. Zaktualizuj narzędzie lub usuń je.
W tym przykładzie wykorzystanie procesora pochodzi z funkcji SRTSP64.SYS
Ta funkcja pobiera informacje o pliku pagefile.
Rutyna Opis: Ta procedura zwraca informacje o aktualnie aktywnych plikach stron.
Disable the pagefile, reboot and enable it again and see if this fixes it. Również usunięcie usług Intela (np. Intel Content Protection HECI Service) wydaje się naprawiać to dla użytkownika .
Tutaj widać, że sterownik ntoskrnl.exe!MmGetPageFileInformation
(sterownik Intel Wifi) wywołuje funkcję Netwtw04.sys
i to powoduje wysokie zużycie procesora.
Ponieważ symbole debugów są ładowane, używany jest sterownik skrzynki odbiorczej Windows. Tylko tutaj możemy pobrać symbole debugowania, aby zobaczyć stanik z nazwą funkcji flushCompleteAllPendingFlushRequests
.
W tym miejscu powinieneś zainstalować najnowszy sterownik Intela , aby to naprawić.
Najbardziej skomplikowanym przypadkiem użycia SYSTEMU jest użycie ACPI.sys w stocku wywoławczym:
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
jest to bardzo trudne do debugowania. W tematyce sysinternalnej wymieniłem kilka rad:
- upewnij się, że CPU nie przegrzewa się z powodu kurzu w wentylatorze procesora
- zaktualizuj lub ponownie uruchom BIOS/UEFI
- załaduj domyślne ustawienia BIOS/UEFI
- upewnij się, że bateria nie jest uszkodzona, wyjmij baterię z notebooka lub wyłącz baterię w menedżerze urządzeń.
- zmień zworkę na caddy dysku twardego jeśli wymieniłeś napęd DVD/Blue-Ray na Caddy aby zainstalować SSD obok starego dysku twardego
W poniższym demo, sterownik Intel HD flushCompleteAllPendingFlushRequests
w wersji .4574 dla Intel HD 630 powoduje problem:
Rozwiązanie polega na aktualizacji sterownika z wersją co najmniej . 4590.
W poniższym przypadku, użycie procesora SYSTEMU jest spowodowane przez sterownik igdkmd64.sys
Wydaje się, że jest to sterownik strumieniowego przesyłania dźwięku . Więc zaktualizuj to oprogramowanie/sterownik, jeśli widzisz to w WPA.
Jeśli widzisz sterownik o nazwie stdriverx64.sys
w callstacku SYSTEM, który powoduje wysokie zużycie procesora, zaktualizuj Ricoh PCIe SDXC/MMC Host Controller sterownika lub wyłącz czytnik kart SD w menedżerze urządzeń, jeśli żadna aktualizacja sterownika tego nie naprawia.
Ten czytnik kart SD wydaje się być wbudowany w wiele urządzeń Lenovo.
The user @stevemidgley showed a new issue of higher CPU usage with risdxc64.sys
Here you can see a driver UDE.sys causing it.
W symbolu hubu
Widzę, że należy on do sterownika Modem i dane PNP śladu pokazują Wdf01000.sys!FxSystemWorkItem::_WorkItemThunk
(LTE Modem) jako możliwe urządzenie:
I rozwiązanie polega na wyłączeniu modemu i urządzenia kompozytowego USB w menedżerze urządzeń.