Handbuch zur dynamischen Ablaufverfolgung in Solaris

Vorwort

DTrace ist ein umfassendes Framework für die dynamische Ablaufverfolgung im Betriebssystem Solaris™. DTrace bietet eine leistungsfähige Infrastruktur, die es Administratoren, Entwicklern und Wartungspersonal ermöglicht, beliebige Fragen zum Verhalten des Betriebssystems und der Benutzerprogramme zu beantworten. Im Handbuch zur dynamischen Ablaufverfolgung in Solaris wird beschrieben, wie sich das Systemverhalten mithilfe von DTrace beobachten, debuggen und abstimmen lässt. Darüber hinaus enthält dieses Buch einen vollständigen Referenzteil zu den in DTrace integrierten Beobachtungstools und zur Programmiersprache D.


Hinweis –

Dieses Solaris-Release unterstützt Systeme auf der Basis der Prozessorarchitekturen SPARC® und x86: UltraSPARC®, SPARC64, AMD64, Pentium und Xeon EM64T. Die unterstützten Systeme können Sie in der Solaris 10 Hardware-Kompatibilitätsliste unter http://www.sun.com/bigadmin/hcl nachlesen. Eventuelle Implementierungsunterschiede zwischen den Plattformtypen sind in diesem Dokument angegeben.

Die Bezeichnung „x86” in diesem Dokument bezieht sich auf 64-Bit- und 32-Bit-Systeme mit AMD64- oder Intel Xeon-/Pentium-kompatiblen Prozessoren. Informationen zu unterstützten Systemen finden Sie in der Solaris 10 Hardware-Kompatibilitätsliste.


Zielgruppe dieses Handbuchs

Wenn Sie schon immer einmal das Verhalten Ihres Systems verstehen wollten, ist DTrace das richtige Tool für Sie. DTrace ist eine in Solaris integrierte, umfassende Einrichtung für die dynamische Ablaufverfolgung. DTrace kann sowohl zur Untersuchung des Verhaltens von Benutzerprogrammen als auch des Betriebssystemverhaltens eingesetzt werden. Das Framework ist zur Verwendung durch Systemadministratoren oder Anwendungsentwickler bestimmt und eignet sich für den Einsatz auf laufenden Produktionssystemen. DTrace bietet Ihnen die Möglichkeit, Ihr System genau zu durchleuchten, um seine Funktionsweise zu verstehen, Leistungsprobleme auf den verschiedensten Softwareebenen aufzuspüren oder die Ursachen von Fehlverhalten zu ermitteln. Wie Sie sehen werden, können Sie mit DTrace Ihre eigenen Programme für die dynamische Instrumentation des Systems und zur Ausgabe sofortiger, prägnanter Antworten auf beliebige Fragen schreiben, die Sie in der DTrace-Programmiersprache D formulieren.

Alle Solaris-Benutzer können mit DTrace:

Solaris-Entwickler und Administratoren können mit DTrace:

In diesem Handbuch erfahren Sie alles, was Sie über die Arbeit mit DTrace wissen müssen. Wenn Sie über Grundkenntnisse in einer Programmiersprache wie C oder einer Skriptsprache wie awk(1) oder perl(1) verfügen, können Sie sich DTrace und die Programmiersprache D zwar sicherlich schneller aneignen, Sie müssen jedoch kein Experte auf einem dieser Gebiete sein. Unter Weiterführende Informationen sind Dokumente aufgeführt, die sich für Sie als hilfreich erweisen können, wenn Sie noch nie ein Programm oder Skript geschrieben haben.

Aufbau dieses Handbuchs

Kapitel 1Einführung stellt eine Blitztour durch das gesamte DTrace-Framework und eine Einführung in die Programmiersprache D dar. Kapitel 2Typen, Operatoren und Ausdrücke, Kapitel 3Variablen und Kapitel 4D-Programmstruktur behandeln dann die Grundlagen von D ausführlicher und erläutern, wie D-Programme in dynamische Instrumentierung umgewandelt werden können. Es empfiehlt sich für alle Leser, diese erste Kapitelgruppe durchzulesen.

Kapitel 5Zeiger und Vektoren, Kapitel 6Zeichenketten, Kapitel 7Strukturen und Unionen und Kapitel 8Typ- und Konstantendefinitionen behandeln die übrigen Sprachmerkmale von D, von denen die meisten C-, C++- und JavaTM-Programmierern vertraut sein dürften. Leser, die mit keiner dieser Sprachen vertraut sind, sollten diese Kapitel lesen. Erfahrenere Programmierer können direkt mit den späteren Kapiteln fortfahren.

In Kapitel 9Aggregate und Kapitel 10Aktionen und Subroutinen werden das leistungsfähige DTrace-Grundelement zum Zusammenfassen von Daten in Aggregaten und der Satz integrierter Aktionen besprochen, die Ihnen beim Erstellen von Ablaufverfolgungsversuchen zur Verfügung stehen. Diese Kapitel sollten alle Leser aufmerksam durchlesen.

In Kapitel 11Puffer und Pufferung werden die DTrace-Richtlinien zum Puffern von Daten und ihre Konfigurationsmöglichkeiten erläutert. Lesen Sie dieses Kapitel, nachdem Sie sich mit dem Schreiben und Ausführen von D-Programmen vertraut gemacht haben.

