Update to r44558:

Remove no longer needed warnings and update kernel DTrace for 10.X.

Obtained from: The FreeBSD German Documentation Project
This commit is contained in:
Benedict Reuschling 2015-06-04 14:06:31 +00:00
parent e60fd7dd69
commit 305711028c
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=46762

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: r44465
basiert auf: r44558
-->
<!-- XXXTR: Should probably put links and resources here. I'm
nervous about this chapter as it may require a partial
@ -56,9 +56,11 @@ that might make this chapter too large.
<para>&dtrace;, auch bekannt als Dynamic Tracing, wurde von &sun;
als ein Werkzeug zur Analyse von Performance-Problemen in
Produktiv- und Entwicklungssystemen entwickelt. Es ist kein
Debugging-Werkzeug, sondern ein Hilfsmittel für
Echtzeit-Systemanalysen.</para>
Produktiv- und Entwicklungssystemen entwickelt. Zusätzlich zur
Diagnose von Performance-Problemen kann &dtrace; auch verwendet
werden, um bei der Untersuchung und Behebung von unerwartetem
Verhalten im &os;-Kernel und den Anwenderprogrammen zu
helfen.</para>
<para>&dtrace; ist ein bemerkenswertes Werkzeug zur
Profilerstellung, mit einer beeindruckenden Palette von
@ -69,6 +71,21 @@ that might make this chapter too large.
Hilfsmittel schreiben, was es ermöglicht, die eigenen Profile
nach Ihren Bedürfnissen anzupassen.</para>
<para>Die &dtrace;-Implementierung in &os; bietet experimentelle
Unterstützung für &dtrace; im Benutzerbereich. Diese
Eigenschaft erlaubt es Anwendern, funktionsübergreifende
Aufzeichnungen für Anwendungsprogramme über die bereitgestellte
<literal>pid</literal> hinweg vorzunehmen und um statische
Sonden in Anwendungsprogramme für die spätere Aufzeichnung
einzufügen. Manche Ports, wie beispielsweise
<package>databases/postgres-server</package> und
<package>lang/php5</package> besitzen eine &dtrace;-Option, um
statische Sonden zu aktivieren. &os;&nbsp;10.0-RELEASE besitzt
eine verhältnismässig gute Unterstützung für &dtrace; im
Anwendungsbereich, wird jedoch noch nicht als produktionsreif
angesehen. Insbesondere ist es möglich, dass Programme während
der Aufzeichnung abstürzen.</para>
<para>Nachdem Sie dieses Kapitel gelesen haben, werden Sie
Folgendes wissen:</para>
@ -98,11 +115,6 @@ that might make this chapter too large.
linkend="basics"/>).</para>
</listitem>
<listitem>
<para>Einen Kernel konfigurieren und kompilieren können (<xref
linkend="kernelconfig"/>).</para>
</listitem>
<listitem>
<para>Vertraut sein mit Sicherheitsaspekten und wie diese
&os; betreffen (<xref linkend="security"/>).</para>
@ -115,10 +127,6 @@ that might make this chapter too large.
</listitem>
</itemizedlist>
<!--
Temporary warning to avoid listing experimental versions
and production versions of FreeBSD with this technology.
-->
<warning>
<para>Diese Funktion ist als experimentell anzusehen. Manche
Einstellungen enthalten möglicherweise nicht alle
@ -134,9 +142,16 @@ that might make this chapter too large.
<para>Obwohl &dtrace; in &os; sehr ähnlich zu dem in &solaris;
ist, existieren doch Unterschiede. Der Hauptunterschied besteht
darin, dass in &os; &dtrace; explizit durch das Laden von
Kernelmodulen oder das Kompilieren eines eigenen Kernels
mit speziellen Optionen aktiviert werden muss.</para>
darin, dass in &os; &dtrace; als eine Menge von Kernelmodulen
implementiert ist und &dtrace; nicht verwendet werden kann, bis
diese Module geladen wurden. Um alle nötigen Module zu laden,
geben Sie ein:</para>
<screen>&prompt.root; <userinput>kldload dtraceall</userinput></screen>
<para>Beginnend mit &os; 10.0-RELEASE werden die Module
automatisch geladen, sobald <command>dtrace</command> aufgerufen
wird.</para>
<para>&os; verwendet die Kerneloption <literal>DDB_CTF</literal>,
um die Unterstützung im Kernel für das Laden von
@ -159,7 +174,15 @@ that might make this chapter too large.
&solaris;-Implementierung. Am deutlichsten wird das beim
<literal>dtmalloc</literal>-Provider, welcher das Aufzeichnen
von <function>malloc()</function> nach Typen im &os;-Kernel
ermöglicht.</para>
ermöglicht. Manche der Provider in &solaris; wie
<literal>cpc</literal> und <literal>mib</literal> sind in &os;
nicht vorhanden. Diese können in zukünftigen &os;-Versionen
auftauchen. Weiterhin sind manche der Provider in beiden
Betriebssystemen nicht zueinander kompatibel, in dem Sinne daß
deren Sonden unterschiedliche Argumenttypen aufweisen. Dadurch
können <acronym>D</acronym>-Skripte, die unter &solaris;
geschrieben wurden, evtl. unter &os; funktionieren oder auch
nicht, umgekehrt ist das genauso.</para>
<para>In &os; darf &dtrace; wegen unterschiedlicher
Sicherheitskonzepte nur von <systemitem
@ -188,15 +211,18 @@ that might make this chapter too large.
<sect1 xml:id="dtrace-enable">
<title>Die &dtrace; Unterstützung aktivieren</title>
<para>Um Unterstützung für &dtrace; zu aktivieren, fügen Sie die
folgenden Zeilen zu Ihrer Kernelkonfigurationsdatei
hinzu:</para>
<para>In &os; 9.2 und 10.0 ist die Unterstützung von &dtrace; im
<filename>GENERIC</filename>-Kernel bereits eingebaut. Nutzer
von früheren Versionen sollten die folgenden Zeilen in eine
eigene Kernelkonfigurationsdatei einfügen und den Kernel mittels
der Anleitung in <xref linkend="kernelconfig"/> neu
übersetzen:</para>
<programlisting>options KDTRACE_HOOKS
options DDB_CTF</programlisting>
<note>
<para>Besitzer der AMD-Architektur werden wahrscheinlich noch
<para>Besitzer der AMD64-Architektur werden wahrscheinlich noch
die folgende Zeile zur Kernelkonfigurationsdatei
hinzufügen:</para>
@ -208,48 +234,22 @@ options DDB_CTF</programlisting>
Tracing nur eingeschränkt unterstützt.</para>
</note>
<para>Der gesamte Quellcode muss neu gebaut und mit der
<acronym>CTF</acronym>-Option installiert werden.</para>
<note>
<para>Beginnend mit 10.0 werden die folgenden Schritte nicht
mehr benötigt, da die <literal>WITH_CTF</literal>-Option in
der <filename>GENERIC</filename>-Kernelkonfiguration
enthalten ist.</para>
</note>
<para>Um das zu erreichen, bauen Sie &os; aus dem Quellcode
mittels:</para>
<!-- XXXTR: WITH_CTF has been reported to leave a user with a
broken system when used with buildworld. Until this is
fixed, comment out those parts. When uncommenting, kill
the extra screen.
-->
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
<!-- &prompt.root; <userinput>make WITH_CTF=1 buildworld</userinput> -->
&prompt.root; <userinput>make WITH_CTF=1 kernel</userinput></screen>
<!-- &prompt.root; <userinput>make WITH_CTF=1 installworld</userinput>
&prompt.root; <userinput>mergemaster -Ui</userinput></screen> -->
<para>Das System muss im Anschluss daran neu gestartet
werden.</para>
<para>Nachdem das System neu gestartet und der neue Kernel in den
Hauptspeicher geladen wurde, sollte die Unterstützung für die
Korn-Shell hinzugefügt werden. Dies wird benötigt, da die
<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.
Installieren Sie <package>shells/ksh93</package>. Es ist auch
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. Wenn Sie &os;&nbsp;10
einsetzen, finden Sie den &dtrace;-Werkzeugsatz in
<filename>/usr/share/dtrace</filename>. Andernfalls können Sie
den &dtrace;-Werkzeugsatz über den Port <filename
&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>
</sect1>
@ -257,15 +257,8 @@ options DDB_CTF</programlisting>
<sect1 xml:id="dtrace-using">
<title>&dtrace; verwenden</title>
<para>Bevor die &dtrace;-Funktionaltät benutzt werden kann, muss
das &dtrace;-Gerät existieren. Um das Gerät zu laden, geben Sie
das folgende Kommando ein:</para>
<screen>&prompt.root; <userinput>kldload dtraceall</userinput></screen>
<para>Die &dtrace;-Unterstützung sollte jetzt verfügbar sein. Um
alle Sonden anzuzeigen, kann der Administrator nun den folgenden
Befehl eingeben:</para>
<para>Um alle Sonden anzuzeigen, kann der Administrator nun den
folgenden Befehl eingeben:</para>
<screen>&prompt.root; <userinput>dtrace -l | more</userinput></screen>
@ -299,16 +292,6 @@ options DDB_CTF</programlisting>
enthalten, auf <filename>/usr/local/bin/perl</filename>
umgeschrieben werden.</para>
<important>
<para>Zu diesem Zeitpunkt ist es klug, den Leser noch einmal
daran zu erinnern, dass die Unterstützung von &dtrace; in &os;
noch <emphasis>unvollständig</emphasis> und
<emphasis>experimentell</emphasis> ist. Viele dieser Skripte
werden nicht funktionieren, da diese entweder zu sehr
&solaris;-spezifisch sind oder Sonden verwenden, die zur Zeit
noch nicht unterstützt werden.</para>
</important>
<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