Xbootmgr bekommt Shutdown-Probleme in den Griff

8. Juni 2010

Treten beim Herunterfahren eines Systems Zeitverzögerungen auf, gelingt es dem Systembetreuer mit Hilfe des Tools Xbootmgr, einen Bericht mit wichtigen Informationen zu erstellen. Diese Daten legt das Programm als XML-Datei ab. Damit hat der Administrator Diagnosemöglichkeiten zur Hand, um eventuelle Schwachstellen aufzuspüren. Die aktuelle Version des Windows Performance Toolkits enthält den Xbootmgr. Es steht durch das Herunterladen des Software Development Kit (SDK) für Windows 7 auf der Microsoft-Website zur Verfügung.

IT-Administratoren stehen oftmals vor dem Problem, dass ein bestimmtes System nicht so schnell wieder hochfährt, wie es eigentlich sollte. Das kann schon mal passieren, wenn die neuesten Sicherheits-Aktualisierungen aufgespielt wurden, und danach ein Server nicht so schnell wieder neu startet. Wenn dann noch Server voneinander abhängig sind, kann sich das durchaus zu einer komplexen Problemstellung entwickeln.

Daher sollte der Administrator diesem Vorgang durchaus Aufmerksamkeit widmen. Möglichkeiten für eine Diagnose dieses langsamer als erwarteten Neustarts ist zum Beispiel über den Einsatz von msconfig.exe machbar. Mit diesem Tool lassen sich alle nicht wichtigen Dienste ausschalten. Das reduziert den Aufwand, um herauszubekommen, welcher Dienst oder welcher Treiber nicht in der passenden Zeit reagiert.

Doch generell empfiehlt sich ein umfassender Blick auf die Shutdown-Statistiken. Die allerdings müssen einfach zu interpretieren sein. Damit bekommt der Administrator einen guten Überblick, wie sich die Systeme schon beim Herunterfahren verhalten.

Ein anderes, besser geeignetes Tool ist im Windows Performance Toolkit enthalten, das Programm Xbootmgr.exe. Diese Software spielt mit Windows Vista, Windows 2008 Server, Windows 7 und Windows 2008 Server Release 2 (R2) zusammen.

Dieses Tool ist in der Lage, einen Bericht zu erzeugen, in dem wichtige Information im Zusammenhang mit dem Herunterfahren des Systems enthalten ist. Diese Infos werden als XML-Datei abgelegt. Damit hat der Administrator eine Diagnosegrundlage zur Hand, um beim nächsten Herunterfahren eventuelle Schwachstellen zu bestimmen. Die aktuelle Version des Windows Performance Toolkits bekommt man durch das Herunterladen des Software Development Kit (SDK) für Windows 7. Es steht auf der Microsoft-Website  zum Download bereit.

Dazu muss man allerdings nicht das komplette SDK beziehen, es reicht, wenn man die aktuellen WPT.exe-Dateien aus diesem doch sehr umfangreichen Download herausnimmt.  Um das Herunterladen zu beschleunigen, empfehlen sich die folgenden Schritte:

  • Auf der Seite zum Windows SDK für Windows 7 und der Seite zur Version 3.5, Servicepack 1 (SP1) des Dotnet-Framework ist auf den Punkt Download zu klicken. Darauf erscheint eine Dialogbox, in der auf Ausführen (Run) zu klicken ist. Danach erscheint der Windows SK Setup Wizard.
  • Anschließend ist die Zustimmung zu den Lizenzbestimmungen (I Agree) zu geben und die Orte für die Zielverzeichnisse anzugeben.
  • Mit einem Klick ist dann zum nächsten Dialog zu gehen und dann erscheint die Options-Seite zur Installation (Installation Options, siehe Abbildung 1). Hier sind dann alle Optionen auszutragen – mit Ausnahme der Win32 Development Tools.
  • Dann ist im nächsten Schritt die Installation zu starten. Sie dauert unterschiedlich lange – je nach der Bandbreite der Internet-Anbindung.

Nachdem das Setup-Programm seine Arbeiten beendet hat, sollten die Dateien im Verzeichnis C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin liegen. Die drei Dateien sind: wpt_ia64.msi, wpt_x64.msi, und wpt_x86.msi.

Bild 2. Der erste Teil der Datei Shutdown_demo1.xml
Bild 3. Der zweite Teil der Datei Shutdown_demo1.xml

Aufzeichnen der Shutdown-Aktionen

