Wie kann ich den Schuldigen für mein langsames Herunterfahren von Windows identifizieren?


30

Das Herunterfahren meines Computers dauert sehr lange.

Wie kann ich den Täter identifizieren? Ich möchte nicht Minuten warten, bis mein Computer heruntergefahren ist ...

Gibt es ein Programm, mit dem ich nachverfolgen kann, wie lange das Herunterfahren dauert?


1
Wir haben keine Ahnung, wie Ihr System eingerichtet ist und was möglicherweise im Hintergrund ausgeführt wird
zufällig

1
OK ... Ich habe gesehen, dass jemand anders danach gefragt hat, und habe es dann gelöscht, als ich eine sehr lange und vollständige Antwort verfasst habe ... (
Hat

Sie können es immer für das Blog vorschlagen
zufällig

2
Halten Sie den Netzschalter einige Sekunden lang gedrückt.
Daniel R Hicks

5
Diese Frage ist gültig, ich kann sie objektiv beantworten, damit sein Problem gelöst ist. Es gibt nichts Zweideutiges (das Problem ist, dass sein Herunterfahren zu lange dauert), Ungenaues (er möchte das Herunterfahren beschleunigen), Unvollständiges (Details sind nicht erforderlich, natürlich ist jeder Computer anders, aber das macht die Technik nicht aus den Täter anders zu identifizieren), zu weit gefasst (das könnte man meinen, aber ich sehe keine andere Frage zur Fehlerbehebung, so dass dies eine wirklich wertvolle Frage ist; ich denke, es wäre weit gefasst, wenn er andere Dinge beschleunigen möchte ) oder rhetorisch (Es geht um Xperf).
Tamara Wijsman

Antworten:


31

Windows bietet Leistungsindikatoren sowie die Ereignisablaufverfolgung, mit deren Hilfe Anwendungen Leistungsanalysen durchführen können, um die Ursache von Leistungsproblemen genau zu bestimmen. Es gibt unter anderem ein herausragendes Toolkit: das im Windows SDK verfügbare Windows-Leistungs-Toolkit .

In diesem Toolkit finden Sie xbootmgr.exeInformationen zur Windows-Analyse der On / Off-Übergangsleistung .

Obwohl das oben verlinkte Dokument alle Details für jeden Ein / Aus-Übergang enthält, finden Sie hier die allgemeine Idee xbootmgrzum Nachverfolgen und Analysieren des Shutdown-Übergangs mithilfe der Xperf-GUI:

  1. Laden Sie das Windows SDK herunter und installieren Sie dann das Windows Performance Toolkit.

  2. Öffnen Sie eine Eingabeaufforderung als Administrator und führen Sie Folgendes aus:

    cd %ProgramFiles%\Microsoft Windows Performance Toolkit

  3. Wenn Sie in Zukunft helfen möchten, können Sie eingeben , xbootmgr -helpsowie xperf /?.

  4. Führen Sie einen Neustart-Trace wie folgt durch:

    xbootmgr -trace shutdown -traceFlags BASE+DIAG+LATENCY -noPrepReboot

  5. Nach dem Start wird innerhalb von zwei Minuten ein Trace generiert.

  6. Der Trace wurde in gespeichert %ProgramFiles%\Microsoft Windows Performance Toolkit, Sie können ihn darauf ziehen xperf.exeund er wird in einer GUI geöffnet.

  7. Sie sehen eine grafische Benutzeroberfläche mit verschiedenen Diagrammen. Mit dem Pfeil auf der linken Seite können Sie Diagramme hinzufügen / entfernen.

  8. Schauen Sie sich die Diagramme an und sehen Sie, ob Sie ungewöhnliche Objekte identifizieren können. Sie können ein Intervall auswählen und es vergrößern, wenn Sie möchten. Rechtsklicke und entpacke, wenn du das Ganze sehen willst.

  9. Für jedes Diagramm können Sie mit der rechten Maustaste klicken, um Übersichtstabellen für das aktuell ausgewählte Intervall abzurufen .

  10. Sortieren Sie in diesen Tabellen nach Gewicht oder nach Zeit, um herauszufinden, für wen die meisten Ausgaben anfallen. Beachten Sie, dass Sie Spalten verschieben können. In der E / A-Tabelle können Sie beispielsweise den Prozess mit der höchsten Verwendungsrate sowie den Pfad mit der höchsten Verwendungsrate auschecken.

    Der Teiler (eine gelbe Kopfzeile) bewirkt, dass die Spalten rechts davon die Gesamtsumme für die Spalten links davon anzeigen. Wenn Sie also erst Path und dann Process haben, können Sie den Baum für eine Datei öffnen, um zu sehen, auf welche Prozesse zugegriffen wurde, und dann die Summen für diese Prozess- / Dateikombination abrufen.

  11. Weitere Informationen zur Funktionsweise der Grafiken und Tabellen finden Sie hier .

  12. Wenn Sie irgendwie nach unten gehen müssen, um die Stapelspuren zu untersuchen; Führe einen weiteren Boot-Trace durch und hänge den -stackWalk profileParameter an, setze den _NT_SYMBOL_PATH und klicke mit der rechten Maustaste auf ein beliebiges Diagramm und aktiviere "Load Symbols". Auf diese Weise können Sie überprüfen, welche Funktionen tatsächlich aufgerufen werden. Im Allgemeinen benötigen Sie dies jedoch nicht für ein Herunterfahren. Es kann jedoch Dinge wie die Feststellung zulassen, dass Ihre Firewall Ihren Debugger als Programmierer stört. Ziemlich geschickt ...

Viel Glück, ich hoffe, Sie können den Täter finden. Wenn nicht, dann hinterlassen Sie die Spur und wir werden nach Ihnen suchen ...

Bitte beachten Sie, dass DPCs verzögerte Prozeduraufrufe und Interrupts Software-Interrupts sind , die sich beide auf Treiber / Hardware beziehen.


1
Erstaunlich nützliche Antwort. Alle Tutorials zu ETW sind außerordentlich nützlich. Es ist ein Bereich von Windows ohne Dokumentation und ohne Anleitung.
Ian Boyd

@ Tom Wijsman Links müssen aktualisiert werden
Moab

Jetzt ist es Teil des Windows Assessment and Deployment Kit. Ein Link kann z. B. unter msdn.microsoft.com/en-us/windows/hardware/commercialize/test/… oder einfach durch Suchen nach "Windows ADK" gefunden werden. Während der Installation kann lediglich das Performance Toolkit ausgewählt werden.
Andreas Reiff

Jetzt ist es auch Teil ..., weil es noch im SDK verfügbar ist.
Tamara Wijsman

22

Meine Abschaltungen haben lange gedauert. Was folgt, ist mein Beispiel mit Toms Antwort .

Das erste Diagramm zeigt das Problem, Disk I / O :

Bildbeschreibung hier eingeben

Mein Herunterfahren dauert über eine Minute und es ist alles Festplatten-I / O.

Das nächste Diagramm, Datenträgerauslastung, zeigt, dass ein Laufwerk bei 100% Auslastung nahezu ausgelastet ist:

Bildbeschreibung hier eingeben

Das letzte Diagramm zeigt die Datenträgernutzung nach Prozess :

Bildbeschreibung hier eingeben

Nach unten filtern, ich stelle fest, es ist alles verursacht durch WinInit.exe:

Bildbeschreibung hier eingeben

Wenn Sie mit der rechten Maustaste auf eine der Festplattengrafiken klicken und " Übersichtstabelle" auswählen , werden die Details angezeigt, auf welche Dateien durch welchen Prozess zugegriffen wurde:

Bildbeschreibung hier eingeben

56,4 Sekunden meines Herunterfahrens verbrachte WinInitich damit, 6,7 GB an zu schreiben C:\hiberfil.sys.


Aber die Frage ist, warum Windows beim Herunterfahren in meine Ruhezustandsdatei schreibt .

Dann fiel mir eine Option ein, die ich aktiviert hatte, um diese Auslagerungsdatei beim Herunterfahren zu löschen:

  • Start -> Ausführen -> SecPol.msc
    • Sicherheitseinstellungen, Lokale Richtlinien, Sicherheitsoptionen
    • Herunterfahren: Auslagerungsdatei des virtuellen Speichers löschen

Bildbeschreibung hier eingeben

Also habe ich die Option deaktiviert und xbootmgrerneut ausgeführt. Jetzt ist mein Herunterfahren 22 Sekunden:

Bildbeschreibung hier eingeben

Nun wird 9sder 22sShutdown durch SystemSchreiben in eine unknownDatei verbracht. Das könnte mehr Nachforschungen wert sein.

Aber jetzt habe ich meine anderthalb Minuten Abschaltung gelöst.


Ich ging weiter und löste meine 22s langsame Abschaltung. Von t = 12st = 21szeigte eine 100% Datenträgerauslastung , aber Null Disk I / O . Es war verwirrend.

Bis ich während eines Herunterfahrens das bekannte Geräusch eines meiner Laufwerke hörte, das sich drehte. Das Herunterfahren wurde 9 Sekunden lang angehalten, da Windows versuchte, auf eine Festplatte zuzugreifen, die sich im Ruhezustand befunden hatte. Neun Sekunden später reagiert das Laufwerk und einen Moment später schaltet sich die Maschine aus.

Ironischerweise weckt Windows einen Datenträger, um ihm mitzuteilen, dass es Zeit ist, einzuschlafen.

Das würde meine tatsächliche Abschaltung 13,5 Sekunden machen. Das könnte eine genauere Untersuchung wert sein. Aber jetzt habe ich meine 22 Sekunden Abschaltung gelöst.


1
+1 Schön, dass du es in deinem Fall gelöst hast, und einen schönen Beitrag!
Tamara Wijsman

1
Diese Antworten verdienen einen Blogeintrag, oder? ;)
Ivo Flipse
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.