Windows 10-System (ntoskrnl.exe) verwendet CPU, wenn die Maschine eine Weile im Leerlauf war

Windows 10-System (ntoskrnl.exe) verwendet CPU, wenn die Maschine eine Weile im Leerlauf war

Mir ist aufgefallen, dass die CPU meines Laptops ausgelastet wird (vielleicht 15 % Auslastung?) und der CPU-Lüfter anspringt, normalerweise abends, wenn mein Laptop etwa 5 Minuten im Leerlauf war. Der Prozess, der die CPU nutzte, war, Systemwas mir nicht viel sagt, also habe ich beschlossen, Process Explorer laufen zu lassen und die Threads für zu überwachen System. Er begann wieder, die CPU zu nutzen, und das habe ich gefunden:

Prozess-Explorer-System

Der Thread, der nach ein paar Minuten Leerlauf die CPU belastet, hatte die Startadresse ntoskrnl.exe!RtlAvlRemoveNode+0x7ba0. Er scheint also ziemlich zentral für das System zu sein. Weiß jemand, was die Ursache sein könnte und/oder wie ich es weiter diagnostizieren könnte? Ich mag es nicht, wenn mein CPU-Lüfter so hochdreht, und ich möchte das System davon abhalten, dies zu tun.

Ich habe sogar alle geplanten Aufgaben deaktiviert, die im Leerlauf ausgelöst werden (ich habe sie mit PowerShell gefunden Get-ScheduledTask | Where-Object { $_.State -ne "Disabled" } | Select-Object TaskName, TaskPath, Triggers | Where-Object { $_.Triggers -match "MSFT_TaskIdleTrigger" }), und es passiert immer noch.

Antwort1

Die Startadresse des Threads lautet RtlAvlRemoveNode. Dies ist einFunktionaufgerufen über ntoskrnl.exe. Rtl steht für Run-Time Library, also wird es (höchstwahrscheinlich und ohne näher darauf einzugehen) über eine native Anwendung aufgerufen (das wäre zum Beispiel das Programm autochk). Wenn Sie mehr über den Hintergrund wissen möchten, finden Sie viele Informationen aufDiese Seite. Allerdings ist es nur die Startadresse, diese Funktion ist nicht notwendigerweise für den CPU-Zeitverbrauch verantwortlich. Klicken Sie auf die Schaltfläche „Stack“, um den vollständigen Aufrufstapel anzuzeigen, oder verwenden Sie Tools von Drittanbietern wieProzessThreadsView.

Sie haben grundsätzlich zwei Möglichkeiten:

  • Der Versuch-und-Irrtum-Ansatz: Sie deaktivieren Anwendungen beispielsweise über den Taskplaner/abgesicherten Modus usw. in der Hoffnung, die richtige Anwendung zu deaktivieren. (Anwendungen könnten höchstwahrscheinlich der Bildschirmschoner, Defragmentierung, Suchindex usw. sein, müssen aber nicht unbedingt durch den Leerlauf des PCs ausgelöst werden.)

  • Der analytische Ansatz: Sie führen weitere Analysen durch, um das Problem zu lokalisieren, beispielsweise indem Sie den betreffenden Thread weiter analysieren oder "Windows Performance Toolkit" verwenden, um die Anwendung, die die CPU-Auslastung verursacht, genauer zu identifizieren

Da der analytische Ansatz ziemlich viel Mehraufwand mit sich bringt – was das Wissen betrifft – würde ich den Versuch-und-Irrtum-Ansatz empfehlen. Obwohl es sich nur um eine fundierte Vermutung handelt, sind Sie höchstwahrscheinlich nicht der Einzige, der das Problem hat. Daher ist es ein guter Ansatz, die gängigsten Lösungen auszuprobieren.

Wenn Sie mit Versuch und Irrtum nicht weiterkommen, müssen Sie zu einem analytischeren Ansatz wechseln. Wie HoD in seinem Kommentar vorschlug,Windows Performance Toolkitist hier ein guter nächster Schritt. Sobald Sie weitere Informationen haben oder auf ein bestimmtes Problem stoßen, können Sie Ihre Frage genauer spezifizieren, damit wir Ihnen helfen können.

Es besteht auch die Möglichkeit, dass dieses Verhalten durch Malware, Fehler, problematische Updates usw. verursacht wird. Bitte berücksichtigen Sie dies, insbesondere wenn Sie die Trail-and-Error-Methode verwenden.

Antwort2

Die aufgerufenen Subsysteme, die ich in Ihrem Aufrufstapel identifizieren kann, sind:

  • MMCSS -mmcss.sys
  • DirectX 12 –dxgmms2.sys

Man kann andere Aufrufe von Hilfsfunktionen auf niedriger Ebene sehen, aber wir wissen nicht, wer sie aufruft, daher liefern sie nicht viele Informationen. Die hier klar angegebenen Subsysteme auf hoher Ebene sind MMCSS und DirectX 12:

  • Multimedia Class Scheduler-Dienst (MMCSS): Ermöglicht Multimedia-Anwendungen den priorisierten Zugriff auf CPU-Ressourcen.
  • DirectX 12: Windows-Software, die direkt mit Ihrer Video- und Audio-Hardware funktioniert.

Es ist daher klar, dass Ihre CPU von einer Anwendung mit grafischer Komponente beansprucht wird. Diese GUI-Komponente kann für die CPU-Belastung verantwortlich sein oder auch nicht, aber die wichtige Schlussfolgerung hier ist, dass die betreffende Anwendung eine GUI hat.

Eine grafische Anwendung wird nie vom Taskplaner gestartet. Dies ist also nicht der richtige Weg. Sie müssen eine grafische Anwendung finden, die durch einen Leerlaufzustand ausgelöst wird.

Der offensichtlichste Kandidat ist ein Bildschirmschoner. Ich würde vorschlagen, ihn testweise auszuschalten:

  • Klicken Sie mit der rechten Maustaste auf den Desktop und wählen Sie „Personalisieren“ > „Sperrbildschirm“ > „Bildschirmschonereinstellungen“, legen Sie es (None)als Bildschirmschoner fest und klicken Sie auf „OK“.
  • Sie können stattdessen in der Systemsteuerung > Energieoptionen > Energiesparplaneinstellungen ändern die Option „Anzeige ausschalten“ auswählen, um zumindest einen leeren Bildschirm zu haben.

Wenn das nicht hilft, müssen Sie eine andere installierte grafische Anwendung finden, die im Leerlauf etwas anderes macht.

Antwort3

Es handelt sich lediglich um die Wartungsaufgaben von Windows 10, die gestartet werden, nachdem das System eine Zeit lang im Leerlauf war.

verwandte Informationen