- Mark up DTrace with a &dtrace; entity for eliminating further spelling
mistakes Reviewed by: manolis, keramida, trhodes
This commit is contained in:
parent
5e306063fe
commit
aeaf4529f1
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=33266
3 changed files with 37 additions and 32 deletions
|
@ -22,44 +22,44 @@ that might make this chapter too large.
|
|||
</authorgroup>
|
||||
</chapterinfo>
|
||||
|
||||
<title>DTrace</title>
|
||||
<title>&dtrace;</title>
|
||||
|
||||
<sect1 id="dtrace-synopsis">
|
||||
<title>Synopsis</title>
|
||||
|
||||
<indexterm><primary>DTrace</primary></indexterm>
|
||||
<indexterm><primary>&dtrace;</primary></indexterm>
|
||||
<indexterm>
|
||||
<primary>DTrace support</primary>
|
||||
<see>DTrace</see>
|
||||
<primary>&dtrace; support</primary>
|
||||
<see>&dtrace;</see>
|
||||
</indexterm>
|
||||
|
||||
<para>DTrace, also known as Dynamic Tracing, was developed by
|
||||
<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
|
||||
<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
|
||||
the &dtrace; D Language, allowing them to customize their profiling
|
||||
based on specific needs.</para>
|
||||
|
||||
<para>After reading this chapter, you will know:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>What DTrace is and what features it provides.</para>
|
||||
<para>What &dtrace; is and what features it provides.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Differences between the &solaris; DTrace implementation
|
||||
<para>Differences between the &solaris; &dtrace; implementation
|
||||
and the one provided by &os;.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>How to enable and use DTrace on &os;.</para>
|
||||
<para>How to enable and use &dtrace; on &os;.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
|
@ -104,11 +104,11 @@ that might make this chapter too large.
|
|||
<sect1 id="dtrace-implementation">
|
||||
<title>Implementation Differences</title>
|
||||
|
||||
<para>While the DTrace in &os; is very similar to that found
|
||||
<para>While the &dtrace; in &os; is very similar to that found
|
||||
in &solaris;, differences exist that should be explained before
|
||||
continuing. The primary difference users will notice is that
|
||||
on &os;, DTrace needs to be specifically enabled. There are
|
||||
kernel options and modules which must be enabled for DTrace to
|
||||
on &os;, &dtrace; needs to be specifically enabled. There are
|
||||
kernel options and modules which must be enabled for &dtrace; to
|
||||
work properly. These will be explained later.</para>
|
||||
|
||||
<para>There is a <literal>DDB_CTF</literal> kernel option which
|
||||
|
@ -132,29 +132,29 @@ that might make this chapter too large.
|
|||
allows tracing <function>malloc()</function> by type in the
|
||||
&os; kernel.</para>
|
||||
|
||||
<para>Only <username>root</username> may use DTrace on &os;.
|
||||
<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>
|
||||
|
||||
<para>Finally, the DTrace software falls under &sun;'s
|
||||
<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
|
||||
<filename>/usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE</filename>
|
||||
or view it online at
|
||||
<ulink url="http://www.opensolaris.org/os/licensing"></ulink>.</para>
|
||||
|
||||
<para>This license means that a &os; kernel with the DTrace options
|
||||
<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">
|
||||
<title>Enabling DTrace Support</title>
|
||||
<title>Enabling &dtrace; Support</title>
|
||||
|
||||
<para>To enable support for DTrace, add the following lines to
|
||||
<para>To enable support for &dtrace;, add the following lines to
|
||||
the kernel configuration file:</para>
|
||||
|
||||
<programlisting>options KDTRACE_HOOKS
|
||||
|
@ -167,7 +167,7 @@ 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
|
||||
feature. &dtrace; will work without this option; however, there
|
||||
will be limited support for function boundary tracing.</para>
|
||||
</note>
|
||||
|
||||
|
@ -190,14 +190,14 @@ options DDB_CTF</programlisting>
|
|||
|
||||
<para>After rebooting and allowing the new kernel to be loaded
|
||||
into memory, support for the Korn shell should be added. This
|
||||
is needed as the DTrace toolkit has several utilities written
|
||||
is needed as the &dtrace; toolkit has several utilities written
|
||||
in <command>ksh</command>. Install the
|
||||
<filename role="package">shells/ksh93</filename>. It is also
|
||||
possible to run these tools under
|
||||
<filename role="package">shells/pdksh</filename> or
|
||||
<filename role="package">shells/mksh</filename>.</para>
|
||||
|
||||
<para>Finally, obtain the current DTrace toolkit. The current
|
||||
<para>Finally, obtain the current &dtrace; toolkit. The current
|
||||
version is available at
|
||||
<ulink url="http://www.opensolaris.org/os/community/dtrace/dtracetoolkit/"></ulink>.
|
||||
There is an install mechanism included; however, installation
|
||||
|
@ -205,26 +205,26 @@ options DDB_CTF</programlisting>
|
|||
</sect1>
|
||||
|
||||
<sect1 id="dtrace-using">
|
||||
<title>Using DTrace</title>
|
||||
<title>Using &dtrace;</title>
|
||||
|
||||
<para>Before making use of DTrace functionality, the DTrace device
|
||||
<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
|
||||
<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>
|
||||
|
||||
<para>All output is passed to the <command>more</command>
|
||||
utility as it will quickly overflow the screen buffer. At
|
||||
this point, DTrace should be considered working. It is now
|
||||
this point, &dtrace; should be considered working. It is now
|
||||
time to review the toolkit.</para>
|
||||
|
||||
<para>The toolkit is a collection of ready-made scripts to run
|
||||
with DTrace to collect system information. There are scripts
|
||||
with &dtrace; to collect system information. There are scripts
|
||||
to check open files, memory, <acronym>CPU</acronym> usage and
|
||||
a lot more. Extract the scripts with the following
|
||||
command:</para>
|
||||
|
@ -247,14 +247,14 @@ options DDB_CTF</programlisting>
|
|||
|
||||
<important>
|
||||
<para>At this point it is prudent to remind the reader that
|
||||
DTrace support in &os; is <emphasis>incomplete</emphasis>
|
||||
&dtrace; support in &os; is <emphasis>incomplete</emphasis>
|
||||
and <emphasis>experimental</emphasis>. Many of these scripts
|
||||
will not work as they are either too &solaris;-specific or
|
||||
use probes which are unsupported at this time.</para>
|
||||
</important>
|
||||
|
||||
<para>At the time of this writing only two of the scripts of the
|
||||
DTrace Toolkit are fully supported in &os;:
|
||||
&dtrace; Toolkit are fully supported in &os;:
|
||||
the <filename>hotkernel</filename>
|
||||
and <filename>procsystime</filename> scripts. These are the two
|
||||
we will explore in the following parts of this section.</para>
|
||||
|
@ -371,8 +371,8 @@ Elapsed Times for processes csh,
|
|||
<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;
|
||||
<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
|
||||
|
|
|
@ -428,9 +428,9 @@
|
|||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="dtrace">, DTrace</emphasis></term>
|
||||
<term><emphasis><xref linkend="dtrace">, &dtrace;</emphasis></term>
|
||||
<listitem>
|
||||
<para>Describes how to configure and use the DTrace tool from &sun;
|
||||
<para>Describes how to configure and use the &dtrace; tool from &sun;
|
||||
in &os;. Dynamic tracing can help locate performance issues, by
|
||||
performing real time system analysis.</para>
|
||||
</listitem>
|
||||
|
|
|
@ -50,6 +50,11 @@ used in both environments.
|
|||
<!ENTITY xorg "Xorg">
|
||||
<!ENTITY xorg.version "7.3">
|
||||
|
||||
<!-- Use an entity for DTrace to avoid spelling
|
||||
mistakes stem from unusual capitalization -->
|
||||
|
||||
<!ENTITY dtrace "DTrace">
|
||||
|
||||
<!-- The currently released version of FreeBSD. This value is used to
|
||||
create some links on web sites and such, so do NOT change it until
|
||||
it's really release time -->
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue