DTrace



DTrace (Dynamic Tracing) ist eines von Sun Microsystems entwickeltes Systemwerkzeug zur Kernel- und Anwendungsanalyse in Echtzeit. Ursprünglich für Solaris entwickelt, ist es auf mehrere Unix-ähnliche Systeme portiert.

DTrace bietet Inspektionsmöglichkeiten in Laufen Prozess, Arbeitsspeicher , Prozessorzeit , Dateisystem und Netzwerkressourcen.

Beschreibung

DTrace wurde entwickelt, um das Betriebssystem selbst zu optimieren und zu beheben. Somit ist es ein Programmierwerkzeug zum Debuggen , es arbeitt aber nicht mit Haltepunkten wie ein klassischer Debugger .

Programmierprogramme wurden in die Programmierung D geschrieben (nicht in Übereinstimmung mit der Programmiersprache „D“ ). D ist Eine Teilmenge aus C , Welche mit addition befehlen variable und eingebauten Die Leistung (Einbauten) für sterben Prozessüberwachung Erweitert Wurde. D-Programm vom Aufbau hier, die Programmiersprache awk . Hier ist eine Liste von Prüfungssonden, in der jede Prüfungssonde mit einer Aktion verbunden sein kann. Immer wenn eine der Bedingungen erfüllt ist, wird de damit einhergegangen. Ihre typische Prüfungssonde ist das erste Mal des Jahres, der Beginn des Prozesses und die Bearbeitung der Hauptspeicheradresse wird ausgeführt.

Spezifische Aufmerksamkeit wurde in einer produktiven Umgebung gewidmet. Deshalb ist der Verstand z. B. im Programm D keine Schleifen zugelassen. Obwohl DTrace die auszuführenden – Code (im Kernel oder in der anwendung) Verändert, verlangsamt es selbst bei mehreren Tausend Prüfungssonden das System – nur geringfügig, sterben , ideal Prüfungssonden Durchlaufen Werden, und sonst gar nicht. Außerdem können für Anwendungen neue Sonden zur Verfügung gestellt werden. [1]

Beispiel

DTrace-Scripte können direkt in der Kommandozeile aufgerufen werden. Liebe Ausgabe ist immer auf ihnen Standard Ausgabestrom vorhanden.

# Neuer Prozess mit Argumenten,
dtrace -n 'proc ::: exec-erfolg {trace (curpsinfo-> pr_psargs); } '
# Datum der Weisheit eines einzelnen Prozess geöffnet,
dtrace -n' syscall :: open *: Eintrag {printf ("% s% s", execname, copyinstr (arg0)); } '
# Anzahl der Systemprozeduren aufrufeines Programme,
dtrace -n' syscall ::: eintrag {@num [execname] = count (); } '
# Anzahl der Systemaufrufe des Systems,
dtrace -n' syscall ::: Eintrag {@num [probefunc] = count (); } '
# Anzahl der Systemprozeduren aufrufeines Prozesses,
dtrace -n' syscall ::: Eintrag {@num [pid, execname] = count (); } '
# Benatigter Speicherplatz eines Prozesses,
DTrace -n' io starten ::: {printf ( "% d% s% d", pid, execname,
# Anzahl der Seiten, durch die
dtrace -n 'vminfo ::: pgpgin {@pg [execname] = Summe (arg0); } '

Oft gibt es eine große Auswahl an Teil eines DTrace-Skripts im Format Ausgabe der Ergebnisse. Ungefähr 200 Beispiele von Open-Source- D-Trace-Scripts Können im DTraceToolkit Meditierte 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 Solaris-Kernkomponente, die für Open Solaris Unter bekannt ist, um die Common Development and Distribution Licensezu starten .

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

Apple hat mit Mac OS X Leopard „Leopard“ DTrace zusammen mit einer grafischen Oberfläche namens Instruments[6] und 40 Überwachungssonden Skripte einschließlich Tools zum Untersuchen von Festplattenzugriff (iosnoop) und Prozessausführung (execsnoop) in das System integriert. Im Gegensatz zu den anderen Plattformen, auf die DTrace portiert wurde, enthält Mac OS X ein Flag (P_LNOATTACH), welches ein Programm aktivieren kann, damit der jeweilige Prozess nicht mehr von Debuggingsoftware wie DTrace und gdb untersucht werden kann. In der ursprünglichen Umsetzung auf Mac OS X hatte dies jedoch Auswirkungen auf unabhängige Prüfungssonden zur Überwachung der Systeminformationen, denn solange ein Programm lief, welches dieses Flag gesetzt hatte, waren die Systemprü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]

Es wurde herausgefunden, dass Linux für die Beta-Phase Linux ist , aber es ist auch die Funktion von Syscall, FBT, USDT und anderen, Instruction Power, wirklich funktionell. Diese Implementierung ist als optionales Kernel-Modulvorgesehen, das den Quellcode des Kerns nicht verandert. Es ist nicht einfach, Straßen vom Westkap der Portabilität vonnöten zu finden, sondern auch für einen Konflikt mit der GPL .

Autoren und Auszeichnungen

DTrace Wurde von Bryan Cantrill, Mike Shapiro und Adam Leventhal entwickelt. Im Jahr 2005 wurden wir zu den Innovationen von Info World und Technology Review geehrt. [9] [10] Des Weiteren ehrt DTrace den Hauptpreis des Wall Street Journals 2006. [11] [12]

Einzelnachweise

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