Windows Server 2003: Performanceanalyse

01.01.2007 von Martin Kuppinger
Der abschließenden Beitrag zu dieser Artikelserie greift zunächst das im vorangegangenen Teil bereits kurz angesprochene Utility ttcp noch einmal auf. Anschließend wird das ETW (Event Tracing for Windows) näher betrachtet, eine Funktionalität, die sich an Entwickler richtet.

Wie schon im dritten Teil der Serie angesprochen wurde, ist die Zahl an Tools zur Analyse der Performance von Windows-Systemen beachtlich. Viele sind aber in ihrer Funktionalität schwächer als die Standardfunktionen im Betriebssystem, die ja – wie im letzten Heft ausgeführt – mit Windows Vista noch einmal ausgebaut wurden.

Einige Tools sind auch deshalb wirklich interessant und hilfreich, weil sie entweder Aspekte analysieren, die man mit den Bordmitteln so nicht untersuchen kann, weil sie einfacher in ihrer Nutzung sind oder weil sie Informationen in einer anderen und für spezielle Aufgaben geeigneteren Zusammenstellung liefern. Einige dieser Tools wurden im Rahmen der Artikelserie bereits besprochen. Nachfolgend richten wir unser Augenmerk auf ttcp und ETW.

ttcp

Das Tool ttcp (Test TCP) wurde ursprünglich von BSD entwickelt. Die erste Version stammt bereits von 1984. Inzwischen wurde das Werkzeug für verschiedene Plattformen weiterentwickelt. Die Portierung für Windows Sockets war wsttcp, das aber nicht mehr verfügbar ist. Eine andere Implementierung ist pcattcp, die im Test verwendet wurde.

Diese Implementierung kann von www.pcausa.com/Utilities/pcattcp.htm geladen werden. Das Tool muss auf zwei Windows-Systemen eingerichtet werden. Auf dem einen der beiden Systeme wird der Empfang mit pcattcp –r aktiviert. Dieses System ist Listener und wartet, bis ein anderes System Testdaten überträgt

Das andere System, der Sender, kann diese mit pcattcp –t x.x.x.x senden, wobei x.x.x.x für die IPAdresse steht. Der Test dauert nur kurz. Als Ergebnis werden auf beiden Seiten Informationen angezeigt.

Bild 1: Die Informationen beim Sender von ttcp.

Bild 1 zeigt den Status beim Sender. Es wird angezeigt, an welches System Daten übertragen werden. Weitere Informationen zeigen die Puffergröße und insbesondere die Statistik an.

Test der TCP/IP-Performance

Das ist natürlich innerhalb eines lokalen Netzwerks bei normaler Arbeitsweise nicht so spannend. Wenn man die Ergebnisse aber mit Daten vergleicht, die zwischen zwei weit entfernten Systemen übertragen werden, gibt es doch interessante Unterschiede. Außerdem kann das Tool nach der Eingrenzung von potenziellen Fehlerquellen beispielsweise über tracert auch für die weitere Analyse von Kommunikationsproblemen im Netzwerk eingesetzt werden.

Bild 2: Die Anzeige beim Empfänger von Informationen von ttcp.

Bild 2 zeigt, wie sich die Übertragung beim Empfänger darstellt. Hier werden vergleichbare Daten ausgegeben. Bei der Übertragung kann es aber kleinere Unterschiede geben, weil es einmal um das Senden der Daten vom Empfänger zum Sender und das andere Mal in umgekehrter Richtung geht. Es gibt noch verschiedene andere Parameter, die unter dem oben genannten URL erläutert sind. Für die grundlegenden Tests der TCP/IP-Performance sind die beiden Basisparameter aber vollkommen ausreichend.

ETW

Ein weiteres interessantes Werkzeug im Bereich der Performanceanalyse ist ETW (Event Tracing for Windows). Diese Anwendung unterstützt Entwickler, die damit Traces durchführen, um eine Anwendung genau zu analysieren. Anwendungen lassen sich auch erweitern, um Trace-Informationen zu senden. Für das Debugging sind solche Erweiterungen wichtig. ETW ist eine Lösung für Entwickler von User-Mode-Anwendungen, die in C oder C++ entwickeln.

Bild 3: Die Architektur von ETW. (Quelle: Microsoft)

Für Kernel-Mode- Anwendungen gibt es mit dem WPP Software Tracing aus dem Windows Driver Kit (WDK) eine erweiterte Lösung, die ETW nutzt, aber zusätzliche Komponenten benötigt. Generelle Informationen zu ETW finden sich online bei Microsoft.

Komponenten von ETW

ETW arbeitet mit drei Komponenten (Bild 3). Die Controller starten und beenden Sessions. Provider stellen die Ereignisse bereit. Consumer verarbeiten die Informationen. Alle drei Typen von Anwendungen können selbst entwickelt werden, auch wenn es im MSDN einige Beispiele gibt, wie solche Anwendungen realisiert werden können. Mit dem dort vorhandenen Code lassen sich wichtige Teile umsetzen, ohne sich selbst allzu viel Mühe machen zu müssen.

Die Verarbeitung von Ereignissen kann sowohl realtime als auch über eine Logdatei erfolgen. Beide Ansätze lassen sich auch parallel nutzen. Inzwischen bietet auch.NET 2.0 eine Unterstützung für ETW, die als Adapter für ADO realisiert ist. Damit lassen sich Ereignisse bei Zugriffen auf Datenbanken besser protokollieren. Die Verarbeitung von Ereignissen wird auf dieser Ebene auch deutlich einfacher. Wer sich intensiver mit ETW beschäftigen möchte, der sei auf den ersten der in diesem Abschnitt genannten Links verwiesen. Unterhalb der darüber aufgerufenen Startseite finden sich die wichtigsten Informationen rund um ETW.