diff options
Diffstat (limited to 'man/systemd-bootchart.xml')
-rw-r--r-- | man/systemd-bootchart.xml | 601 |
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> |