Fehlerbehebung bei hoher CPU-Auslastung durch den Prozess „System“

Fehlerbehebung bei hoher CPU-Auslastung durch den Prozess „System“

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:

Bildbeschreibung hier eingeben

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.sysEinfaches 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.

Bildbeschreibung hier eingeben (alle anderen Einträge können abgewählt werden)

Führen Sie nun aus WPRUI.exe, wählen Sie aus First Levelund wählen Sie unter RessourceCPU auslastungund klicken Sie aufStart.

Bildbeschreibung hier eingeben

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 paneund die Spalten wie im Bild gezeigt anordnen:

Bildbeschreibung hier eingeben

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:

Bildbeschreibung hier eingeben


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.

Bildbeschreibung hier eingeben


In dieser Demo iai2ce.sysverursacht der Treiber (Intel Serial IO GPIO Controller-Treiber) Folgendes:

Bildbeschreibung hier eingeben


In diesem Beispiel stammt die CPU-Auslastung aus der Datei rtsuvc.sys, die anscheinend dieRealtek UVC webcam Driver

Bildbeschreibung hier eingeben


Diese Demo zeigt, dass Bitdefender-Treiberignis.sys

Bildbeschreibung hier eingeben


Im folgenden Beispiel wird die CPU-Auslastung durch den Broadcom-Netzwerktreiber verursachtbcmwl664.sys

Bildbeschreibung hier eingeben


Wenn man ntoskrnl.exe!MiZeroWorkerPagesdie 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:

Bildbeschreibung hier eingeben

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

Bildbeschreibung hier eingeben

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.

Bildbeschreibung hier eingeben

In Windows 10 heißt die Aufgabe RunFullMemoryDiagnostics unterMicrosoft > Windows > Speicherdiagnose > RunFullMemoryDiagnostic.

Bildbeschreibung hier eingeben


Data DeduplicationIn diesem Fall scheint die CPU-Auslastung von der Funktion ( dedup.sys!DdpPostCreate) von Windows Server herzurühren :

Bildbeschreibung hier eingeben


In dieser Demo wird die CPU-Auslastung durch den WIFI-Kartentreiber verursachtathrx.sys

Bildbeschreibung hier eingeben

Suchen Sie nach einem Treiberupdate, wenn Sie dies sehen.


In der folgenden Demo ist ein Citrix-Treiber beteiligt:

Bildbeschreibung hier eingeben

Wenden Sie sich daher an Ihre IT-Abteilung, um Informationen zur Lösung von Citrix-Problemen zu erhalten.


In dieser Demo usbhub.sys!UsbhPortRecycleverursacht die Funktion die CPU-Auslastung:

Bildbeschreibung hier eingeben

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:

Bildbeschreibung hier eingeben


In dieser Demo werden die CPU-Auslastung ntoskrnl.exe!KeAcquireSpinLockRaiseToDpcund ... angezeigt ntoskrnl.exe!KeReleaseSpinLock.

Bildbeschreibung hier eingeben

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

Bildbeschreibung hier eingeben

Dies ist der qualcomm atheros AR8171/8175 PCI-E gigabit EthernetTreiber. Aktualisieren Sie den Treiber, wenn Sie ihn im Stapel sehen.


Hier ergibt sich die CPU-Auslastung aus dem Scannen der Hostdatei (netbt.sys!DelayedScanLmHostFile).

Bildbeschreibung hier eingeben

Stellen Sie sicher, dass Ihre Hosts-Datei nicht zu groß ist, um diese Verwendung zu vermeiden.


In diesem Fall stammt die CPU-Auslastung SRTSP64.SYSvon Symantec.

Bildbeschreibung hier eingeben

Aktualisieren Sie Ihr gebrauchtes Symantec-Produkt auf die neueste Version.


Hier kommt die CPU-Auslastung vom AMD GPU-Treiber (atikmdag.sys)

Bildbeschreibung hier eingeben

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.

Bildbeschreibung hier eingeben

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

Bildbeschreibung hier eingeben

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 flushCompleteAllPendingFlushRequestsund dadurch eine hohe CPU-Auslastung entsteht.

Bildbeschreibung hier eingeben

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

Bildbeschreibung hier eingeben


In der folgenden Demo igdkmd64.sysverursacht der Intel HD-Treiber in Version .4574 für die Intel HD 630 das Problem:

Bildbeschreibung hier eingeben

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

Bildbeschreibung hier eingeben

Dies scheint eineAudio-Streaming-Treiber. Aktualisieren Sie also diese Software/diesen Treiber, wenn Sie dies in WPA sehen.


Wenn Sie einen Treiber risdxc64.sysim 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.

Bildbeschreibung hier eingeben

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

Bildbeschreibung hier eingeben

Hier sehen Sie, dass der Treiber UDE.sys die Ursache ist.

Im Symbol-Hub

Bildbeschreibung hier eingeben

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:

Bildbeschreibung hier eingeben

Die Lösung besteht darin, das Modem und das USB-Verbundgerät im Geräte-Manager zu deaktivieren.


Der Benutzer@fajarvorausgesetzt, der folgende Fall:

Bildbeschreibung hier eingeben

Hier ist die CPU-Auslastung gering, aber wenn Sie die Ansicht auf DPC/ISR-Auslastung ändern

Bildbeschreibung hier eingeben

Sie können sehen, dass der avgNetHub.sys-Treiber eine Menge DPC-Nutzung verursacht

Bildbeschreibung hier eingeben

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“:

Bildbeschreibung hier eingeben

Wechseln Sie zur Registerkarte „Threads“ (ignorieren Sie das Dialogfeld, in dem Symbole erwähnt werden):

Bildbeschreibung hier eingeben

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:

  1. 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.

  2. Kopieren Sie die Dateien dbghelp.dllund symsrv.dllaus 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\x64Und C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit

  3. 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 Storagehat 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

verwandte Informationen