1SYSTEMD-BOOTCHART(1)           systemd-bootchart          SYSTEMD-BOOTCHART(1)
2
3
4

NAME

6       systemd-bootchart - Boot performance graphing tool
7

DESCRIPTION

9       systemd-bootchart is a tool, usually run at system startup, that
10       collects the CPU load, disk load, memory usage, as well as per-process
11       information from a running system. Collected results are output as an
12       SVG graph. Normally, systemd-bootchart is invoked by the kernel by
13       passing init=/usr/lib/systemd/systemd-bootchart on the kernel command
14       line, adding initcall_debug to collect data on kernel init threads.
15       systemd-bootchart will then fork the real init off to resume normal
16       system startup, while monitoring and logging startup information in the
17       background.
18
19       After collecting a certain amount of data (usually 15-30 seconds,
20       default 20 s) the logging stops and a graph is generated from the
21       logged information. This graph contains vital clues as to which
22       resources are being used, in which order, and where possible problems
23       exist in the startup sequence of the system. It is essentially a more
24       detailed version of the systemd-analyze plot function.
25
26       Of course, bootchart can also be used at any moment in time to collect
27       and graph some data for an amount of time. It is recommended to use the
28       --rel switch in this case.
29
30       Bootchart does not require root privileges, and will happily run as a
31       normal user.
32
33       Bootchart graphs are by default written time-stamped in /run/log and
34       saved to the journal with MESSAGE_ID=9f26aa562cf440c2b16c773d0479b518.
35       Journal field BOOTCHART= contains the bootchart in SVG format.
36

INVOCATION

38       systemd-bootchart can be invoked in several different ways:
39
40       Kernel invocation
41           The kernel can invoke systemd-bootchart instead of the init
42           process. In turn, systemd-bootchart will invoke
43           /usr/lib/systemd/systemd. Data will be collected on kernel init
44           threads and also processes including the services started by
45           systemd.
46
47       systemd unit
48           A unit file is provided, systemd-bootchart.service. If enabled when
49           the system starts it will collect data on processes including the
50           services started by systemd.
51
52       Started as a standalone program
53           One can execute systemd-bootchart as normal application from the
54           command line. In this mode it is highly recommended to pass the -r
55           flag in order to not graph the time elapsed since boot and before
56           systemd-bootchart was started, as it may result in extremely large
57           graphs. The time elapsed since boot might also include any time
58           that the system was suspended.
59

OPTIONS

61       These options can also be set in the /etc/systemd/bootchart.conf file.
62       See bootchart.conf(5).
63
64       -h, --help
65           Print a short help text and exit.
66
67       -n, --sample N
68           Specify the number of samples, N, to record. Samples will be
69           recorded at intervals defined with --freq.
70
71       -f, --freq f
72           Specify the sample log frequency, a positive real f, in Hz. Most
73           systems can cope with values up to 25-50 without creating too much
74           overhead.
75
76       -r, --rel
77           Use relative times instead of absolute times. This is useful for
78           using bootchart at post-boot time to profile an already booted
79           system. Without this option the graph would become extremely large.
80           If set, the horizontal axis starts at the first recorded sample
81           instead of time 0.0.
82
83       -F, --no-filter
84           Disable filtering of tasks that did not contribute significantly to
85           the boot. Processes that are too short-lived (only seen in one
86           sample) or that do not consume any significant CPU time (less than
87           0.001 s) will not be displayed in the output graph.
88
89       -C, --cmdline
90           Display the full command line with arguments of processes, instead
91           of only the process name.
92
93       -g, --control-group
94           Display process control group
95
96       -o, --output path
97           Specify the output directory for the graphs. By default, bootchart
98           writes the graphs to /run/log.
99
100       -i, --init path
101           Use this init binary. Defaults to /usr/lib/systemd/systemd.
102
103       -p, --pss
104           Enable logging and graphing of processes' PSS (Proportional Set
105           Size) memory consumption. See filesystems/proc.txt in the kernel
106           documentation for an explanation of this field.
107
108       -e, --entropy
109           Enable logging and graphing of the kernel random entropy pool size.
110
111       -x, --scale-x N
112           Horizontal scaling factor for all variable graph components.
113
114       -y, --scale-y N
115           Vertical scaling factor for all variable graph components.
116

OUTPUT

118       systemd-bootchart generates SVG graphs. In order to render those on a
119       graphical display any SVG capable viewer can be used. It should be
120       noted that the SVG render engines in most browsers (including Chrome
121       and Firefox) are many times faster than dedicated graphical
122       applications like Gimp and Inkscape. Just point your browser at
123       file:///run/log/!
124

HISTORY

126       This version of bootchart was implemented from scratch, but is inspired
127       by former bootchart incantations:
128
129       Original bash
130           The original bash/shell code implemented bootchart. This version
131           created a compressed tarball for processing with external
132           applications. This version did not graph anything, only generated
133           data.
134
135       Ubuntu C Implementation
136           This version replaced the shell version with a fast and efficient
137           data logger, but also did not graph the data.
138
139       Java bootchart
140           This was the original graphing application for charting the data,
141           written in java.
142
143       pybootchartgui.py
144           pybootchart created a graph from the data collected by either the
145           bash or C version.
146
147       The version of bootchart you are using now combines both the data
148       collection and the charting into a single application, making it more
149       efficient and simpler. There are no longer any timing issues with the
150       data collector and the grapher, as the graphing cannot be run until the
151       data has been collected. Also, the data kept in memory is reduced to
152       the absolute minimum needed.
153

SEE ALSO

155       bootchart.conf(5)
156

BUGS

158       systemd-bootchart does not get the model information for the hard drive
159       unless the root device is specified with root=/dev/sdxY. Using UUIDs or
160       PARTUUIDs will boot fine, but the hard drive model will not be added to
161       the chart.
162
163       For bugs, please contact the author and current maintainer:
164           Auke Kok <auke-jan.h.kok@intel.com>
165
166
167
168systemd 233                                               SYSTEMD-BOOTCHART(1)
Impressum