DTrace

DTrace
DTrace
Entwickler Sun Microsystems
Betriebssystem Unixoide
Kategorie Analyse, Diagnose
Lizenz CDDL
Deutschsprachig nein
http://hub.opensolaris.org

DTrace (Dynamic Tracing) ist ein von Sun Microsystems entwickeltes Systemwerkzeug zum Analysieren des Kernels sowie von Anwendungen, beides in Echtzeit. Ursprünglich wurde es für Solaris entwickelt, jedoch wurde es auf mehrere Unix-ähnliche Systeme portiert.

DTrace wird verwendet, um eine Übersicht über die auf dem System laufenden Prozesse, die Menge an Arbeitsspeicher, Prozessorzeit, Dateisystem und Netzwerkressourcen zu erhalten.

Es kann auch dafür verwendet werden, um genauere Informationen über einen Prozess zu erhalten, wie zum Beispiel über Zeichenketten in einem bestimmten Programm oder über Dateien, die dieser Prozess verwendet.

Inhaltsverzeichnis

Beschreibung

DTrace wurde entwickelt, um dem Benutzer die Möglichkeit zu geben, Anwendungen und das Betriebssystem selbst zu optimieren und zu Debuggen.

Überwachungsprogramme werden in der Programmiersprache D geschrieben (Nicht zu verwechseln mit der Programmiersprache namens D). D ist eine Teilmenge aus C welche mit zusätzlichen Befehlen, Variablen und eingebauten Funktionen (built-ins) für die Prozessüberwachung erweitert wurde. D-Programme ähneln vom Aufbau her der Programmiersprache awk. Sie bestehen aus einer Liste von Prüfungssonden, wobei jede Prüfungssonde mit einer Aktion verbunden sein kann. Immer wenn die Bedingungen einer Sonde erfüllt sind, wird die damit verbundene Aktion ausgeführt. Eine typische Prüfungssonde ist zum Beispiel das Öffnen einer Datei, das Starten eines Prozesses oder wenn eine Maschineninstruktion an einer bestimmten Hauptspeicheradresse ausgeführt wird.

Besondere Aufmerksamkeit wurde beim Entwickeln von DTrace dem sicheren Einsatz in einer Produktiven Umgebung gewidmet. Deshalb sind z. B. in der Programmiersprache D keine Schleifen zugelassen. Obwohl DTrace den auszuführenden Code (im Kernel oder in der Anwendung) verändert, verlangsamt es selbst bei mehreren tausend Prüfungssonden das System nur geringfügig, wenn die Prüfungssonden durchlaufen werden, und sonst gar nicht. Des Weiteren können für Anwendungen neue Sonden auch während deren Laufzeit hinzugefügt werden.[1]

Beispiele

DTrace-Skripte können direkt in der Kommandozeile aufgerufen werden. Deren Ausgabe erfolgt immer auf "standard out".

# Neuer Prozess mit Argumenten,
dtrace -n 'proc:::exec-success { trace(curpsinfo->pr_psargs); }'
 
# Dateien wurden von einem Prozess geöffnet,
dtrace -n 'syscall::open*:entry { printf("%s %s",execname,copyinstr(arg0)); }'
 
# Anzahl der System Prozedur aufrufe eines Programmes,
dtrace -n 'syscall:::entry { @num[execname] = count(); }'
 
# Anzahl der System Prozedur aufrufe des Systems,
dtrace -n 'syscall:::entry { @num[probefunc] = count(); }'
 
# Anzahl der System Prozedur aufrufe eines Prozesses,
dtrace -n 'syscall:::entry { @num[pid,execname] = count(); }'
 
# Benötigter Speicherplatz eines Prozesses,
dtrace -n 'io:::start { printf("%d %s %d",pid,execname,args[0]->b_bcount); }'
 
# Anzal der Seiten welche durch den Prozess ausgelagert wurden,
dtrace -n 'vminfo:::pgpgin { @pg[execname] = sum(arg0); }'

Außer solchen DTrace-Skripten, die aus nur einer Zeile bestehen, sogenannte "one-liner", gibt es DTrace-Skripte die Längen von mehreren 100 Zeilen erreichen, obwohl brauchbare Ergebnisse häufig schon zu erzielen sind mit nur etwa 10 Zeilen für das eigentliche Debugging sowie der Analyse. Oft besteht der größte Teil eines DTrace-Skripts nur aus der formatierten Ausgabe der Ergebnisse. Über 200 Beispiele von Open Source DTrace Skripten können im DTraceTookit mitsamt Dokumentation und Demonstration gefunden werden.[2]

Unterstützte Plattformen

DTrace wurde im November 2003 veröffentlicht und ist seit Januar 2005 Teil von Solaris. DTrace war die erste Kernkomponente von Solaris welche für Open Solaris unter die Common Development and Distribution License gestellt wurde.

DTrace wurde auf FreeBSD[3], NetBSD[4]und QNX[5] portiert.

