Changeset View
Changeset View
Standalone View
Standalone View
documentation/content/de/books/handbook/dtrace/_index.adoc
Show First 20 Lines • Show All 110 Lines • ▼ Show 20 Lines | |||||
.... | .... | ||||
options KDTRACE_FRAME | options KDTRACE_FRAME | ||||
.... | .... | ||||
Diese Option liefert die Unterstützung für die FBT-Eigenschaft. DTrace wird auch ohne diese Option funktionieren; jedoch wird dann Function Boundary Tracing nur eingeschränkt unterstützt. | Diese Option liefert die Unterstützung für die FBT-Eigenschaft. DTrace wird auch ohne diese Option funktionieren; jedoch wird dann Function Boundary Tracing nur eingeschränkt unterstützt. | ||||
Sobald FreeBSD in den neuen Kernel gebootet oder die DTrace-Kernelmodule mittels `kldload dtraceall` geladen wurden, benötigt das System Unterstützung für die Korn-Shell, da DTrace mehrere Dienstprogramme enthält, die in `ksh` implementiert sind. Vergewissern Sie sich, dass das Paket oder der Port package:shells/ksh93[] installiert ist. Es ist auch möglich, diese Werkzeuge unter package:shells/pdksh[] oder package:shells/mksh[] laufen zu lassen. | Sobald FreeBSD in den neuen Kernel gebootet oder die DTrace-Kernelmodule mittels `kldload dtraceall` geladen wurden, benötigt das System Unterstützung für die Korn-Shell, da DTrace mehrere Dienstprogramme enthält, die in `ksh` implementiert sind. Vergewissern Sie sich, dass das Paket oder der Port package:shells/ksh93[] installiert ist. Es ist auch möglich, diese Werkzeuge unter package:shells/pdksh[] oder package:shells/mksh[] laufen zu lassen. | ||||
Zum Schluss sollten Sie noch den aktuellen DTrace-Werkzeugsatz beschaffen. Die DTrace-Werkzeugsammlung enthält gebrauchsfertige Skripte, um Systeminformationen zu sammeln. Es gibt Skripte zum Überprüfen von offenen Dateien, Speicher- und CPU-Gebrauch und noch viel mehr. FreeBSD 10 installiert ein paar dieser Skripte in [.filename]#/usr/shared/dtrace#. Für andere FreeBSD-Versionen oder um die volle DTrace-Werkzeugsammlung zu installieren, verwenden Sie den package:sysutils/DTraceToolkit[] Port oder das Paket. | Zum Schluss sollten Sie noch den aktuellen DTrace-Werkzeugsatz beschaffen. Die DTrace-Werkzeugsammlung enthält gebrauchsfertige Skripte, um Systeminformationen zu sammeln. Es gibt Skripte zum Überprüfen von offenen Dateien, Speicher- und CPU-Gebrauch und noch viel mehr. FreeBSD 10 installiert ein paar dieser Skripte in [.filename]#/usr/share/dtrace#. Für andere FreeBSD-Versionen oder um die volle DTrace-Werkzeugsammlung zu installieren, verwenden Sie den package:sysutils/DTraceToolkit[] Port oder das Paket. | ||||
[NOTE] | [NOTE] | ||||
==== | ==== | ||||
Die Skripte in [.filename]#/usr/shared/dtrace# wurden speziell für FreeBSD portiert. Nicht alle Skripte in der DTrace-Werkzeugsammlung werden in FreeBSD unverändert funktionieren und manche Skript benötigen einigen Aufwand, damit diese auf FreeBSD funktionieren. | Die Skripte in [.filename]#/usr/share/dtrace# wurden speziell für FreeBSD portiert. Nicht alle Skripte in der DTrace-Werkzeugsammlung werden in FreeBSD unverändert funktionieren und manche Skript benötigen einigen Aufwand, damit diese auf FreeBSD funktionieren. | ||||
==== | ==== | ||||
Der DTrace-Werkzeugsatz beinhaltet viele Skripte in der speziellen Sprache von DTrace. Diese Sprache wird die D-Sprache genannt und ist sehr ähnlich zu C++. Eine detaillierte Beschreibung dieser Sprache würde den Rahmen dieses Dokuments sprengen. Im http://www.dtrace.org/guide[Illumos Dynamic Tracing Guide] wird diese Sprache ausführlich beschrieben. | Der DTrace-Werkzeugsatz beinhaltet viele Skripte in der speziellen Sprache von DTrace. Diese Sprache wird die D-Sprache genannt und ist sehr ähnlich zu C++. Eine detaillierte Beschreibung dieser Sprache würde den Rahmen dieses Dokuments sprengen. Im http://www.dtrace.org/guide[Illumos Dynamic Tracing Guide] wird diese Sprache ausführlich beschrieben. | ||||
[[dtrace-using]] | [[dtrace-using]] | ||||
== DTrace verwenden | == DTrace verwenden | ||||
DTrace-Skripte bestehen aus einer Liste von einer oder mehreren _Sonden_ oder Instrumentationspunkten, an denen jede Sonde mit einer Aktion verknüpft ist. Jedesmal, wenn die Bedingung für eine Sonde zutrifft, wird die verknüpfte Aktion ausgeführt. Beispielsweise könnte eine Aktion ausgeführt werden, wenn eine Datei geöffnet, ein Prozess gestartet oder eine Codezeile ausgeführt wird. Die Aktion könnte die Protokollierung von Informationen sein oder die Änderung von Kontextvariablen. Das Lesen und Schreiben von Kontextvariablen erlaubt es den Sonden, Informationen auszutauschen und kooperativ die Korrelation bestimmter Ereignisse zu analysieren. | DTrace-Skripte bestehen aus einer Liste von einer oder mehreren _Sonden_ oder Instrumentationspunkten, an denen jede Sonde mit einer Aktion verknüpft ist. Jedesmal, wenn die Bedingung für eine Sonde zutrifft, wird die verknüpfte Aktion ausgeführt. Beispielsweise könnte eine Aktion ausgeführt werden, wenn eine Datei geöffnet, ein Prozess gestartet oder eine Codezeile ausgeführt wird. Die Aktion könnte die Protokollierung von Informationen sein oder die Änderung von Kontextvariablen. Das Lesen und Schreiben von Kontextvariablen erlaubt es den Sonden, Informationen auszutauschen und kooperativ die Korrelation bestimmter Ereignisse zu analysieren. | ||||
Um alle Sonden anzuzeigen, kann der Administrator nun den folgenden Befehl eingeben: | Um alle Sonden anzuzeigen, kann der Administrator nun den folgenden Befehl eingeben: | ||||
[source,shell] | [source,shell] | ||||
.... | .... | ||||
# dtrace -l | more | # dtrace -l | more | ||||
.... | .... | ||||
Jede Sonde besitzt eine `ID`, einen `PROVIDER` (dtrace oder fbt), ein `MODULE` und einen `FUNCTION NAME`. Lesen Sie man:dtrace[1] für weitere Informationen zu diesem Kommando. | Jede Sonde besitzt eine `ID`, einen `PROVIDER` (dtrace oder fbt), ein `MODULE` und einen `FUNCTION NAME`. Lesen Sie man:dtrace[1] für weitere Informationen zu diesem Kommando. | ||||
Die Beispiele in diesem Abschnitt geben einen Überblick, wie man zwei dieser voll funktionsfähigen Skripte aus der DTrace-Werkzeugsammlung verwendet: die Skripte [.filename]#hotkernel# und [.filename]#procsystime#. | Die Beispiele in diesem Abschnitt geben einen Überblick, wie man zwei dieser voll funktionsfähigen Skripte aus der DTrace-Werkzeugsammlung verwendet: die Skripte [.filename]#hotkernel# und [.filename]#procsystime#. | ||||
Das [.filename]#hotkernel# Skript wurde entworfen, um zu identifizieren, welche Funktion die meiste Kernelzeit beansprucht. Es wird es Ausgaben ähnlich der Folgenden produzieren: | Das [.filename]#hotkernel# Skript wurde entworfen, um zu identifizieren, welche Funktion die meiste Kernelzeit beansprucht. Es wird es Ausgaben ähnlich der Folgenden produzieren: | ||||
[source,shell] | [source,shell] | ||||
.... | .... | ||||
# cd /usr/local/shared/dtrace-toolkit | # cd /usr/local/share/dtrace-toolkit | ||||
# ./hotkernel | # ./hotkernel | ||||
Sampling... Hit Ctrl-C to end. | Sampling... Hit Ctrl-C to end. | ||||
.... | .... | ||||
Verwenden Sie wie angegeben die Tastenkombination kbd:[Ctrl+C] drücken, um den Prozess zu stoppen. Nach dem Abbruch wird das Skript eine Liste von Kernelfunktionen und Zeitmessungen ausgeben, aufsteigend sortiert nach den Zeiten: | Verwenden Sie wie angegeben die Tastenkombination kbd:[Ctrl+C] drücken, um den Prozess zu stoppen. Nach dem Abbruch wird das Skript eine Liste von Kernelfunktionen und Zeitmessungen ausgeben, aufsteigend sortiert nach den Zeiten: | ||||
[source,shell] | [source,shell] | ||||
.... | .... | ||||
▲ Show 20 Lines • Show All 82 Lines • Show Last 20 Lines |