Performanceanalyse

10.03.2007 von Martin Kuppinger
Thema des Beitrags sind die ergänzenden Tools für die Performanceanalyse aus dem Resource Kit und die Support Tools, die in Verbindung mit der Anwendung Leistung oder als Ergänzung zu dieser zum Einsatz kommen.

Bei den Resource Kit Tools und den Windows Support Tools findet sich eine beachtliche Reihe von Werkzeugen, mit denen die Performance des Systems und des Netzwerks analysiert werden kann. Diese Werkzeuge bieten in der Regel Funktionen, die sich mit dem Systemmonitor entweder nicht oder nicht so effizient oder detailliert ausführen lassen. Nachfolgend werden diese Tools, beginnend bei den Resource Kit-Tools, der Reihe nach besprochen.

Clearmem.exe

Dieses Tool ist eine Befehlszeilenanwendung, mit der der verfügbare Speicher soweit wie möglich gefüllt wird. Anschließend wird der Speicher wieder freigegeben, sodass eine normale Systemnutzung möglich ist. Die zweimalige Ausführung von Clearmem führt dazu, dass die meisten anderen Anwendungen aus dem Speicher entfernt werden. Das Tool kann auch zur Simulation von Situationen mit einer besonders hohen Speicherauslastung eingesetzt werden.

Consume.exe

Dieses als Memory Consumers Tool bezeichnete Werkzeug dient ebenfalls dazu, Speicher zu belegen. Dabei kann aber deutlich gezielter vorgegangen werden, indem unterschiedliche Speicherbereiche gefüllt werden. Der Haupteinsatzbereich liegt beim Test von Anwendungen in Situationen mit wenig verfügbaren Speicherressourcen. Man kann es aber auch einsetzen, um die Auswirkung von steigendem Speicherbedarf auf Anwendungen zu simulieren.

Dh.exe

Das Tool Display Heap zeigt die Nutzung des Heaps (Speicherstrukturen für die temporäre Ablage programmspezifischer Informationen) durch Anwendungen im User Mode an. Außerdem kann der Heap ebenso wie andere Objekte gesperrt werden. Daneben lassen sich auch Informationen über die mögliche Speichernutzung durch laufende Anwendungen ermitteln.

Kernrate.exe

Dieses Werkzeug analysiert die Prozessornutzung durch Kernel-Mode- und User-Mode-Prozesse. Es ermittelt, welche Prozesse einen potenziellen Engpass im System darstellen.

Linkspeed.exe

Wie der Name schon sagt, kann mit diesem Werkzeug die Geschwindigkeit der Netzwerkverbindung zwischen zwei Systemen ermittelt werden.

Memmonitor.exe

Das Tool ist eine weitere Lösung für die Analyse der Speichernutzung. Es ist wiederum vor allem für Entwickler interessant, weil das Programm durch einen Debugger bearbeitet wird, wenn eine definierte Grenze der Speichernutzung erreicht ist. Es eignet sich also vor allem zur Überwachung von Anwendungen mit steigendem Speicherkonsum.

Memtriage.exe

Auch dieses Werkzeug ist auf die Erkennung von Speicherlecks ausgerichtet. Es sammelt Informationen über die Nutzung des Kernel-Pools und speichert die Informationen in einer Logdatei. Diese kann wiederum mit dem Tool analysiert werden, als Ergebnis gibt es umfangreiche diagnostische Informationen aus.

Ntimer.exe

Diese Anwendung wird auch als Windows Program Timer bezeichnet und misst, wie lange ein Programm ausgeführt wird. Dabei wird angegeben, wie viel Zeit die Anwendung im User Mode und im Kernel Mode verbracht hat.

Oh.exe

Mit dieser Anwendung werden Informationen über alle offenen Handles aller offenen Fenster oder eines Programms ausgegeben. Die Funktion ist vor allem hilfreich, um einen Prozess zu ermitteln, der eine Datei geöffnet hält, wenn es zu einem Konflikt beim gemeinsamen Zugriff auf die Datei kommt.

Pfmon.exe

Der Page Fault Monitor ermittelt die Seitenfehler, die bei der Ausführung von Anwendungen auftreten.

Pmon.exe

Ein weiteres Befehlszeilen-Tool ist pmon.exe. Damit werden verschiedene Informationen zur CPUund Speichernutzung laufender Prozesse ermittelt.

Showperf.exe

Das Performance Data Block Dump Utility (Bild 1) ist eines der wenigen Werkzeuge mit grafischer Benutzerschnittstelle. Es kann die unformatierten Performancedaten von verschiedenen installierten Zählern im System ermitteln und anzeigen. Das Tool ist vor allem hilfreich, um Probleme bei der Verarbeitung von Zählern zu erkennen. So wird beispielsweise schnell sichtbar, ob ein Zähler geladen wird oder nicht. Für Entwickler eigener Leistungsindikatoren eignet sich das Werkzeug auch, um gegebenenfalls Korrekturen an der eigenen Anwendung vorzunehmen.

Bild 1: Die Ausgabe des Performance Data Block Dump Utility.

Exctrlst.exe

Bei den Support Tools gibt es deutlich weniger Performancetools. Eines davon ist die Extensible Performance Counter List. Es ermittelt eine Liste aller Dienste und Anwendungen, die eigene Leistungsindikatoren bereitstellen. Die Daten dafür werden aus der Registry gelesen, ohne dass die Indikatoren und die ihnen zugrunde liegenden DLLs geladen werden müssen (Bild 2).

Bild 2: Die Liste der Dienste und Anwendungen, die Leistungsindikatoren bereitstellen.

Zu den Informationen gehört auch die Angabe der DLL, die dafür verwendet wird. Damit lässt sich einfach ermitteln, welche DLLs vom Systemmonitor verwendet werden.

Gflags.exe

Mit dem Global Flags Editor, einer älteren Anwendung, können umfassende Debugging-Funktionen aktiviert werden. Teilweise werden die Debugging-Funktionen nur für die aktuelle Sitzung gesetzt, teilweise auch in der Registry gespeichert und beim nächsten Systemstart wieder aktiv. Die Informationen sind vor allem für Entwickler relevant, die mit Debuggern arbeiten, um die so erfassten Informationen auszuwerten.

Bild 3: Mit gflags.exe kann ein differenziertes Debugging des Systems erfolgen.

Pviewer.exe

Schließlich gibt es noch den Process Viewer als grafisches Werkzeug, das Informationen über laufende Prozesse anzeigt (Bild 4). Das Tool ist für viele Anforderungen übersichtlicher und detaillierter als der Task-Manager und schneller in der Nutzung als der Systemmonitor, kann aber keine Aufzeichnungen über einen längeren Zeitraum durchführen.

Bild 4: Der Process Viewer zeigt Detailinformationen zu Prozessen an.

Fokus auf Entwickler

In der Summe gibt es eine beachtliche Zahl von Werkzeugen, die sich für eine tiefergehende Performanceanalyse eignen. Allerdings sind die meisten Anwendungen für Entwickler gedacht, da sie auch detaillierte Informationen über den Code voraussetzen, um die ermittelten Daten sinnvoll nutzen zu können.

Wie geht es weiter?

Der dritte Teil wird sich mit frei verfügbaren Werkzeugen für das Benchmarking und ihre Nutzung mit dem Windows Server 2003 beschäftigen. Ein Beispiel ist DirectoryMark für die Messung der Performance des Active Directory. Dabei wird sowohl die Vorbereitung der Systeme als auch die Nutzung der Tools besprochen.