Wie kann ich ein Leistungsproblem analysieren, das vor oder während des Anmeldevorgangs auftritt?
Wie kann ich ein Leistungsproblem analysieren, das vor oder während des Anmeldevorgangs auftritt?
Antworten:
Process Monitor ist ein Tool, mit dem Dateisystem-, Registrierungs- und Netzwerkereignisse für alle ausgeführten Prozesse erfasst werden. Die gesammelten Ereignisse können dann analysiert werden, um festzustellen, wie sich ein System (oder eine Anwendung) in bestimmten Situationen intern verhält.
In diesem Fall möchten wir mithilfe des Tools ermitteln, welche Ereignisse während des Startvorgangs lange Zeit in Anspruch genommen haben.
Laden Sie Process Monitor herunter und führen Sie es aus.
Aktivieren Sie im Menü Optionen die Option Startprotokollierung aktivieren .
Aktivieren Sie im daraufhin angezeigten Dialogfeld die Option Profilerstellungsereignisse generieren und klicken Sie auf OK .
Starten Sie das System neu und replizieren Sie Ihr Problem. Starten Sie Process Monitor, sobald der Anmeldevorgang abgeschlossen ist.
Process Monitor benachrichtigt Sie darüber, dass Startaktivitäten erfasst wurden, und fragt Sie, ob Sie diese Daten jetzt speichern möchten. Bestätigen Sie den Vorgang mit Ja .
Wählen Sie einen geeigneten Speicherort für die .pml
Datei und warten Sie, bis die Daten konvertiert wurden. Zeigen Sie nach dem Laden der Daten die Spalte Dauer an , indem Sie das Kontextmenü in einer der Spaltenüberschriften öffnen und auf Spalten auswählen ... klicken.
... und aktivieren Sie das entsprechende Kontrollkästchen im daraufhin angezeigten Dialogfeld.
Erstellen Sie einen neuen Filter, indem Sie im Menü ** Filter die Option Filter ... * auswählen .
Erstellen Sie einen Filter für die Dauer Spalte , wo es mehr als ein Wert von 1 , wobei in diesem Fall sollte der Eintrag wird inklusive . Klicken Sie auf Hinzufügen, um den Filter zur Liste hinzuzufügen und bestätigen Sie die Auswahl mit OK .
Zu diesem Zeitpunkt werden in der Ereignisliste in Process Monitor nur Ereignisse angezeigt, deren Abschluss länger als 1 Sekunde gedauert hat. Sie sollten in der Spalte Dauer nach Ereignissen suchen , deren Abschluss lange gedauert hat.
Zu Demonstrationszwecken finden Sie hier eine Auswahl von Ereignissen, deren Abschluss länger als 10 Sekunden dauerte. Dies wurde zu Demonstrationszwecken in einer virtuellen Maschine erfasst.
Diese Ereignisse müssen nicht unbedingt die Ursache dafür sein, dass der Anmeldevorgang blockiert wurde, aber das Deaktivieren des Windows-Indexdienstes und von Avast Anti-Virus kann bei dieser Installation einen Versuch wert sein.
xperf ist ein Leistungsanalysetool aus dem Windows Performance Toolkit. Die Verwendung und Analyse der gesammelten Daten kann eine Herausforderung sein. Dennoch werden wir sehen, wie die erforderlichen Daten gesammelt und relevante Abschnitte davon angezeigt werden.
Bitte beachten Sie, dass das hierfür erforderliche Windows Assessment and Deployment Kit (ADK) nur unter Windows 7 und höher funktioniert.
Laden Sie das Windows ADK herunter und installieren Sie mindestens die Windows Performance Toolkit- Komponente.
Öffnen Sie nach Abschluss der Installation eine Eingabeaufforderung mit erhöhten Rechten.
Wechseln Sie in ein Verzeichnis, in dem sich Ihr Trace befinden soll. Wie der Desktop.
Die empfohlene Methode (gemäß Verwenden von XBOOTMGR zum Erfassen langsamer Startvorgänge oder langsamer Anmeldungen, die durch langsame Startvorgänge verursacht werden ) zum Erfassen einer Ablaufverfolgung während des Startvorgangs lautet:
xbootmgr -trace boot -traceflags base+latency+dispatcher -stackwalk profile+cswitch+readythread -notraceflagsinfilename -postbootdelay 10
Das System startet nun den Trace und startet neu.
Folgen Sie nach dem Neustart den Anweisungen auf dem Bildschirm. Sie werden aufgefordert, den Erfassungsvorgang zuzulassen. Nach Abschluss des Vorgangs finden Sie die resultierende Ablaufverfolgung in dem Ordner, von dem aus Sie die Ablaufverfolgung initiiert haben.
In meinem Fall hat es einen boot_1.etl
(und einen entsprechenden boot_1.cab
) auf dem Desktop erstellt.
Öffnen Sie die .etl
Datei in Windows Performance Analyzer .
Nachdem Sie den Trace geöffnet haben, sehen Sie bereits mögliche Anzeichen dafür, dass Ihr Problem an die Hardware gebunden ist. Ein kurzer Blick auf die Übersichten zu Berechnung , Speicherung und Speicher im Graph Explorer würde Peaks anzeigen, die weiter analysiert werden sollten.
Schauen wir uns zu Demonstrationszwecken das Diagramm Auslastung nach Prozess an . Um den Inhalt anzuzeigen, doppelklicken Sie einfach auf das Diagramm, um es der Analyseansicht hinzuzufügen .
Beachten Sie, dass in keinem der Diagramme Spitzenwerte angezeigt werden. Die blauen Peaks am Start gehören zum Systemprozess und werden voraussichtlich zu diesem Zeitpunkt auftreten.
Die anderen Peaks im CPU-Auslastungsdiagramm werden möglicherweise im Kontext besser angezeigt. Fügen wir also der Analyseansicht ein weiteres Diagramm hinzu. Das Diagramm, nach dem wir suchen, ist das Diagramm " Startphasen" , das sich im Abschnitt " Systemaktivität " befindet.
Im obigen Screenshot habe ich außerdem das Diagramm " Allgemeine Ereignisse" unten hinzugefügt , um zusätzlichen Kontext bereitzustellen. Hierbei ist jedoch zu beachten, dass der erste sichtbare Spitzenwert der CPU-Auslastung vom Avast-Dienst verursacht wurde. In der Prozessmonitor-Analyse haben wir bereits festgestellt, dass dieser Prozess einer der Prozesse ist, die beim Booten viel Zeit in Anspruch genommen haben.
Was wir auch hier sehen, jetzt, da wir es im Kontext der Startphasen sehen können, ist, dass der Peak nach der Winlogon Init- Phase (und sogar in der Post Boot- Phase, wenn Sie den Desktop bereits sehen können) aufgetreten ist. Es kann daher als unwahrscheinlich angesehen werden, dass dieser Prozess tatsächlich ein Problem in der Phase verursacht, bevor der Desktop angezeigt wird.
Was wir suchen würden, sind Ereignisse, die in oder um die Winlogon Init- Phase stattfinden. Um dies zu vereinfachen, können Sie die Phase im Diagramm "Startphasen" auswählen. Dadurch werden alle Einträge in allen Diagrammen hervorgehoben, die in dieser Phase aufgetreten sind.
Ein Diagramm, das Sie genauer betrachten sollten, ist sicherlich das Diagramm " Dienste" , da die meisten von ihnen während der Winlogon Init-Phase gestartet werden.
Wie bereits in der Einleitung erwähnt, kann die Analyse dieser Daten kompliziert sein, es sei denn, das Problem tritt sofort auf, wenn Sie den Trace öffnen. Dies ist jedoch definitiv das richtige Werkzeug, um das Problem zu analysieren. Je nach Situation möchten Sie möglicherweise sogar Stapelspuren sammeln, um noch tiefer zu bohren. Dieser Vorgang liegt jedoch weit außerhalb des Rahmens dieses Beitrags.