summaryrefslogtreecommitdiffstats
path: root/man/systemd-bootchart.xml
diff options
context:
space:
mode:
Diffstat (limited to 'man/systemd-bootchart.xml')
-rw-r--r--man/systemd-bootchart.xml601
1 files changed, 294 insertions, 307 deletions
diff --git a/man/systemd-bootchart.xml b/man/systemd-bootchart.xml
index ff86be2ad8..ab883c262d 100644
--- a/man/systemd-bootchart.xml
+++ b/man/systemd-bootchart.xml
@@ -1,7 +1,7 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@@ -27,311 +27,298 @@
-->
<refentry id="systemd-bootchart" conditional='ENABLE_BOOTCHART'
- xmlns:xi="http://www.w3.org/2001/XInclude">
-
- <refentryinfo>
- <title>systemd-bootchart</title>
- <productname>systemd</productname>
-
- <authorgroup>
- <author>
- <contrib>Developer</contrib>
- <firstname>Auke</firstname>
- <surname>Kok</surname>
- <email>auke-jan.h.kok@intel.com</email>
- </author>
- </authorgroup>
- </refentryinfo>
-
- <refmeta>
- <refentrytitle>systemd-bootchart</refentrytitle>
- <manvolnum>1</manvolnum>
- </refmeta>
-
- <refnamediv>
- <refname>systemd-bootchart</refname>
- <refpurpose>Boot performance graphing tool</refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- <command>systemd-bootchart</command> is a
- tool, usually run at system startup, that
- collects the CPU load, disk load, memory
- usage, as well as per-process information from
- a running system. Collected results are output
- as an SVG graph. Normally, systemd-bootchart
- is invoked by the kernel by passing
- <option>init=<filename>/usr/lib/systemd/systemd-bootchart</filename></option>
- on the kernel command line. systemd-bootchart will then
- fork the real init off to resume normal system
- startup, while monitoring and logging startup
- information in the background.
- </para>
- <para>
- After collecting a certain amount of data
- (usually 15-30 seconds, default 20 s) the
- logging stops and a graph is generated from
- the logged information. This graph contains
- vital clues as to which resources are being used,
- in which order, and where possible problems
- exist in the startup sequence of the system.
- It is essentially a more detailed version of
- the <command>systemd-analyze plot</command>
- function.
- </para>
- <para>
- Of course, bootchart can also be used at any
- moment in time to collect and graph some data
- for an amount of time. It is
- recommended to use the <option>--rel</option>
- switch in this case.
- </para>
- <para>
- Bootchart does not require root privileges,
- and will happily run as a normal user.
- </para>
- <para>
- Bootchart graphs are by default written
- time-stamped in <filename>/run/log</filename>
- and saved to the journal with
- <varname>MESSAGE_ID=9f26aa562cf440c2b16c773d0479b518</varname>.
- Journal field <varname>BOOTCHART=</varname> contains
- the bootchart in SVG format.
- </para>
-
- </refsect1>
-
- <refsect1>
- <title>Invocation</title>
-
- <para><command>systemd-bootchart</command> can be invoked in several different ways:</para>
-
- <variablelist>
-
- <varlistentry>
- <term><emphasis>Kernel invocation</emphasis></term>
- <listitem><para>The kernel can invoke
- <command>systemd-bootchart</command>
- instead of the init process. In turn,
- <command>systemd-bootchart</command>
- will invoke <command>/usr/lib/systemd/systemd</command>.
- </para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><emphasis>Started as a standalone program</emphasis></term>
- <listitem><para>One can execute
- <command>systemd-bootchart</command>
- as normal application from the
- command line. In this mode it is highly
- recommended to pass the
- <option>-r</option> flag in order to
- not graph the time elapsed since boot
- and before systemd-bootchart was
- started, as it may result in extremely
- large graphs. The time elapsed since boot
- might also include any time that the system
- was suspended.</para></listitem>
- </varlistentry>
- </variablelist>
- </refsect1>
-
- <refsect1>
- <title>Options</title>
-
- <para>These options can also be set in the
- <filename>/etc/systemd/bootchart.conf</filename>
- file. See
- <citerefentry project='man-pages'><refentrytitle>bootchart.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
- </para>
-
- <variablelist>
- <xi:include href="standard-options.xml" xpointer="help" />
-
- <varlistentry>
- <term><option>-n</option></term>
- <term><option>--sample <replaceable>N</replaceable></option></term>
- <listitem><para>Specify the number of
- samples, <replaceable>N</replaceable>,
- to record. Samples will be recorded at
- intervals defined with <option>--freq</option>.
- </para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-f</option></term>
- <term><option>--freq <replaceable>f</replaceable></option></term>
- <listitem><para>Specify the sample log
- frequency, a positive real <replaceable>f</replaceable>, in Hz.
- Most systems can cope with values up to 25-50 without
- creating too much overhead.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-r</option></term>
- <term><option>--rel</option></term>
- <listitem><para>Use relative times instead of absolute
- times. This is useful for using bootchart at post-boot
- time to profile an already booted system. Without this
- option the graph would become extremely large. If set, the
- horizontal axis starts at the first recorded sample
- instead of time 0.0.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-F</option></term>
- <term><option>--no-filter</option></term>
- <listitem><para>Disable filtering of tasks that
- did not contribute significantly to the boot. Processes
- that are too short-lived (only seen in one sample) or
- that do not consume any significant CPU time (less than
- 0.001 s) will not be displayed in the output graph.
- </para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-C</option></term>
- <term><option>--cmdline</option></term>
- <listitem><para>Display the full command line with arguments of processes,
- instead of only the process name.
- </para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-g</option></term>
- <term><option>--control-group</option></term>
- <listitem><para>Display process control group
- </para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-o</option></term>
- <term><option>--output <replaceable>path</replaceable></option></term>
- <listitem><para>Specify the output directory for the
- graphs. By default, bootchart writes the graphs to
- <filename>/run/log</filename>.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-i</option></term>
- <term><option>--init <replaceable>path</replaceable></option></term>
- <listitem><para>Use this init binary. Defaults to
- <command>/usr/lib/systemd/systemd</command>.
- </para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-p</option></term>
- <term><option>--pss</option></term>
- <listitem><para>Enable logging and graphing
- of processes' PSS (Proportional Set Size)
- memory consumption. See <filename>filesystems/proc.txt</filename>
- in the kernel documentation for an
- explanation of this field.
- </para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-e</option></term>
- <term><option>--entropy</option></term>
- <listitem><para>Enable logging and graphing
- of the kernel random entropy pool size.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-x</option></term>
- <term><option>--scale-x <replaceable>N</replaceable></option></term>
- <listitem><para>Horizontal scaling factor for all variable
- graph components.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-y</option></term>
- <term><option>--scale-y <replaceable>N</replaceable></option></term>
- <listitem><para>Vertical scaling factor for all variable
- graph components.</para></listitem>
- </varlistentry>
-
- </variablelist>
-
-
- </refsect1>
-
- <refsect1>
- <title>Output</title>
-
- <para><command>systemd-bootchart</command> generates SVG graphs. In order to render those
- on a graphical display any SVG capable viewer can be used. It should be
- noted that the SVG render engines in most browsers (including Chrome
- and Firefox) are many times faster than dedicated graphical applications
- like Gimp and Inkscape. Just point your browser at <ulink url="file:///run/log/" />!
- </para>
- </refsect1>
-
- <refsect1>
- <title>History</title>
-
- <para>This version of bootchart was implemented from
- scratch, but is inspired by former bootchart
- incantations:</para>
-
- <variablelist>
- <varlistentry>
- <term><emphasis>Original bash</emphasis></term>
- <listitem><para>The original bash/shell code implemented
- bootchart. This version created a compressed tarball for
- processing with external applications. This version did
- not graph anything, only generated data.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><emphasis>Ubuntu C Implementation</emphasis></term>
- <listitem><para>This version replaced the shell version with
- a fast and efficient data logger, but also did not graph
- the data.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><emphasis>Java bootchart</emphasis></term>
- <listitem><para>This was the original graphing application
- for charting the data, written in java.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><emphasis>pybootchartgui.py</emphasis></term>
- <listitem><para>pybootchart created a graph from the data
- collected by either the bash or C version.</para></listitem>
- </varlistentry>
- </variablelist>
-
- <para>The version of bootchart you are using now combines both the data
- collection and the charting into a single application, making it more
- efficient and simpler. There are no longer any timing issues with the data
- collector and the grapher, as the graphing cannot be run until the data
- has been collected. Also, the data kept in memory is reduced to the absolute
- minimum needed.</para>
-
- </refsect1>
-
- <refsect1>
- <title>See Also</title>
- <para>
- <citerefentry project='man-pages'><refentrytitle>bootchart.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
- </para>
- </refsect1>
-
- <refsect1>
- <title>Bugs</title>
- <para>systemd-bootchart does not get the model information for the hard drive
- unless the root device is specified with <code>root=/dev/sdxY</code>. Using
- UUIDs or PARTUUIDs will boot fine, but the hard drive model will not be
- added to the chart.</para>
- <para>For bugs, please contact the author and current maintainer:</para>
- <simplelist>
- <member>Auke Kok <email>auke-jan.h.kok@intel.com</email></member>
- </simplelist>
- </refsect1>
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+
+ <refentryinfo>
+ <title>systemd-bootchart</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>Auke</firstname>
+ <surname>Kok</surname>
+ <email>auke-jan.h.kok@intel.com</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>systemd-bootchart</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>systemd-bootchart</refname>
+ <refpurpose>Boot performance graphing tool</refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ <command>systemd-bootchart</command> is a tool, usually run at
+ system startup, that collects the CPU load, disk load, memory
+ usage, as well as per-process information from a running system.
+ Collected results are output as an SVG graph. Normally,
+ systemd-bootchart is invoked by the kernel by passing
+ <option>init=<filename>/usr/lib/systemd/systemd-bootchart</filename></option>
+ on the kernel command line. systemd-bootchart will then fork the
+ real init off to resume normal system startup, while monitoring
+ and logging startup information in the background.
+ </para>
+ <para>
+ After collecting a certain amount of data (usually 15-30
+ seconds, default 20 s) the logging stops and a graph is
+ generated from the logged information. This graph contains vital
+ clues as to which resources are being used, in which order, and
+ where possible problems exist in the startup sequence of the
+ system. It is essentially a more detailed version of the
+ <command>systemd-analyze plot</command> function.
+ </para>
+ <para>
+ Of course, bootchart can also be used at any moment in time to
+ collect and graph some data for an amount of time. It is
+ recommended to use the <option>--rel</option> switch in this
+ case.
+ </para>
+ <para>
+ Bootchart does not require root privileges, and will happily run
+ as a normal user.
+ </para>
+ <para>
+ Bootchart graphs are by default written time-stamped in
+ <filename>/run/log</filename> and saved to the journal with
+ <varname>MESSAGE_ID=9f26aa562cf440c2b16c773d0479b518</varname>.
+ Journal field <varname>BOOTCHART=</varname> contains the
+ bootchart in SVG format.
+ </para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Invocation</title>
+
+ <para><command>systemd-bootchart</command> can be invoked in several different ways:</para>
+
+ <variablelist>
+
+ <varlistentry>
+ <term><emphasis>Kernel invocation</emphasis></term>
+ <listitem><para>The kernel can invoke
+ <command>systemd-bootchart</command> instead of the init
+ process. In turn, <command>systemd-bootchart</command> will
+ invoke <command>/usr/lib/systemd/systemd</command>.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis>Started as a standalone program</emphasis></term>
+ <listitem><para>One can execute
+ <command>systemd-bootchart</command> as normal application
+ from the command line. In this mode it is highly recommended
+ to pass the <option>-r</option> flag in order to not graph the
+ time elapsed since boot and before systemd-bootchart was
+ started, as it may result in extremely large graphs. The time
+ elapsed since boot might also include any time that the system
+ was suspended.</para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <para>These options can also be set in the
+ <filename>/etc/systemd/bootchart.conf</filename> file. See
+ <citerefentry project='man-pages'><refentrytitle>bootchart.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
+ </para>
+
+ <variablelist>
+ <xi:include href="standard-options.xml" xpointer="help" />
+
+ <varlistentry>
+ <term><option>-n</option></term>
+ <term><option>--sample <replaceable>N</replaceable></option></term>
+ <listitem><para>Specify the number of samples,
+ <replaceable>N</replaceable>, to record. Samples will be
+ recorded at intervals defined with <option>--freq</option>.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-f</option></term>
+ <term><option>--freq <replaceable>f</replaceable></option></term>
+ <listitem><para>Specify the sample log frequency, a positive
+ real <replaceable>f</replaceable>, in Hz. Most systems can
+ cope with values up to 25-50 without creating too much
+ overhead.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-r</option></term>
+ <term><option>--rel</option></term>
+ <listitem><para>Use relative times instead of absolute times.
+ This is useful for using bootchart at post-boot time to
+ profile an already booted system. Without this option the
+ graph would become extremely large. If set, the horizontal
+ axis starts at the first recorded sample instead of time
+ 0.0.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-F</option></term>
+ <term><option>--no-filter</option></term>
+ <listitem><para>Disable filtering of tasks that did not
+ contribute significantly to the boot. Processes that are too
+ short-lived (only seen in one sample) or that do not consume
+ any significant CPU time (less than 0.001 s) will not be
+ displayed in the output graph. </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-C</option></term>
+ <term><option>--cmdline</option></term>
+ <listitem><para>Display the full command line with arguments
+ of processes, instead of only the process name.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-g</option></term>
+ <term><option>--control-group</option></term>
+ <listitem><para>Display process control group
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-o</option></term>
+ <term><option>--output <replaceable>path</replaceable></option></term>
+ <listitem><para>Specify the output directory for the graphs.
+ By default, bootchart writes the graphs to
+ <filename>/run/log</filename>.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-i</option></term>
+ <term><option>--init <replaceable>path</replaceable></option></term>
+ <listitem><para>Use this init binary. Defaults to
+ <command>/usr/lib/systemd/systemd</command>.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-p</option></term>
+ <term><option>--pss</option></term>
+ <listitem><para>Enable logging and graphing of processes' PSS
+ (Proportional Set Size) memory consumption. See
+ <filename>filesystems/proc.txt</filename> in the kernel
+ documentation for an explanation of this field.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-e</option></term>
+ <term><option>--entropy</option></term>
+ <listitem><para>Enable logging and graphing of the kernel
+ random entropy pool size.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-x</option></term>
+ <term><option>--scale-x <replaceable>N</replaceable></option></term>
+ <listitem><para>Horizontal scaling factor for all variable
+ graph components.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-y</option></term>
+ <term><option>--scale-y <replaceable>N</replaceable></option></term>
+ <listitem><para>Vertical scaling factor for all variable graph
+ components.</para></listitem>
+ </varlistentry>
+
+ </variablelist>
+
+
+ </refsect1>
+
+ <refsect1>
+ <title>Output</title>
+
+ <para><command>systemd-bootchart</command> generates SVG graphs.
+ In order to render those on a graphical display any SVG capable
+ viewer can be used. It should be noted that the SVG render engines
+ in most browsers (including Chrome and Firefox) are many times
+ faster than dedicated graphical applications like Gimp and
+ Inkscape. Just point your browser at
+ <ulink url="file:///run/log/" />!
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>History</title>
+
+ <para>This version of bootchart was implemented from scratch, but
+ is inspired by former bootchart incantations:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><emphasis>Original bash</emphasis></term>
+ <listitem><para>The original bash/shell code implemented
+ bootchart. This version created a compressed tarball for
+ processing with external applications. This version did not
+ graph anything, only generated data.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis>Ubuntu C Implementation</emphasis></term>
+ <listitem><para>This version replaced the shell version with a
+ fast and efficient data logger, but also did not graph the
+ data.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis>Java bootchart</emphasis></term>
+ <listitem><para>This was the original graphing application for
+ charting the data, written in java.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis>pybootchartgui.py</emphasis></term>
+ <listitem><para>pybootchart created a graph from the data
+ collected by either the bash or C version.</para></listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>The version of bootchart you are using now combines both the
+ data collection and the charting into a single application, making
+ it more efficient and simpler. There are no longer any timing
+ issues with the data collector and the grapher, as the graphing
+ cannot be run until the data has been collected. Also, the data
+ kept in memory is reduced to the absolute minimum needed.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+
+ <para>
+ <citerefentry project='man-pages'><refentrytitle>bootchart.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Bugs</title>
+
+ <para>systemd-bootchart does not get the model information for the
+ hard drive unless the root device is specified with
+ <code>root=/dev/sdxY</code>. Using UUIDs or PARTUUIDs will boot
+ fine, but the hard drive model will not be added to the
+ chart.</para>
+ <para>For bugs, please contact the author and current maintainer:</para>
+ <simplelist>
+ <member>Auke Kok <email>auke-jan.h.kok@intel.com</email></member>
+ </simplelist>
+ </refsect1>
</refentry>