SYSTEMD-BOOTCHART(1)          systemd-bootchart         SYSTEMD-BOOTCHART(1)

NAME         top

       systemd-bootchart - Boot performance graphing tool

DESCRIPTION         top

       systemd-bootchart 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 init=/usr/lib/systemd/systemd-bootchart 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.

       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 systemd-analyze plot function.

       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 --rel switch in this case.

       Bootchart does not require root privileges, and will happily run as a
       normal user.

       Bootchart graphs are by default written time-stamped in /run/log and
       saved to the journal with
       MESSAGE_ID=9f26aa562cf440c2b16c773d0479b518. Journal field BOOTCHART=
       contains the bootchart in SVG format.

INVOCATION         top

       systemd-bootchart can be invoked in several different ways:

       Kernel invocation
           The kernel can invoke systemd-bootchart instead of the init
           process. In turn, systemd-bootchart will invoke

       Started as a standalone program
           One can execute systemd-bootchart as normal application from the
           command line. In this mode, it is highly recommended to pass the
           -r 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.

OPTIONS         top

       These options can also be set in the /etc/systemd/bootchart.conf
       file. See bootchart.conf(5).

       -h, --help
           Print a short help text and exit.

       -n, --sample N
           Specify the number of samples, N, to record. Samples will be
           recorded at intervals defined with --freq.

       -f, --freq f
           Specify the sample log frequency, a positive real f, in Hz. Most
           systems can cope with values up to 25–50 without creating too
           much overhead.

       -r, --rel
           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.

       -F, --no-filter
           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.

       -C, --cmdline
           Display the full command line with arguments of processes,
           instead of only the process name.

       -g, --control-group
           Display process control group

       -o, --output path
           Specify the output directory for the graphs. By default,
           bootchart writes the graphs to /run/log.

       -i, --init path
           Use this init binary. Defaults to /usr/lib/systemd/systemd.

       -p, --pss
           Enable logging and graphing of processes' PSS (Proportional Set
           Size) memory consumption. See filesystems/proc.txt in the kernel
           documentation for an explanation of this field.

       -e, --entropy
           Enable logging and graphing of the kernel random entropy pool

       -x, --scale-x N
           Horizontal scaling factor for all variable graph components.

       -y, --scale-y N
           Vertical scaling factor for all variable graph components.

OUTPUT         top

       systemd-bootchart 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

HISTORY         top

       This version of bootchart was implemented from scratch, but is
       inspired by former bootchart incantations:

       Original bash
           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

       Ubuntu C Implementation
           This version replaced the shell version with a fast and efficient
           data logger, but also did not graph the data.

       Java bootchart
           This was the original graphing application for charting the data,
           written in java.
           pybootchart created a graph from the data collected by either the
           bash or C version.

       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.

SEE ALSO         top


BUGS         top

       systemd-bootchart does not get the model information for the hard
       drive unless the root device is specified with root=/dev/sdxY. Using
       UUIDs or PARTUUIDs will boot fine, but the hard drive model will not
       be added to the chart.

       For bugs, please contact the author and current maintainer:
           Auke Kok <>

COLOPHON         top

       This page is part of the systemd (systemd system and service manager)
       project.  Information about the project can be found at 
       ⟨⟩.  If you have a bug
       report for this manual page, see
       ⟨⟩.  This
       page was obtained from the project's upstream Git repository
       ⟨⟩ on 2019-05-09.  (At that
       time, the date of the most recent commit that was found in the repos‐
       itory was 2019-05-09.)  If you discover any rendering problems in
       this HTML version of the page, or you believe there is a better or
       more up-to-date source for the page, or you have corrections or
       improvements to the information in this COLOPHON (which is not part
       of the original manual page), send a mail to

systemd 228                                             SYSTEMD-BOOTCHART(1)

Pages that refer to this page: bootchart.conf(5)