Nach dem Herunterladen der Binärdateien muss der Administrator die passende für seine Systeme (je nach CPU-Typ entweder die 64-Bit-Versionen für die AMD-Intel-Prozessoren oder den Itanium beziehungsweise die 32-Bit-Version für die x86-Chips installieren. Ist Xperf installiert, kann er ein Kommandozeilen-Fenster öffnen und dann in das Installationsverzeichnis wechseln.

Standardmäßig ist hier

C:\Users\Admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Microsoft Windows Performance Toolkit

eingestellt. Mit dem folgenden Befehl wird dann sozusagen ein Mitschnitt der Aktionen bei einem Herunterfahren aufgezeichnet – dabei spricht man von einem Shutdown Trace. Bitte beachten: Das Kommando muss auf einer Befehlszeile eingegeben werden – hier erfolgt die Darstellung aufgrund des Anzeigeformats mit Zeilenbrüchen.

C:\xperf\>xbootmgr.exe -trace shutdown -traceflags
   latency+dispatcher -numruns 1 -stackwalk
   Profile+CSwitch

Folgende Parameter sind bei diesem Befehl sinnvoll:
•    -trace shutdown: Damit erfolgt das Mitschreiben der Aktionen beim
       Herunterfahren.
•    -traceflags latency+dispatcher: Damit werden die traceflags in der Latency-
       Kernel-Gruppe aktiviert und zudem noch das Dispatcher-Kernel-Flag. Der
       Administrator kann aber auch das Kommando xperf -help absetzen. Es
       erlaubt das Ansehen der Definitionen für die Trace-Flags.
•    -numruns 1: Setzt die Anzahl der Shutdown-Läufe auf 1.
•    -stackwalk Profile+CSwitch: Diese Parameter aktivieren das Stackwalking
       für Profile and CSwitch. Dieser Schalter ist allerdings erst ab Windows
       Vista verfügbar.

Xbootmgr wird einen ersten Startvorgang ausführen, nach dem sich der Administrator wieder am System anmelden muss. Doch zudem wird ein weiterer Neustart für jeden angegebenen Shutdown Trace (der wird in der Anzahl über den Parameter numruns angegeben) ausgeführt. Ist dann das Tracing beendet – in dem hier gezeigten Beispiel wird das System zweimal neu gestartet – verschwindet das Fenster zum Xbootmgr-Status.

Nach dem zweiten Neustart wird Xperf automatisch die beiden Dateien zu einer zusammenführen. Dazu wird das Programm einige Zeit benötigen – es werden die etl-Dateien mit dem vorbereiteten Dateinamen zu einer Datei zusammengeführt. Dann wird kurz nach dem letzten Neustart  eine einzige Datei vorliegen – sie hört auf den Namen shutdown_latency+dispatcher_1.etl und liegt im Verzeichnis xperf.

Dann lässt sich diese etl-Datei in eine Shutdown-XML-Bericht überführen. Dazu eignet sich der folgende Befehl (auch dieser Befehl muss auf einer Befehlszeile eingegeben werden):

C:\xperf>xperf -i shutdown_latency+dispatcher_1.etl
   -o shutdown_demo1.xml -a shutdown

Die hohe Kunst der Interpretation der Trace-Infos

Im nächsten Schritt gilt es, die Datei shutdown_demo1.xml in einem Browser zu öffnen. Die Abbildungen 2 und 3 zeigen die geöffnete XML-Datei. Der erste Eindruck verdeutlicht, dass eine Formatierung nach dem Prinzip Node-Leaf vorliegt. Dabei kann man einen Knoten (node) erweitern, um mehr Information dargestellt zu bekommen.

In der Abbildung 2 beispielsweise liegt sehr wertvolle Information vor:
Der erste Knoten gibt an, dass die Zeitangaben in Millisekunden vorliegen.
Dann lässt sich die gesamte Shutdown-Zeit erkennen – in diesem Fal sind das 20.761 Millisekunden beziehungsweise 20,76 Skunden, um das System komplett herunterzufahren.

Um die Dienste herunterzufahren sind 5100 Millisekunden (oder 5,1 Sekunden) verstrichen. Die Listings zum Herunterfahren der Applikationen liegen unter dem Knoten perSessionInfo. Dieser Bereich gibt die Shutdown-Zeit für jede Applikation an, die in jeder der Sessions läuft. Ach hier beträgt das Zeitformat Millisekunden.

Des Weiteren liegen in der Datei shutdown_demo1.xml die folgenden nützlichen Infos vor – wie es auch die Abbildung 3 zeigt. Es lässt sich hier bestimmen, welche Dienste nicht reagieren – dabei handelt es sich um alle Dienste, die nicht mehr korrekt mit dem SCM (Service Control Manager) interagieren (sprich der Handshake mit dem SCM schlägt fehl).

Der SCM wartet üblicherweise 20 Sekunden, ehe er diese Dienste beendet, falls sie sich nicht korrekt herunterfahren lassen. In dem hier gezeigten Fall war das nur ein Dienst: WcesComm.exe. Er konnte nicht in den erlaubten 20 Sekunden beendet werden. Weitere Informationen zeigen, wie lange die einzelnen Phasen des Herunterfahrens gedauert haben.

In vielen Fällen wird auch noch interessant sein, sich die Shutdown-Details für jeden Dienst anzeigen zu lassen. Sie liegen unter dem Knoten Services autoStartStartTime. Dabei ist die genaue Zeit zu sehen, die ein Dienst für sein Herunterfahren benötigt.

Langsames Herunterfahren in den Griff bekommen

Beim Einsatz des Xbootmgr.exe gilt es für den Administrator, die Syntax genau zu beachten, um die gewünschten Daten zu ermitteln und sie in einen XML-basierten Bericht zu exportieren. Diese Aussage ist sehr wichtig, denn die Fehlerbehandlung bei Xperf hilft einem in der Regel nicht weiter. Wenn man nur einen klitzekleinen Schreibfehler bei der Eingabe gemacht hat, kommt man diesem Lapsus nur sehr schwer auf die Schliche. Daher enpfiehlt sich der Einsatz einer Stapelverarbeitungs-Datei für diese Kommandos – das macht die Sache weniger fehleranfälliger und zudem erspart sie dem Administrator lästige Tipparbeit.

Ein weiterer Ratschlag bezieht sich auf das Arbeiten mit der Ausgabe in der XML-Datei. Sie enthält eine Vielzahl von Informationen.  Mit Hilfe dieses Beitrags kann sich der Administrator die einzelnen Bereiche der XML-Datei elegant erarbeiten. Damit bekommt er nützliche Infos in die Hand, um den Gründen für die langsamen Shutdowns auf die Spur zu kommen.

Morales/rhh

Lesen Sie auch