Update to r44577:

Finish the editorial edits for this chapter.

Obtained from: The FreeBSD German Documentation Project
This commit is contained in:
Benedict Reuschling 2015-06-04 17:03:16 +00:00
parent 216e7ad2a5
commit ee992bde9b
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=46764

View file

@ -10,7 +10,7 @@ that might make this chapter too large.
The FreeBSD Documentation Project
$FreeBSD$
$FreeBSDde: de-docproj/books/handbook/dtrace/chapter.xml,v 1.4 2009/08/22 18:54:15 bcr Exp $
basiert auf: r44565
basiert auf: r44577
-->
<!-- XXXTR: Should probably put links and resources here. I'm
nervous about this chapter as it may require a partial
@ -213,7 +213,8 @@ that might make this chapter too large.
übersetzen:</para>
<programlisting>options KDTRACE_HOOKS
options DDB_CTF</programlisting>
options DDB_CTF
options DEBUG=-g</programlisting>
<para>Besitzer der AMD64-Architektur werden wahrscheinlich noch
die folgende Zeile zur Kernelkonfigurationsdatei
@ -228,22 +229,34 @@ options DDB_CTF</programlisting>
<para>Sobald &os; in den neuen Kernel gebootet oder die
&dtrace;-Kernelmodule mittels <command>kldload
dtraceall</command> geladen wurden, besitzt das System
Unterstützung für die Korn-Shell. Dies wird benötigt, da die
Sammlung von &dtrace;-Werkzeugen mehrere Dienstprogramme
enthält, die in <command>ksh</command> implementiert sind.
Vergewissern Sie sich, dass das Paket oder der Port
<package>shells/ksh93</package> installiert ist. Es ist auch
möglich, diese Werkzeuge unter <package>shells/pdksh</package>
oder <package>shells/mksh</package> laufen zu lassen.</para>
dtraceall</command> geladen wurden, benötigt das System
Unterstützung für die Korn-Shell, da &dtrace; mehrere
Dienstprogramme enthält, die in <command>ksh</command>
implementiert sind. Vergewissern Sie sich, dass das Paket oder
der Port <package>shells/ksh93</package> installiert ist. Es
ist auch möglich, diese Werkzeuge unter
<package>shells/pdksh</package> oder
<package>shells/mksh</package> laufen zu lassen.</para>
<para>Zum Schluss sollten Sie noch den aktuellen
&dtrace;-Werkzeugsatz beschaffen. &os;&nbsp;10 enthält den
&dtrace;-Werkzeugsatz in <filename>/usr/share/dtrace</filename>.
Andernfalls können Sie den &dtrace;-Werkzeugsatz über das Paket
oder den Port <filename
role="package">sysutils/DTraceToolkit</filename>
installieren.</para>
&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 <acronym>CPU</acronym>-Gebrauch und noch viel
mehr. &os; 10 installiert ein paar dieser Skripte in
<filename>/usr/share/dtrace</filename>. Für andere
&os;-Versionen oder um die volle &dtrace;-Werkzeugsammlung zu
installieren, verwenden Sie den
<package>sysutils/DTraceToolkit</package> Port oder das
Paket.</para>
<note>
<para>Die Skripte in <filename>/usr/share/dtrace</filename>
wurden speziell für &os; portiert. Nicht alle Skripte
in der &dtrace;-Werkzeugsammlung werden in &os; unverändert
funktionieren und manche Skript benötigen einigen Aufwand,
damit diese auf &os; funktionieren.</para>
</note>
<para>Der &dtrace;-Werkzeugsatz beinhaltet viele Skripte in der
speziellen Sprache von &dtrace;. Diese Sprache wird die
@ -257,58 +270,46 @@ options DDB_CTF</programlisting>
<sect1 xml:id="dtrace-using">
<title>&dtrace; verwenden</title>
<para>&dtrace;-Skripte bestehen aus einer Liste von einer oder
mehreren <firstterm>Sonden</firstterm> 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.</para>
<para>Um alle Sonden anzuzeigen, kann der Administrator nun den
folgenden Befehl eingeben:</para>
<screen>&prompt.root; <userinput>dtrace -l | more</userinput></screen>
<para>Die &dtrace;-Werkzeugsammlung enthält gebrauchsfertige
Skripte, um Systeminformationen zu sammeln. Es gibt Skripte zum
Überprüfen von offenen Dateien, Speicher- und
<acronym>CPU</acronym>-Gebrauch und noch viel mehr. Entpacken
Sie die Skripte mit dem folgenden Kommando:</para>
<para>Jede Sonde besitzt eine <literal>ID</literal>, einen
<literal>PROVIDER</literal> (dtrace oder fbt), ein
<literal>MODULE</literal> und einen <literal>FUNCTION
NAME</literal>. Lesen Sie für weitere Informationen zu diesem
Kommando &man.dtrace.1;.</para>
<para>Der Werkzeugsatz ist eine Sammlung von vorgefertigten
Skripten, die von &dtrace; ausgeführt werden können, um
Systeminformationen zu sammeln. Es gibt Skripte, die offene
Dateien überprüfen, den Speicher,
<acronym>CPU</acronym>-Verbrauch und noch viel mehr. Entpacken
Sie die Skripte mit dem folgenden Befehl:</para>
<screen>&prompt.root; <userinput>gunzip -c DTraceToolkit* | tar xvf -</userinput></screen>
<para>Wechseln Sie mit dem <command>cd</command>-Kommando in
dieses Verzeichnis und ändern Sie die Berechtigung zum Ausführen
von allen Dateien, deren Name klein geschrieben ist, auf
<literal>755</literal>.</para>
<para>All diese Skripte müssen inhaltlich verändert werden.
Diejenigen, die auf <filename>/usr/bin/ksh</filename> verweisen,
müssen in <filename>/usr/local/bin/ksh</filename> geändert
werden und die Anderen, welche <filename>/usr/bin/sh</filename>
verwenden, müssen so angepasst werden, dass sie
<filename>/bin/sh</filename> verwenden. Schliesslich müssen
noch diejenigen, die <filename>/usr/bin/perl</filename>
enthalten, auf <filename>/usr/local/bin/perl</filename>
umgeschrieben werden.</para>
<para>Zum Zeitpunkt, an dem dieses Dokument geschrieben wurde,
existieren nur zwei Skripte im &dtrace;-Werkzeugsatz, die von
&os; komplett unterstützt werden: die Skripte
<para>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</filename> und
<filename>procsystime</filename>. Diese beiden werden in den
folgenden Teilen dieses Abschnitts genauer untersucht.</para>
<filename>procsystime</filename>.</para>
<para><filename>hotkernel</filename> wurde entworfen, um zu
identifizieren, welche Funktion die meiste Kernelzeit
beansprucht. Normal ausgeführt, wird es Ausgaben ähnlich der
Folgenden produzieren:</para>
<para>Das <filename>hotkernel</filename> Skript wurde entworfen,
um zu identifizieren, welche Funktion die meiste Kernelzeit
beansprucht. Es wird es Ausgaben ähnlich der Folgenden
produzieren:</para>
<screen>&prompt.root; <userinput>cd /usr/share/dtrace/toolkit</userinput>
&prompt.root; <userinput>./hotkernel</userinput>
Sampling... Hit Ctrl-C to end.</screen>
<para>Der Systemadministrator muss die Tastenkombination <keycombo
<para>Verwenden Sie wie angegeben die Tastenkombination <keycombo
action="simul"><keycap>Ctrl</keycap><keycap>C</keycap></keycombo>
drücken, um den Prozess zu stoppen. Nach dem Abbruch wird das
Skript eine Liste von Kernelfunktionen und Zeitmessungen
@ -346,8 +347,8 @@ kernel`sched_idletd 137 0.3%
how we should look that up. -->
<para>Dieses Skript funktioniert auch mit Kernelmodulen. Um diese
Eigenschaft zu verwenden, starten Sie das Skript mit dem
Parameter <option>-m</option>:</para>
Eigenschaft zu verwenden, starten Sie das Skript mit
<option>-m</option>:</para>
<screen>&prompt.root; <userinput>./hotkernel -m</userinput>
Sampling... Hit Ctrl-C to end.
@ -371,13 +372,13 @@ kernel 874 0.4%
seriously obvious. It is 5AM btw. -->
<para>Das <filename>procsystime</filename> Skript fängt die
Systemaufruf-Zeiten ab und zeigt diese für eine gegebene
<acronym>PID</acronym> oder einen Prozessnamen an. Im folgenden
Beispiel wurde eine neue Instanz von
<filename>/bin/csh</filename> erzeugt.
<filename>procsystime</filename> wurde ausgeführt und verbleibt
so, während ein paar Befehle in die andere Instanz von
<command>csh</command> eingegeben werden. Dies sind die
Systemaufruf-Zeiten für eine gegebene
Prozess-<acronym>ID</acronym> (<acronym>PID</acronym>) oder
einen Prozessnamen ab und gibt diese aus. Im folgenden Beispiel
wurde eine neue Instanz von <filename>/bin/csh</filename>
erzeugt. Dann wurde <filename>procsystime</filename> ausgeführt
und verbleibt so, während ein paar Befehle in die andere Instanz
von <command>csh</command> eingegeben werden. Dies sind die
Ergebnisse dieses Versuchs:</para>
<screen>&prompt.root; <userinput>./procsystime -n csh</userinput>