Wie analysiere ich die übermäßige CPU-Auslastung im Windows-Kernelmodus?

8

Mein Windows XP-Computer hat vor kurzem begonnen, mich bei jedem ungeraden Neustart nach einigen Minuten der Nutzung halb einzufrieren (verschiedene Programme / überhaupt kein zusätzlicher Programmstart).


Update: Ich habe es jetzt geschafft, mit Process Explorer ein bisschen mehr Details zu bekommen. Dies ist eine 2-Kern-CPU und die 100% ige Kernel-Nutzung erfolgt nur auf einem Kern. Die Prozessliste zeigt DPCs - Aufgeschobene Prozeduraufrufe zu 50% (das sind 100% auf einem Kern). Die Frage ist also jetzt: ** Was ist DPC und wie behebe ich sie?


Nächstes Update : OKIES ... mit diesem und jenem konnte ich xperf unter Windows XP zum Laufen bringen, und die Beispiel-Dumps, die ich erstellt habe, werden auf meinem Win7-Laptop einwandfrei angezeigt. Ja, Sie benötigen einen Win7 / Vista-Computer, um die unter Windows XP erstellten Speicherauszüge anzuzeigen. Allerdings bin ich jetzt folgendes Problem konfrontiert, kann ich ermöglichen xperf Tracing , xperf -on Latencyund das Problem nun auch reoccurred während xperf Verfolgung war, aber sobald mein DPC auf 100% geht, wird Windows keine neuen Prozesse starten (oder deren Der Start wird nie beendet.) (Ein geöffnetes z. B. Cmd-Fenster reagiert weiterhin einwandfrei , aber jede Exe, die Sie ebenfalls aufrufen, hängt nur (dirfunktioniert einwandfrei, da dies ein cmd-Befehl ist) - Ich kann nur annehmen, dass er CreateProcessmit einem Teil des Kernels hängt). Wenn ich jetzt keinen neuen Prozess starten kann , kann ich ihn nicht ausführen xperf -d dumpfile.etl, da er nur hängt , wenn ich ihn in das Cmd-Fenster eingebe .

Es scheint also, dass ich hier kein Glück habe. Ich würde lieber das ganze Rig rausschmeißen, als die Treiber manuell zu deaktivieren ... :-)

Alle anderen Ideen geschätzt!


Das heißt, während Windows theoretisch reagierte (z. B. bewegte sich der Mauszeiger normal und ich konnte klicken, und der Klick wurde schließlich erkannt), wurden die vom Benutzer ergriffenen Aktionen erst nach Minuten (im wahrsten Sinne des Wortes) beantwortet.

Beispiel: Wenn Sie die Num-Lock-Taste auf der Tastatur drücken, wird normalerweise die Num-Lock-LED auf der Tastatur umgeschaltet. Dies ist auch bei meiner halbgefrorenen Maschine der Fall, jedoch erst nach ein oder zwei Minuten.

Einmal gelang es mir, Process Explorer zu starten, und nach einigen Minuten zeigte das Systeminformationsdiagramm deutlich an, dass die CPU auf der roten Linie (Kernelmodus) zu 100% ausgelastet war und die grüne Linie auf Null blieb. In diesem Zustand konnte die Maschine nicht mehr betrieben werden, obwohl das Diagramm noch auf dem Bildschirm aktualisiert wurde. (Nun, es sei denn, Sie sind bereit, nach jedem Klick einige Minuten zu warten.)

Jetzt frage ich mich also, was das Problem sein könnte, da ich wochenlang nichts Neues auf diesem Computer installiert habe, schon gar nicht, bevor ich dieses Verhalten gesehen habe. (Ein Neustart hilft manchmal, manchmal muss ich einen zweiten oder dritten Neustart durchführen, bevor der Computer für einen längeren Zeitraum verwendet werden kann.)

Nun, wie kann ich herausfinden, was tatsächlich ist die übermäßige Kernel - Modus - Nutzung verursacht?


Hinweis: Dies wurde auch in den sysinternals-Foren veröffentlicht .

Martin
quelle
Ein Weg wäre, den Prozess der Beseitigung zu nutzen. Führen Sie unter XP das Programm MSCONFIG aus, gehen Sie zur Registerkarte STARTUP und deaktivieren Sie alle. Starten Sie dann neu und prüfen Sie, ob dies das Problem behebt. Wenn dies nicht der Fall ist, versuchen Sie es mit einem Programm wie AUTORUNS oder HijackThis und werden Sie aggressiver in Bezug auf die Beseitigung. Sobald Sie die Operationen wieder hergestellt haben, aktivieren Sie die Dinge nacheinander wieder. 90% des Mistes, der beim Start läuft, ist nicht notwendig, die anderen 10% sind Junkware :-)
Psycogeek
@ Psycogeek - geschätzt. Ich würde das lieber nicht tun, da das Tage dauern würde, die ich nicht habe :-)
Martin
ahh, es sind Minuten, um Start-Junk zu deaktivieren, es sind Tage, um Gerätetreiber zu deaktivieren :-) Wenn ich versuche, Ihr Problem mit Ihren ganzen Hinweisen zu lösen, klingt es tatsächlich eher nach Viren. könnte aber leicht ein Gerät sein, das nicht reagiert. Haben Sie irgendwelche Dinge, die extern stecken und vorübergehend entfernt werden können? Haben Sie eine Überprüfung der Festplatten durchgeführt, z. B. einen SMART-Test der Laufwerke? um zu sehen, ob Sie irgendwelche Hinweise darauf bekommen?
Psycogeek
Ok, jetzt (dpc) muss ich das Zeug hier überprüfen: superuser.com/q/202254/50211 und sehen, ob ich dem auf den Grund gehen kann.
Martin
Was war das Ergebnis?
stej

Antworten:

2

Mit einem Tool wie LatencyMon ( http://www.resplendence.com/latencymon ) können Sie herausfinden, welche DPC-Routine das Einfrieren verursacht . Suchen Sie einfach nach der DPC-Routine, die die längste Gesamtzeit benötigt.

Null3
quelle
Offensichtlich funktioniert LatencyMon unter Windows XP nicht. Die Frage bezieht sich auf ein Leistungsproblem im Windows XP-System.
Edward
Das war mir nicht bewusst - danke. Mein Vorschlag ist jedoch immer noch der gleiche - verwenden Sie stattdessen einfach ein anderes Programm. Ein Beispiel: DPC Latency Checker ( thesycon.de/deu/latency_check.shtml ).
Zero3
Tatsächlich sind die Funktionen von LatencyMon für Endbenutzer weitaus besser / einfacher zu verwenden als Latency Checker. LatencyMon-Analysesystem und bieten sehr detaillierte Informationen, bis zu welchem ​​Grad der Treiber die meisten Ressourcen verbraucht, was die Systemleistung am schlechtesten beeinflusst. Eine andere Seite, Latency Checker, zeigt nur ein Diagramm an, das nur die grundlegendsten Informationen enthält. Das ist Ihr System ohne DPC-Latenz oder nicht. Weitere Arbeiten liegen ganz bei Ihnen. Ich habe Probleme, ein gleichwertiges / ähnliches Tool für XP zu finden, das genauso funktioniert wie LatencyMon.
Edward