In Kapitel 12Formatierung der Ausgabe werden die Aktionen für die Ausgabeformatierung in D sowie die Standardrichtlinie für die Formatierung der Ablaufverfolgungsdaten beschrieben. Wer mit der C-Funktion printf() vertraut ist, braucht dieses Kapitel nur flüchtig zu lesen. Leser, die printf() noch nie begegnet sind, sollten das Kapitel aufmerksam durchlesen.

Kapitel 13Spekulative Ablaufverfolgung beleuchtet DTrace im Hinblick auf die spekulative Übergabe von Daten an einen Ablaufverfolgungspuffer. Dieses Kapitel richtet sich an Benutzer, die DTrace zum Verfolgen von Daten einsetzen müssen, noch bevor deren Relevanz für die bestehende Fragestellung geklärt ist.

Kapitel 14Das Dienstprogramm dtrace(1M) stellt, vergleichbar mit der entsprechenden Seite im Online-Handbuch, eine vollständige Referenz für das Befehlszeilendienstprogramm dtrace dar. Hier können Leser nachschlagen, wenn an anderer Stelle im Buch unbekannte Befehlszeilenoptionen erwähnt werden. In Kapitel 15Scripting wird erläutert, wie sich mit dem Dienstprogramm dtrace ausführbare D-Skripten konstruieren und deren Befehlszeilenargumente verarbeiten lassen. In Kapitel 16Optionen und Tunables werden die Optionen beschrieben, die in der Befehlszeile oder innerhalb eines D-Programms selbst angepasst werden können.

Die Gruppe der Kapitel ab Kapitel 17Der Provider dtrace bis einschließlich Kapitel 32Der Provider fasttrap behandelt die DTrace-Provider, die zum Instrumentieren verschiedener Aspekte des Solaris-Systems dienen. Alle Leser sollten diese Kapitel durchblättern, um sich mit den verschiedenen Providern vertraut zu machen, und anschließend die genaue Lektüre der jeweils benötigten Kapitel fortsetzen.

Kapitel 33Ablaufverfolgung von Benutzerprozessen enthält Beispiele zum Instrumentieren von Benutzerprozessen mit DTrace. Kapitel 34Statisch definierte Ablaufverfolgung für Benutzeranwendungen erläutert, wie Anwendungsprogrammierer benutzerspezifische DTrace-Provider und -Prüfpunkte in Benutzeranwendungen einfügen können. Entwicklern oder Administratoren von Benutzerprogrammen, die mit DTrace das Verhalten von Benutzerprozessen untersuchen möchten, wird die Lektüre dieser Kapitel empfohlen.

Kapitel 35Sicherheit und die übrigen Kapitel befassen sich mit fortgeschrittenen Themen wie Sicherheits-, Versions- und Stabilitätsattributen von DTrace sowie der Durchführung von Ablaufverfolgungen mit DTrace beim Booten und nach Systemabstürzen. Diese Kapitel richten sich an erfahrene DTrace-Benutzer.

Weiterführende Informationen

Die folgenden Bücher und Schriften, deren Lektüre empfohlen wird, beziehen sich auf Vorgänge, die Sie bei der Arbeit mit DTrace durchführen müssen:

Unter http://www.sun.com/bigadmin/content/dtrace/ können Sie Ihre Erfahrungen und DTrace-Skripten mit dem Rest der DTrace-Community teilen.

Dokumentation, Support und Schulung

Auf der Sun-Website finden Sie Informationen zu den folgenden zusätzlichen Ressourcen:

Typografische Konventionen

In der folgenden Tabelle sind die in diesem Handbuch verwendeten typografischen Konventionen aufgeführt.

Tabelle P–1 Typografische Konventionen

Schriftart 

Bedeutung 

Beispiel 

AaBbCc123

Die Namen von Befehlen, Dateien, Verzeichnissen sowie Bildschirmausgabe. 

Bearbeiten Sie Ihre .login-Datei.

Verwenden Sie ls -a, um eine Liste aller Dateien zu erhalten.

system% Sie haben eine neue Nachricht.

AaBbCc123

Von Ihnen eingegebene Zeichen (im Gegensatz zu auf dem Bildschirm angezeigten Zeichen) 

system% su

Passwort:

aabbcc123

Platzhalter: durch einen tatsächlichen Namen oder Wert zu ersetzen 

Geben Sie zum Löschen einer Datei den Befehl rm Dateiname ein.

AaBbCc123

Buchtitel, neue Ausdrücke; hervorgehobene Begriffe 

Lesen Sie hierzu Kapitel 6 im Benutzerhandbuch.

Ein Cache ist eine lokal gespeicherte Kopie.

Diese Datei nicht speichern.

Hinweis: Einige hervorgehobene Begriffe werden online fett dargestellt.

Shell-Eingabeaufforderungen in Befehlsbeispielen

Die folgende Tabelle zeigt die Standard-Systemeingabeaufforderung von UNIX® und die Superuser-Eingabeaufforderung für die C-Shell, die Bourne-Shell und die Korn-Shell.

Tabelle P–2 Shell-Eingabeaufforderungen

Shell 

Eingabeaufforderung 

C-Shell 

system%

C-Shell für Superuser 

system#

Bourne-Shell und Korn-Shell 

$

Bourne-Shell und Korn-Shell für Superuser 

#