Apple hat mit Mac OS X 10.5 „Leopard“ DTrace zusammen mit einer Grafischen Oberfläche namens Instruments[6] und 40 Überwachungssonden Skripte einschließlich Tools zum Untersuchen des Festplatten I / O (iosnoop) und der Prozess Ausführung (exsecsnoop)in das System Integriert. Im Gegensatz zu den anderen Plattformen auf denen DTrace portiert wurde, enthält Mac OS X einen Flag (P_LNOATTACH)) welches ein Programm aktivieren kann, damit der jeweilige Prozess nicht mehr von Debugging Software wie DTrace und gdb untersucht werden kann. In der ursprünglichen Mac OS X Umsetzung hatte dies jedoch Auswirkungen auf unabhängige Prüfungssonden zur Überwachung der System Informationen, denn solange ein Programm lief welches diesen flag gesetzt hatte, waren die System Prüfsonden nutzlos, da sie nicht mehr ausgelöst wurden[7]. Dieses Problem wurde einige Monate später mit Mac OS X 10.5.3 behoben.[8]

Derzeit befindet sich ein Port für Linux in der Beta Phase welche jedoch erst mit einigen Funktionen wie Syscall, FBT, USDT, und einer neuen, Instruction Power genannt, funktioniert. Die Implementierung ist als optionales Kernel Modul vorgesehen, damit der Kernel Quellcode nicht verändert werden muss. Dies ist nicht nur wegen der Gewährleistung der Portabilität vonnöten, sondern auch um Konflikte zwischen den beiden Lizenzen zu vermeiden (CDDL vs GPL).

Autoren und Auszeichnungen

DTrace wurde von Bryan Cantrill, Mike Shapiro und Adam Leventhal entwickelt. Im Jahr 2005 wurden die Autoren aufgrund der Innovationen von Info World und Technology Review geehrt.[9][10] Des Weiteren erhielt DTrace den Hauptpreis des Wall Street Journals 2006 Innovation Awards Wettbewerbs.[11][12]

Einzelnachweise

  1. http://www.freebsd.org/doc/de/books/handbook/dtrace.html
  2. http://hub.opensolaris.org/bin/view/Community+Group+dtrace/dtracetoolkit
  3. http://www.freebsd.org/releases/7.1R/announce.html
  4. http://mail-index.netbsd.org/source-changes/2010/02/21/msg006855.html
  5. http://raichoo.blogspot.com/2008/08/dtrace-berall.html
  6. http://web.archive.org/web/20071024144916/http://www.apple.com/macosx/developertools/instruments.html
  7. http://blogs.sun.com/ahl/entry/mac_os_x_and_the
  8. http://blogs.sun.com/ahl/entry/apple_updates_dtrace
  9. http://www.infoworld.com/t/business/innovation-alive-and-well-in-2005-482
  10. http://www.technologyreview.com/tr35/Profile.aspx?Cand=T&TRID=91
  11. http://online.wsj.com/public/article/SB115755300770755096-R2Ct41cQ4ZIPMwk4_xh0xU_HnQI_20061011.html?mod=tff_main_tff_top
  12. http://www.pro-linux.de/news/1/10218/dtrace-mit-innovationspreis-ausgezeichnet.html

Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • DTrace — Developer(s) Sun Microsystems Initial release January 2005 Development status active Operating system Solaris, Mac OS X, FreeBSD, NetBSD …   Wikipedia

  • DTrace — DTrace  фреймворк динамической трассировки, созданный компанией Sun Microsystems, предназначенный для отладки ядра и приложений в реальном времени. Изначально DTrace был создан для Solaris, затем был открыт под лицензией Common Development… …   Википедия

  • Dtrace — Développeur Sun Microsystems Environnement …   Wikipédia en Français

  • DTrace — Développeur Sun Microsystems Environnement …   Wikipédia en Français

  • DTrace — Saltar a navegación, búsqueda El término DTrace hace referencia a: DTrace (Sun Microsystems): herramienta de monitorización desarrollada por Sun Microsystems; DTrace (Datamatic): grupo de sistemas de trazabilidad de productos alimenticios… …   Wikipedia Español

  • DTrace (Sun Microsystems) — Saltar a navegación, búsqueda DTrace Desarrollador Sun Microsystems www.opensolaris.org/os/community/dtrace Información …   Wikipedia Español

  • DTrace (Datamatic) — Saltar a navegación, búsqueda Grupo de sistemas de trazabilidad de productos alimenticios desarrollados en Uruguay por la empresa de software Datamatic. Uruguay como neto exportador de alimentos se ve exigido por sus compradores a certificar el… …   Wikipedia Español

  • Adam Leventhal (programmer) — Infobox Person name = Adam H Leventhal image size = caption = birth name = birth date = 1979 birth place = United States death date = death place = death cause = resting place = resting place coordinates = residence = nationality = other names =… …   Wikipedia

  • OpenSolaris — Информация в этой статье или некоторых её разделах устарела. Вы можете помочь проекту, обновив её и убрав после этого данный шаблон …   Википедия

  • Solaris (operating system) — Solaris Company / developer Oracle Corporation Programmed in C OS family Unix …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”