Mir ist aufgefallen, dass mein System seit einiger Zeit einfriert. Die Ursache hierfür ist wahrscheinlich die hohe CPU-Auslastung, die durch den Systemprozess verursacht wird.
Ich verwende nur Skype, TeamSpeak und Chrome, daher sollte es auf keinen Fall so viel CPU-Belastung haben.
Sie können das Problem selbst und die laufenden Prozesse im folgenden Screenshot sehen:
Manchmal erreicht die CPU-Auslastung 90 %, aber die durchschnittliche Auslastung liegt bei 40–65 %.
Meine PC-Parameter:
- Windows 8 (Kundenvorschau)
- Intel Core i3 – 2350M
- 8 GB RAM
Ich würde mich über jeden Hilfsversuch freuen! Grüße.
--AKTUALISIEREN--
Da der Benutzer unten eine großartige Antwort gepostet hat, ist mir aufgefallen, dass der Prozess, der im System am meisten CPU verbraucht, aufgerufen wird. Arthurx.sys
Einfaches Google sagt, dass es sich um einen TPLink-Treiber handelt (ein WLAN-Adapter, den ich vor etwa 2 Wochen gekauft habe!). Treiber wurden vom Windows MSDN installiert, aber ich habe auch versucht, die Treiber von der beiliegenden CD zu installieren, aber das hat nicht geholfen. Vom Systemstart an verbraucht er nur etwa 5 % der CPU, aber nach 2-4 Stunden Arbeit wächst er und erreicht 40-60 % der CPU-Auslastung.
Gerätename:TPLink WN722N
Antwort1
Einführung
Eine hohe CPU-Auslastung durch den Prozess „System“ kann oft durch ein Problem mit dem Hardwaretreiber verursacht werden (Fehler, alte Version, Inkompatibilität usw.).
Der Systemprozess lädt (oder hostet) mehrere Hardwaretreiber von verschiedenen Anbietern, die einen höheren Speicherzugriff erfordern. Aus diesem Grund kann die Diagnose des spezifischen Übeltäters ein wenig Detektivarbeit erfordern, wie unten beschrieben.
Diagnose des Problems
Um Probleme mit der CPU-Auslastung zu diagnostizieren, sollten Sie die Ereignisablaufverfolgung für Windows (ETW) verwenden, um CPU-Sampling-Daten/-Profile zu erfassen.
Um die Daten zu erfassen,Installieren Sie das Windows Performance Toolkit, Teil derWindows SDK.
Der Windows 10 WPT kann unter Windows 8/Server 2012, Windows 8.1/Server 2012R2 und Windows 10/Server 2016 verwendet werden. Wenn Sie noch Windows 7 verwenden, verwenden Sie denSDK/WPT mit Build 15086.
(alle anderen Einträge können abgewählt werden)
Führen Sie nun aus WPRUI.exe
, wählen Sie aus First Level
und wählen Sie unter RessourceCPU auslastungund klicken Sie aufStart.
Erfassen Sie nun 1 Minute der CPU-Auslastung. Klicken Sie nach 1 Minute aufSpeichern.
JetztAnalysieren Sie die generierte ETL-Datei mit dem Windows Performance AnalyzerCPU Usage (sampled)
indem Sie das Diagramm per Drag & Drop verschieben analysis pane
und die Spalten wie im Bild gezeigt anordnen:
Innerhalb von WPA,Laden Sie die Debugsymboleund erweitern Sie den Stapel des SYSTEM-Prozesses. In dieser Demo stammt die CPU-Auslastung vom nVIDIA-Treiber.
In der folgenden Demo stammt die CPU-Auslastung vom Realtek NIC-Treiber:
Wenn Sie Anrufe wientoskrnl.exe!ViKeTrimWorkerThreadRoutine, ntoskrnl.exe!MmPrüferTrimMemory, ntoskrnl.exe!PrüferKeLeaveCriticalRegion, bedeutet dies, dass Sie die Treiberüberprüfung aktiviert haben. Dies beeinträchtigt die Leistung ebenfalls erheblich und führt zu einer hohen SYSTEM-Auslastung.Deaktivieren der Treiberüberprüfungund starten Sie neu.
In dieser Demo iai2ce.sys
verursacht der Treiber (Intel Serial IO GPIO Controller-Treiber) Folgendes:
In diesem Beispiel stammt die CPU-Auslastung aus der Datei rtsuvc.sys
, die anscheinend dieRealtek UVC webcam Driver
Diese Demo zeigt, dass Bitdefender-Treiberignis.sys
Im folgenden Beispiel wird die CPU-Auslastung durch den Broadcom-Netzwerktreiber verursachtbcmwl664.sys
Wenn man ntoskrnl.exe!MiZeroWorkerPages
die Ursache betrachtet, ist es schwieriger. Das bedeutet, dass die Funktion des Kernels, den Speicher vor der erneuten Verwendung auf Null zu setzen, die hohe CPU-Auslastung verursacht:
Es gibt keine wirkliche Möglichkeit, herauszufinden, welcher Prozess dies verursacht, aber ich weiß, dass Chrome dies verursachen kann, wenn Sie die Hardwarebeschleunigung in Chrome aktiviert haben. Wenn Sie dies also sehen und Chrome verwenden, schalten Sie die Hardwarebeschleunigung in Chrome aus.
Wenn Sie diese sehenntoskrnl.exe!RtlpGenericRandomPatternWorker, ntoskrnl.exe!RtlpTestMemoryRandomUpAnrufe
Die CPU-Auslastung kommt vom Kernel, um den Arbeitsspeicher auf Probleme zu testen (Memtest). Diese Auslastung wird über die Leerlaufwartungsaufgabe von Windows 8.1/10 ausgelöst. Sie können den Taskplaner verwenden, um die Leerlaufaufgabe zu deaktivieren.
In Windows 10 heißt die Aufgabe RunFullMemoryDiagnostics unterMicrosoft > Windows > Speicherdiagnose > RunFullMemoryDiagnostic.
Data Deduplication
In diesem Fall scheint die CPU-Auslastung von der Funktion ( dedup.sys!DdpPostCreate
) von Windows Server herzurühren :
In dieser Demo wird die CPU-Auslastung durch den WIFI-Kartentreiber verursachtathrx.sys
Suchen Sie nach einem Treiberupdate, wenn Sie dies sehen.
In der folgenden Demo ist ein Citrix-Treiber beteiligt:
Wenden Sie sich daher an Ihre IT-Abteilung, um Informationen zur Lösung von Citrix-Problemen zu erhalten.
In dieser Demo usbhub.sys!UsbhPortRecycle
verursacht die Funktion die CPU-Auslastung:
Umstellung der USB2.0-Anschlüsse auf 1.1-Geschwindigkeitoder das Anschließen von USB-Laufwerken an andere USB 2.0-Anschlüsse hat einigen Benutzern geholfen.
In diesem Fall ist ein kleiner Teil der SYSTEM-Nutzung auf den Acronis-Treiber zurückzuführen tdrpm251.sys
:
In dieser Demo werden die CPU-Auslastung ntoskrnl.exe!KeAcquireSpinLockRaiseToDpc
und ... angezeigt ntoskrnl.exe!KeReleaseSpinLock
.
Ein Fahrer verwendet alsoSpinLockssehr stark. Deaktivieren Sie einige Geräte/Treiber, bis Sie eines finden, das das Problem verursacht.
In diesem Fall wird die CPU-Auslastung durch den Treiber verursachtL1C62x64.sys
Dies ist der qualcomm atheros AR8171/8175 PCI-E gigabit Ethernet
Treiber. Aktualisieren Sie den Treiber, wenn Sie ihn im Stapel sehen.
Hier ergibt sich die CPU-Auslastung aus dem Scannen der Hostdatei (netbt.sys!DelayedScanLmHostFile).
Stellen Sie sicher, dass Ihre Hosts-Datei nicht zu groß ist, um diese Verwendung zu vermeiden.
In diesem Fall stammt die CPU-Auslastung SRTSP64.SYS
von Symantec.
Aktualisieren Sie Ihr gebrauchtes Symantec-Produkt auf die neueste Version.
Hier kommt die CPU-Auslastung vom AMD GPU-Treiber (atikmdag.sys)
Wenn Sie dies sehen, gehen Sie zur AMD-Site und holen Sie sich den neuesten Treiber für Ihre AMD-Karte.
Hier sind die Treiber TMXPFlt.sys und VsapiNt.sys für die hohe CPU-Auslastung verantwortlich.
So wie ich das sehe, sind diese Dateien Teil der Trend Micro AV Suite. Aktualisieren Sie das Tool oder entfernen Sie es.
In diesem Beispiel kommt die CPU-Auslastung von der Funktionntoskrnl.exe!MmGetPageFileInformation
Diese Funktion ruft Informationen über die Auslagerungsdatei ab.
Routinebeschreibung: Diese Routine gibt Informationen zu den aktuell aktiven Auslagerungsdateien zurück.
Deaktivieren Sie die Auslagerungsdatei, starten Sie neu und aktivieren Sie sie erneut. Prüfen Sie, ob das Problem dadurch behoben wird. Entfernen Sie außerdem Intel-Dienste (z. B. Intel Content Protection HECI Service).scheint es für einen Benutzer behoben zu haben.
Hier sieht man, dass der Treiber Netwtw04.sys
(Intel Wifi Treiber) die Funktion aufruft flushCompleteAllPendingFlushRequests
und dadurch eine hohe CPU-Auslastung entsteht.
Da die Debugsymbole geladen werden, wird der Windows-Inbox-Treiber verwendet. Nur hier können wir Debugsymbole abrufen, um den Callstack mit dem Funktionsnamen anzuzeigen flushCompleteAllPendingFlushRequests
.
Hier sollten SieInstallieren Sie den neuesten Treiber von Inteletwas reparieren.
Der komplizierteste Fall der SYSTEM-Verwendung ist die Verwendung von ACPI.sys im Aufrufstapel:
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
Dies ist äußerst schwierig zu debuggen. In einemSysinternals-Themahabe ich einige Ratschläge aufgelistet:
- Stellen Sie sicher, dass die CPU nicht aufgrund von Staub im CPU-Lüfter überhitzt
- Aktualisieren oder flashen Sie das (gleiche) BIOS/UEFI neu.
- Standard-BIOS/UEFI-Einstellungen laden
- Stellen Sie sicher, dass der Akku nicht beschädigt ist, entfernen Sie den Akku aus dem Notebook oder deaktivieren Sie den Akku im Geräte-Manager.
- Jumper wechseln auf HDD-Caddywenn Sie das DVD/Blue-Ray-Laufwerk durch einen Caddy ersetzt haben, um eine SSD neben Ihrer alten Festplatte zu installieren
- einige Geräte deaktivierenwie von diesem Benutzer empfohlen
- Wenn Sie einen Intel-Chipsatz verwenden, versuchen Sie zu installierenIntel Rapid Storage-Technologie (RST)um den Standard-AHCI-Treiber von Windows zu ersetzen. Diesscheint geholfen zu haben.
- der BenutzerShayna herausgefunden, dass mitProcess Hacker (als Administrator gestartet)die Threads der ACPI.sys-Probleme zu suspendieren, „behebt“ das Problem für ihn. Versuchen Sie also seinen Workaround, wenn alle anderen Schritte das Problem für Sie nicht beheben.
In der folgenden Demo igdkmd64.sys
verursacht der Intel HD-Treiber in Version .4574 für die Intel HD 630 das Problem:
Die Lösung besteht darin,Treiber aktualisierenmit mindestens Version .4590.
Im folgenden Fall wird die CPU-Auslastung des SYSTEM-Prozesses durch den Treiber verursachtstdriverx64.sys
Dies scheint eineAudio-Streaming-Treiber. Aktualisieren Sie also diese Software/diesen Treiber, wenn Sie dies in WPA sehen.
Wenn Sie einen Treiber risdxc64.sys
im Callstack von SYSTEM sehen, der die hohe CPU-Auslastung verursacht, aktualisieren Sie denRicoh PCIe SDXC/MMC-HostcontrollerTreiber oder deaktivieren Sie den SD-Kartenleser im Geräte-Manager, wenn das Problem durch kein Treiber-Update behoben wird.
Dieser SD-Kartenleser scheint in vielen Lenovo-Geräten eingebaut zu sein.
Der Benutzer @stevemidgley zeigte ein neues Problem der höheren CPU-Auslastung mitWdf01000.sys!FxSystemWorkItem::_WorkItemThunk
Hier sehen Sie, dass der Treiber UDE.sys die Ursache ist.
Im Symbol-Hub
Ich sehe, dass es zum Modemtreiber gehört, und die PNP-Daten des Trace zeigen Fibocom L850-GL
(LTE-Modem) als mögliches Gerät an:
Die Lösung besteht darin, das Modem und das USB-Verbundgerät im Geräte-Manager zu deaktivieren.
Der Benutzer@fajarvorausgesetzt, der folgende Fall:
Hier ist die CPU-Auslastung gering, aber wenn Sie die Ansicht auf DPC/ISR-Auslastung ändern
Sie können sehen, dass der avgNetHub.sys-Treiber eine Menge DPC-Nutzung verursacht
Der Name weist darauf hin, dass dieser Treiber Teil der AVG-Antivirensoftware ist. Aktualisieren Sie die Software oder entfernen Sie sie, wenn Sie dies in Ihrem Trace sehen.
Antwort2
Dies kann durch einen fehlerhaften Treiber oder ein anderes vom System geladenes Modul verursacht werden. Um in den Systemprozess zu schauen, können Sie ein Tool wie verwendenProcess Explorer.
Laden Sie es herunter und führen Sie es aus. Wählen Sie dann den Systemprozess aus, klicken Sie mit der rechten Maustaste und wählen Sie „Eigenschaften“:
Wechseln Sie zur Registerkarte „Threads“ (ignorieren Sie das Dialogfeld, in dem Symbole erwähnt werden):
Dadurch wird angezeigt, welche Datei die CPU-Auslastung übermäßig erhöht, und Sie können anhand dieser Datei dann eine Diagnose durchführen.
Wie andere jedoch in den Kommentaren gesagt haben, müssen Sie wirklich so schnell wie möglich von den Vorschauversionen abrücken!
Antwort3
Ein Hinweis zum Laden von Debugsymbolen zum Hinzufügen zumagicandre1981s ausgezeichnete Antwort: wenn das Laden der Symbole im Windows Performance Analyzer korrekt funktioniert, nach dem AnkreuzenSpur > Symbole ladenSie sollten oben einen Fortschrittsbalken sehen mitSymbole werden geladendaneben werden Dateinamen angezeigt und die Ausführung dauert mehrere Minuten. Außerdem sollten Sie in der Diagnosekonsole viele Zeilen wie die folgenden sehen:
SYMSRV: File: Accessibility.ni.pdb
SYMSRV: Notifies the client application that a proxy has been detected.
SYMSRV: Connecting to the Server: http://msdl.microsoft.com/download/symbols.
SYMSRV: Successfully connected to the Server.
SYMSRV: Sending the information request to the server.
SYMSRV: Successfully sent the information request to the server.
SYMSRV: Waiting for the server to respond to a request.
SYMSRV: Successfully received a response from the server.
SYMSRV: Closing the connection to the Server.
SYMSRV: Successfully closed the connection to the Server.
SYMSRV: Get File Path: /download/symbols/Accessibility.ni.pdb/7B46178957827CDAB7EE4C86EDEE1DAE1/Accessibility.ni.pdb
Wenn Sie keines davon sehen, hat das Laden der Debugsymbole wahrscheinlich nicht funktioniert und Sie können Ihren Trace nicht richtig interpretieren.
In meinem Fall funktionierte das Laden der Debugsymbole zunächst nicht. Ich habe es wie folgt behoben:diese Anweisungen:
Finden Sie heraus, ob Sie die x86- oder x64-Version des Windows Performance Toolkit verwenden.
Dies ist bei x86-Builds von Windows problemlos möglich. Bei x64-Builds können Sie im Task-Manager nach dem Tag *32 suchen. Wenn es dort nicht vorhanden ist, verwenden Sie die x64-Version.
Beachten Sie, dass WPT unabhängig von der Architektur immer in Programme (x86) installiert wird.
Kopieren Sie die Dateien
dbghelp.dll
undsymsrv.dll
aus dem richtigen Debugger-Verzeichnis in das Windows Performance Toolkit-Verzeichnis. Auf meinem System sind die relevanten Verzeichnisse:
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
UndC:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit
Starten Sie den Windows Performance Analyzer neu, damit die richtige Version von dbghelp.dll übernommen wird.
Antwort4
Antworthinzugefügt von@magicandre1981ist der Schlüssel zur Lösung jedes Problems. Mein Fall war dort nicht aufgeführt, aber ich habe ein ähnliches Wort im Stapel gefunden, der im The most complicated case of SYSTEM usage is ACPI.sys usage in the callstack:
Abschnitt beschrieben ist. In meinem Fall Intel Rapid Storage
hat die Installation des Treibers geholfen. Ich hatte das nicht erwartet, da alles lange Zeit ohne diesen Treiber und ohne CPU-Probleme funktionierte. Ich habe meinen Stapel hier abgelegt, wahrscheinlich findet jemand diese Antwort mit ähnlichen Schlüsselwörtern.
Line #, Process, Stack, Count, Weight (in view) (ms), TimeStamp (s), % Weight
3, , [Root], 45104, 45,300.439000, , 16.21
4, , ntoskrnl.exe!KiStartSystemThread, 45104, 45,300.439000, , 16.21
5, , ntoskrnl.exe!PspSystemThreadStartup, 45104, 45,300.439000, , 16.21
6, , |- ntoskrnl.exe!SMKM_STORE_MGR<SM_TRAITS>::SmCompressCtxWorkerThread, 38830, 38,997.540000, , 13.95
7, , | |- ntoskrnl.exe!SMKM_STORE_MGR<SM_TRAITS>::SmCompressCtxProcessEntry, 38708, 38,874.943400, , 13.91
8, , | | |- ntoskrnl.exe!memcpy, 33888, 34,032.390100, , 12.18
9, , | | | |- ntoskrnl.exe!memcpy<itself>, 33655, 33,795.069100, , 12.09
10, , | | | |- ntoskrnl.exe!KiDpcInterrupt, 228, 232.331300, , 0.08
11, , | | | |- ntoskrnl.exe!KiInterruptDispatchNoLockNoEtw, 4, 3.989700, , 0.00
12, , | | | |- ntoskrnl.exe!KiInterruptDispatch, 1, 1.000000, , 0.00
13, , | | |- ntoskrnl.exe!RtlCompressBuffer, 2571, 2,585.541600, , 0.93
14, , | | |- ntoskrnl.exe!SMKM_STORE_MGR<SM_TRAITS>::SmCompressCtxProcessReadyQueue, 2015, 2,022.554900, , 0.72
15, , | | |- ntoskrnl.exe!MmBuildMdlForNonPagedPool, 129, 129.294600, , 0.05
16, , | | |- ntoskrnl.exe!SMKM_STORE_MGR<SM_TRAITS>::SmCompressCtxProcessEntry<itself>, 63, 62.901700, , 0.02
17, , | | |- ntoskrnl.exe!ExAcquireSpinLockExclusive, 31, 31.208200, , 0.01
18, , | | |- ntoskrnl.exe!MetroHash64::Hash, 10, 10.033100, , 0.00
19, , | | |- ntoskrnl.exe!KiDpcInterrupt, 1, 1.019200, , 0.00
20, , | |- ntoskrnl.exe!SMKM_STORE_MGR<SM_TRAITS>::SmCompressCtxWorkerThread<itself>, 78, 78.477100, , 0.03
21, , | |- ntoskrnl.exe!ExAcquireSpinLockExclusive, 39, 39.068100, , 0.01
22, , | |- ntoskrnl.exe!KeWaitForSingleObject, 5, 5.051400, , 0.00
23, , |- ntoskrnl.exe!SMKM_STORE<SM_TRAITS>::SmStWorkerThread, 5420, 5,445.923200, , 1.95
24, , |- ntoskrnl.exe!SmKmStoreHelperWorker, 495, 496.265200, , 0.18
25, , |- ntoskrnl.exe!SMKM_STORE<SM_TRAITS>::SmStReadThread, 359, 360.710600, , 0.13
26, , n/a, 16760, 16,773.871200, , 6.00
Aktualisieren:Leider ist das Problem wieder aufgetreten. Nach dem Neustart funktioniert der PC eine Zeit lang einwandfrei, aber dann tritt das gleiche CPU-Leck mit demselben Stapel auf