Windows 10-System (ntoskrnl.exe) mit CPU, wenn der Computer längere Zeit nicht verwendet wurde

734
Jez

Mir ist aufgefallen, dass sich die CPU meines Laptops langsam einnimmt (vielleicht 15% Auslastung?), Und der CPU-Lüfter schaltet sich ein, normalerweise abends, wenn mein Laptop etwa 5 Minuten lang nicht verwendet wurde. Der Prozess, bei dem die CPU verwendet wurde System, sagt mir nicht viel aus, also habe ich beschlossen, Process Explorer laufen zu lassen und Threads zu überwachen System. Es fing wieder an, CPU zu benutzen, und ich habe es gefunden:

Prozess Explorer System

Der Thread, der die CPU nach einigen Minuten Leerlauf auffrisst, hatte die Startadresse ntoskrnl.exe!RtlAvlRemoveNode+0x7ba0. So scheint es dem System ziemlich wichtig zu sein. Weiß jemand, was das verursacht und / oder wie ich es weiter diagnostizieren könnte? Ich mag es nicht, dass sich mein CPU-Lüfter so dreht, und ich möchte, dass das System damit aufhört.

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

2
Tritt dies beim Booten im abgesicherten Modus auf? Wenn dies nicht der Fall ist, können Sie [Autoruns] (https://docs.microsoft.com/de-de/sysinternals/downloads/autoruns) verwenden, um die Startaufgabe in Büscheln zu deaktivieren, bis Sie das Problem gefunden haben. harrymc vor 5 Jahren 0
Es ist der NT-Kernel, der die CPU verwendet. Ich bezweifle, dass es irgendeine Startaufgabe ist. Jez vor 5 Jahren 0
Starten Sie den Test im abgesicherten Modus. System kann viele Dinge sein. harrymc vor 5 Jahren 0
Ich glaube nicht, dass Sie alle "Leerlaufaufgaben" mit dieser Abfrage aufgefangen haben. Beispielsweise wird das berüchtigte "RunFullMemoryDiagnostic" nicht angezeigt. Sie können das Windows Performance Toolkit verwenden, um zu verfolgen, was es tut. Siehe https://superuser.com/questions/ 527401 / troubleshoot-high-cpu-usage-by-the-system-process / 1164299 # 1164299 für großartige Beispiele von magicandre1981 HoD vor 5 Jahren 1
Obwohl sich das zugrunde liegende Problem nicht angesprochen hat, haben Sie in Betracht gezogen, einen lüfterlosen PC zu kaufen, wenn der CPU-Lüfter ein Problem darstellt. Stese vor 5 Jahren 0
Jez - Versuchen Sie ** zu stoppen ** und ** den `Superfetch'-Dienst von` services.msc` zu deaktivieren, wie in den Anweisungen unter [** Disable From Services **] (https: //www.technipages) beschrieben. com / windows-enable-disable-superfetch) Abschnitt in diesem Beitrag. Um gründlich zu sein, starten Sie den Computer neu und überprüfen Sie, ob das Problem weiterhin besteht. Beenden und deaktivieren Sie außerdem den ** Windows Search ** -Dienst, und starten Sie ihn erneut. Anschließend können Sie ihn erneut starten, testen usw. Um dies rückgängig zu machen, aktivieren Sie einfach die Dienste von `services.msc` und starten Sie ihn neu usw. Lassen Sie mich wissen, ob etwas von dieser Hilfe hilft, wenn Sie können. Pimp Juice IT vor 5 Jahren 0
Jez, wollte nur wissen, haben Sie das Problem gelöst? Wenn ja, welche Anwendung war für den CPU-Zeitaufwand verantwortlich? PS. Und danke, dass Sie die Prämie beantragt haben. Albin vor 5 Jahren 0
Die CPU-Auslastung ist seit einer Woche nicht mehr passiert. Beim nächsten Mal werde ich versuchen herauszufinden, was es mit WPT verursacht hat. Jez vor 5 Jahren 0

3 Antworten auf die Frage

1
Albin

Die Startadresse des Threads wird erwähnt RtlAvlRemoveNode. Dies ist eine Funktion, die durch den Aufruf von aufgerufen wird ntoskrnl.exe. RTL steht für Run-Time Library (Laufzeitbibliothek) und wird daher (wahrscheinlich und ohne weitere Eingriffe) über eine native Anwendung (die beispielsweise das Programm autochk wäre) aufgerufen. Wenn Sie mehr über den Hintergrund erfahren möchten, finden Sie auf dieser Website viele Informationen . Es ist jedoch nur die Startadresse, es ist nicht notwendig, dass diese Funktion die CPU-Zeit beansprucht. Klicken Sie auf die Schaltfläche "Stack", um den gesamten Aufrufstack anzuzeigen, oder verwenden Sie Tools von Drittanbietern wie ProcessThreadsView .

Sie haben zwei grundlegende Optionen:

  • Der Ansatz und der Fehleransatz: Sie deaktivieren Anwendungen beispielsweise über den Taskplaner / abgesicherten Modus usw., in der Hoffnung, die richtige Anwendung zu deaktivieren. (Die Anwendungen können Bildschirmschoner, Defragmentierung, Suchindex usw. sein, höchstwahrscheinlich aber nicht unbedingt etwas, das durch den Leerlauf des PCs ausgelöst wird.)

  • Der analytische Ansatz: Sie führen eine weitere Analyse aus, um das Problem zu ermitteln, indem Sie beispielsweise den betreffenden Thread weiter analysieren oder mithilfe des "Windows Performance Toolkit" die Anwendung ermitteln, die die CPU-Auslastung verursacht

Da der analytische Ansatz einen erheblichen Mehraufwand hat - wissensbasiert -, würde ich den Ansatz und den Fehler vorschlagen. Obwohl es sich nur um eine fundierte Vermutung handelt, sind Sie höchstwahrscheinlich nicht der einzige, der das Problem hat. Daher sollten Sie die gängigsten Lösungen ausprobieren.

Wenn Sie durch Fehler und Irrwege nichts erreichen, müssen Sie zu einem analytischeren Ansatz wechseln. Wie HoD in seinem Kommentar angedeutet hat, ist Windows Performance Toolkit hier ein guter nächster Schritt. Sobald Sie mehr Informationen haben oder auf bestimmte Probleme stoßen, können Sie Ihre Frage genauer angeben, damit wir Ihnen helfen können.

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

1
harrymc

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

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

Andere Low-Level-Funktionsfunktionsaufrufe sind zu sehen, aber wir wissen nicht, wer ihre Anrufer sind, und fügen daher nicht viele Informationen hinzu. Die hier eindeutig angegebenen übergeordneten Subsysteme sind MMCSS und DirectX 12:

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

Es ist daher klar, dass es sich bei Ihrer CPU um eine Anwendung handelt, die über eine grafische Komponente verfügt. Diese GUI-Komponente ist möglicherweise für die CPU-Gebühr verantwortlich oder nicht, aber die wichtige Schlussfolgerung hier ist, dass die betreffende Anwendung über eine GUI verfügt.

Eine grafische Anwendung wird nie vom Taskplaner gestartet, daher ist dies nicht die richtige Richtung. Sie müssen eine grafische Anwendung finden, die durch einen Ruhezustand ausgelöst wird.

Der offensichtlichste Kandidat ist ein Bildschirmschoner. Ich würde vorschlagen, es als Test auszuschalten:

  • Klicken Sie mit der rechten Maustaste auf den Desktop und wählen Sie Anpassen> Bildschirm sperren> Bildschirmschoner-Einstellungen. (None)Legen Sie den Bildschirmschoner fest und klicken Sie auf OK.
  • Sie können stattdessen in Systemsteuerung> Energieoptionen> Planeinstellungen ändern "Deaktivieren Sie die Anzeige" so einstellen, dass mindestens ein leerer Bildschirm angezeigt wird.

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

Danke, wie kommt man zu dem Schluss, dass "RtlSetOwnerSecurityDescriptor" viel CPU-Zeit beansprucht? Vielleicht habe ich etwas übersehen. aber ich kann dafür keine hinweise sehen ?! Albin vor 5 Jahren 0
@Albin: Wie gesagt, ich habe es nicht getan, das Plakat tat es. Ich schlage vor, dass wir unsere obigen Kommentare bereinigen, bevor ein Moderator ärgert. harrymc vor 5 Jahren 0
Lassen Sie uns [diese Diskussion im Chat fortsetzen] (https://chat.stackexchange.com/rooms/84889/discussion-between-albin-and-harrymc). Albin vor 5 Jahren 0
Es ist kein Anrufstapel. Es sind ein Dutzend separate Threads. Die einzige CPU, die eine bedeutende CPU verwendet, ist die oberste in RtlAvlRemoveNode. Der mmcss-Thread scheint überhaupt nicht für viel CPU verantwortlich zu sein. dave vor 5 Jahren 0
Die Tatsache, dass die Startadresse `` RtlAvlRemoveNode + etwas``` ist, bedeutet nicht notwendigerweise, dass wir in RtlAvlRemoveNode ausgeführt werden. Dies könnte nur das nächstgelegene Symbol sein, das für ProcessExplorer verfügbar ist. Wir könnten raten, wenn wir `` etwas``` wüssten, aber leider war das Bildschirmbild zu klein. Ist ein breiteres Bild möglich, das alle `` `+ 0x ....` `` - Teile erfasst? (Eine RTL AVL-Routine scheint ein unwahrscheinlicher Thread-Start zu sein.) dave vor 5 Jahren 0
@dave danke, "genau" mein Punkt! :) Vielleicht möchten Sie Ihren Kommentar aber nicht hier einfügen. Ich denke, es gibt eine bessere Chance, eine Antwort vom OP zu erhalten. Albin vor 5 Jahren 0
@dave: Low-Level-Utility-Aufrufe sind für die Analyse nicht sehr nützlich, aber die klar angedeuteten Sub-Level-Subsysteme sind MMCSS und DirectX 12, beide grafischer Natur. Es ist klar, dass Grafiken Teil des angegebenen Programms sind. Darauf beruht meine Antwort. Der Rest ist weniger wichtig. harrymc vor 5 Jahren 0
@Albin: Ich habe meine Antwort geklärt und die fragwürdigen Teile herausgenommen, die aber auf keinen Fall nützlich waren. Aber mein Argument bleibt bestehen. harrymc vor 5 Jahren 0
@harrymc welches Argument? Sie haben gerade eine Stellungnahme abgegeben, Sie haben keine Gründe für Ihre Schlussfolgerung angegeben (warum "RtlSetOwnerSecurityDescriptor" viel CPU-Zeit beansprucht). Wichtiger noch, Sie haben vorgeschlagen, diese Diskussion hier nicht fortzusetzen, was ein guter Punkt ist, also habe ich einen Chat eröffnet. Wäre schön wenn du dort Antworten hättest. ;) PS. da Dave richtig darauf hinweist, dass das OP keinen Aufrufstapel bereitstellt (zumindest nicht in der aktuellen Version seiner Frage), aber das ist nur semantisch und für mich nicht wichtig, deshalb habe ich es vorher nicht erwähnt. Albin vor 5 Jahren 0
@ harrymc PS. Versteht mich nicht falsch, ich schätze alle Ihre Antworten sehr (sie haben mir einige Male geholfen). Ich möchte immer noch Ihre Gründe wissen, weil ich in diesem Fall zu einer anderen Schlussfolgerung komme. Albin vor 5 Jahren 0
@Albin: Ich glaube, wir hatten ein großartiges Missverständnis und ich hoffe, dass die Antwort jetzt eindeutig ist. Ich habe nicht wirklich verstanden, warum Sie auf einem unwichtigen Detail beharrten. Meine Schuld, weil ich es nicht genauer formuliert habe. Zögern Sie nicht, darauf zu bestehen, wenn meine Antwort schlecht geschrieben ist, solange das Endergebnis eine gute Antwort ist. Ich hoffe, es ist jetzt danke für Ihre Hilfe. Ihre eigene Meinung ist die Haltung, die SU bereichert. harrymc vor 5 Jahren 0
@ harrymc Sicheres Ding. Eigentlich gibt es ein paar Punkte (zB gibt es noch keinen Grund, den ausgewählten Thread als Ursache zu wählen). Aber ich würde vorschlagen, dass wir das im Chat machen ?! Albin vor 5 Jahren 0
@Albin: Danke, aber ich ziehe es vor, diesen Beitrag ausruhen zu lassen. Mit den vorliegenden Informationen kann ich es nicht besser machen. harrymc vor 5 Jahren 0
@Harrymc Danke, aber wenn du anbietest zu diskutieren, bist du eine Antwort, es wäre schön, wenn du dabei stehen würdest. Aber am Ende hast du die Wahl. Es wäre einfach schön, wenn Sie die beiden Fehler in Ihrer Antwort korrigieren könnten, damit andere Benutzer nicht verwirrt werden. Schließlich haben Sie viel Ansehen und viele Menschen vertrauen darauf, dass Sie eine Antwort haben. Und danke für alles, was Sie bisher gearbeitet haben! :) Albin vor 5 Jahren 0
0
David Marshall

Es sind nur die Windows 10-Wartungsaufgaben, die gestartet werden, nachdem das System längere Zeit nicht verwendet wurde.

Äh, welche Aufgaben? Wie kann ich sagen? Wie kann ich sie am Laufen hindern? Jez vor 5 Jahren 2
Siehe den Abschnitt "Sicherheit und Wartung" in der alten Systemsteuerung (Sie müssen mit Cortana danach suchen). Dadurch werden Dinge wie Festplattendefragmentierung, Update-Bereinigung usw. gestartet. Sie müssen den Taskplaner durchsuchen, um das zu deaktivieren, was Sie nicht möchten. https://docs.microsoft.com/de-de/windows/desktop/TaskSchd/task-maintenence David Marshall vor 5 Jahren 0
Ich habe sie deaktiviert und das Problem tritt immer noch auf. Jez vor 5 Jahren 0