This is a whitespace cleanup for the DTrace chapter.
No content changes, so translators can ignore it. Submitted by: Dru Lavigne
This commit is contained in:
parent
0f8202f821
commit
51b3707186
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=40686
1 changed files with 54 additions and 45 deletions
|
@ -34,18 +34,18 @@ that might make this chapter too large.
|
|||
<see>&dtrace;</see>
|
||||
</indexterm>
|
||||
|
||||
<para>&dtrace;, also known as Dynamic Tracing, was developed by
|
||||
&sun; as a tool for locating performance bottlenecks
|
||||
in production and pre-production systems. It is not, in any way,
|
||||
a debugging tool, but a tool for real time system analysis to
|
||||
locate performance and other issues.</para>
|
||||
<para>&dtrace;, also known as Dynamic Tracing, was developed by
|
||||
&sun; as a tool for locating performance bottlenecks in
|
||||
production and pre-production systems. It is not, in any way,
|
||||
a debugging tool, but a tool for real time system analysis to
|
||||
locate performance and other issues.</para>
|
||||
|
||||
<para>&dtrace; is a remarkable profiling tool, with an impressive
|
||||
array of features for diagnosing system issues. It may also be
|
||||
used to run pre-written scripts to take advantage of its
|
||||
capabilities. Users may even author their own utilities using
|
||||
the &dtrace; D Language, allowing them to customize their profiling
|
||||
based on specific needs.</para>
|
||||
<para>&dtrace; is a remarkable profiling tool, with an impressive
|
||||
array of features for diagnosing system issues. It may also
|
||||
be used to run pre-written scripts to take advantage of its
|
||||
capabilities. Users may even author their own utilities using
|
||||
the &dtrace; D Language, allowing them to customize their
|
||||
profiling based on specific needs.</para>
|
||||
|
||||
<para>After reading this chapter, you will know:</para>
|
||||
|
||||
|
@ -55,8 +55,8 @@ that might make this chapter too large.
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Differences between the &solaris; &dtrace; implementation
|
||||
and the one provided by &os;.</para>
|
||||
<para>Differences between the &solaris; &dtrace;
|
||||
implementation and the one provided by &os;.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -136,20 +136,22 @@ that might make this chapter too large.
|
|||
<para>Only <username>root</username> may use &dtrace; on &os;.
|
||||
This is related to security differences, &solaris; has a few
|
||||
low level security checks which do not yet exist in &os;. As
|
||||
such, the <devicename>/dev/dtrace/dtrace</devicename> is strictly
|
||||
limited to <username>root</username> users only.</para>
|
||||
such, the <devicename>/dev/dtrace/dtrace</devicename> is
|
||||
strictly limited to <username>root</username> users only.</para>
|
||||
|
||||
<para>Finally, the &dtrace; software falls under &sun;'s
|
||||
<acronym>CDDL</acronym> license. The <literal>Common Development
|
||||
and Distribution License</literal> comes with &os;, see the
|
||||
<acronym>CDDL</acronym> license. The <literal>Common
|
||||
Development and Distribution License</literal> comes with &os;,
|
||||
see the
|
||||
<filename>/usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE</filename>
|
||||
or view it online at
|
||||
<ulink url="http://www.opensolaris.org/os/licensing"></ulink>.</para>
|
||||
<ulink
|
||||
url="http://www.opensolaris.org/os/licensing"></ulink>.</para>
|
||||
|
||||
<para>This license means that a &os; kernel with the &dtrace; options
|
||||
is still <acronym>BSD</acronym> licensed; however the
|
||||
<acronym>CDDL</acronym> kicks in when the modules are distributed
|
||||
in binary form, or the binaries are loaded.</para>
|
||||
<para>This license means that a &os; kernel with the &dtrace;
|
||||
options is still <acronym>BSD</acronym> licensed; however
|
||||
the <acronym>CDDL</acronym> kicks in when the modules are
|
||||
distributed in binary form, or the binaries are loaded.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="dtrace-enable">
|
||||
|
@ -167,12 +169,14 @@ options DDB_CTF</programlisting>
|
|||
|
||||
<programlisting>options KDTRACE_FRAME</programlisting>
|
||||
|
||||
<para>This option provides support for the <acronym>FBT</acronym>
|
||||
feature. &dtrace; will work without this option; however, there
|
||||
will be limited support for function boundary tracing.</para>
|
||||
</note>
|
||||
<para>This option provides support for the
|
||||
<acronym>FBT</acronym> feature. &dtrace; will work without
|
||||
this option; however, there will be limited support for
|
||||
function boundary tracing.</para>
|
||||
</note>
|
||||
|
||||
<para>All sources must be rebuilt and installed with <acronym>CTF</acronym> options.
|
||||
<para>All sources must be rebuilt and installed with
|
||||
<acronym>CTF</acronym> options.
|
||||
To accomplish this task, rebuild the &os; sources using:</para>
|
||||
|
||||
<!-- XXXTR: WITH_CTF has been reported to leave a user with a
|
||||
|
@ -203,20 +207,22 @@ options DDB_CTF</programlisting>
|
|||
If you are running FreeBSD 10, you will find the &dtrace;Toolkit
|
||||
in <filename>/usr/share/dtrace</filename>.
|
||||
Otherwise, you can install the &dtrace;Toolkit using the
|
||||
<filename role="package">sysutils/DTraceToolkit</filename> port.</para>
|
||||
<filename role="package">sysutils/DTraceToolkit</filename>
|
||||
port.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="dtrace-using">
|
||||
<title>Using &dtrace;</title>
|
||||
|
||||
<para>Before making use of &dtrace; functionality, the &dtrace; device
|
||||
must exist. To load the device, issue the following
|
||||
<para>Before making use of &dtrace; functionality, the &dtrace;
|
||||
device must exist. To load the device, issue the following
|
||||
command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>kldload dtraceall</userinput></screen>
|
||||
|
||||
<para>&dtrace; support should now be available. To view all probes
|
||||
the administrator may now execute the following command:</para>
|
||||
<para>&dtrace; support should now be available. To view all
|
||||
probes the administrator may now execute the following
|
||||
command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>dtrace -l | more</userinput></screen>
|
||||
|
||||
|
@ -272,9 +278,9 @@ Sampling... Hit Ctrl-C to end.</screen>
|
|||
<para>The system administrator must use the
|
||||
<keycombo action="simul"><keycap>Ctrl</keycap><keycap>C</keycap>
|
||||
</keycombo> key combination to stop the process. Upon
|
||||
termination, the script will display a list of kernel functions and
|
||||
timing information, sorting the output in increasing order of
|
||||
time:</para>
|
||||
termination, the script will display a list of kernel functions
|
||||
and timing information, sorting the output in increasing order
|
||||
of time:</para>
|
||||
|
||||
<screen>kernel`_thread_lock_flags 2 0.0%
|
||||
0xc1097063 2 0.0%
|
||||
|
@ -308,7 +314,8 @@ kernel`sched_idletd 137 0.3%
|
|||
how we should look that up. -->
|
||||
|
||||
<para>This script will also work with kernel modules. To use this
|
||||
feature, run the script with the <option>-m</option> flag:</para>
|
||||
feature, run the script with the <option>-m</option>
|
||||
flag:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>./hotkernel -m</userinput>
|
||||
Sampling... Hit Ctrl-C to end.
|
||||
|
@ -366,20 +373,22 @@ Elapsed Times for processes csh,
|
|||
sigsuspend 6985124
|
||||
read 3988049784</screen>
|
||||
|
||||
<para>As shown, the <function>read()</function> system call seems to use the
|
||||
most time in nanoseconds with the <function>getpid()</function>
|
||||
system call used the least amount of time.</para>
|
||||
<para>As shown, the <function>read()</function> system call
|
||||
seems to use the most time in nanoseconds with the
|
||||
<function>getpid()</function> system call used the least amount
|
||||
of time.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="dtrace-language">
|
||||
<title>The D Language</title>
|
||||
|
||||
<para>The &dtrace; Toolkit includes many scripts in the special language of
|
||||
&dtrace;. This language is called <quote>the D language</quote> by &sun;
|
||||
documentation, and it is very similar to C++. An in depth
|
||||
discussion of the language is beyond the scope of this document. It is
|
||||
extensively discussed
|
||||
at <ulink url="http://wikis.sun.com/display/DTrace/Documentation"></ulink>.</para>
|
||||
<para>The &dtrace; Toolkit includes many scripts in the special
|
||||
language of &dtrace;. This language is called <quote>the D
|
||||
language</quote> by &sun; documentation, and it is very similar
|
||||
to C++. An in depth discussion of the language is beyond the
|
||||
scope of this document. It is extensively discussed
|
||||
at <ulink
|
||||
url="http://wikis.sun.com/display/DTrace/Documentation"></ulink>.</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
||||
|
|
Loading…
Reference in a new issue