1SYSTEMD-BOOTCHART(1) systemd-bootchart SYSTEMD-BOOTCHART(1)
2
3
4
6 systemd-bootchart - Boot performance graphing tool
7
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. systemd-bootchart will then fork the real init off to resume
15 normal system startup, while monitoring and logging startup information
16 in the background.
17
18 After collecting a certain amount of data (usually 15-30 seconds,
19 default 20 s) the logging stops and a graph is generated from the
20 logged information. This graph contains vital clues as to which
21 resources are being used, in which order, and where possible problems
22 exist in the startup sequence of the system. It is essentially a more
23 detailed version of the systemd-analyze plot function.
24
25 Of course, bootchart can also be used at any moment in time to collect
26 and graph some data for an amount of time. It is recommended to use the
27 --rel switch in this case.
28
29 Bootchart does not require root privileges, and will happily run as a
30 normal user.
31
32 Bootchart graphs are by default written time-stamped in /run/log and
33 saved to the journal with MESSAGE_ID=9f26aa562cf440c2b16c773d0479b518.
34 Journal field BOOTCHART= contains the bootchart in SVG format.
35
37 systemd-bootchart can be invoked in several different ways:
38
39 Kernel invocation
40 The kernel can invoke systemd-bootchart instead of the init
41 process. In turn, systemd-bootchart will invoke
42 /usr/lib/systemd/systemd.
43
44 Started as a standalone program
45 One can execute systemd-bootchart as normal application from the
46 command line. In this mode it is highly recommended to pass the -r
47 flag in order to not graph the time elapsed since boot and before
48 systemd-bootchart was started, as it may result in extremely large
49 graphs. The time elapsed since boot might also include any time
50 that the system was suspended.
51
53 These options can also be set in the /etc/systemd/bootchart.conf file.
54 See bootchart.conf(5).
55
56 -h, --help
57 Print a short help text and exit.
58
59 -n, --sample N
60 Specify the number of samples, N, to record. Samples will be
61 recorded at intervals defined with --freq.
62
63 -f, --freq f
64 Specify the sample log frequency, a positive real f, in Hz. Most
65 systems can cope with values up to 25-50 without creating too much
66 overhead.
67
68 -r, --rel
69 Use relative times instead of absolute times. This is useful for
70 using bootchart at post-boot time to profile an already booted
71 system. Without this option the graph would become extremely large.
72 If set, the horizontal axis starts at the first recorded sample
73 instead of time 0.0.
74
75 -F, --no-filter
76 Disable filtering of tasks that did not contribute significantly to
77 the boot. Processes that are too short-lived (only seen in one
78 sample) or that do not consume any significant CPU time (less than
79 0.001 s) will not be displayed in the output graph.
80
81 -C, --cmdline
82 Display the full command line with arguments of processes, instead
83 of only the process name.
84
85 -g, --control-group
86 Display process control group
87
88 -o, --output path
89 Specify the output directory for the graphs. By default, bootchart
90 writes the graphs to /run/log.
91
92 -i, --init path
93 Use this init binary. Defaults to /usr/lib/systemd/systemd.
94
95 -p, --pss
96 Enable logging and graphing of processes' PSS (Proportional Set
97 Size) memory consumption. See filesystems/proc.txt in the kernel
98 documentation for an explanation of this field.
99
100 -e, --entropy
101 Enable logging and graphing of the kernel random entropy pool size.
102
103 -x, --scale-x N
104 Horizontal scaling factor for all variable graph components.
105
106 -y, --scale-y N
107 Vertical scaling factor for all variable graph components.
108
110 systemd-bootchart generates SVG graphs. In order to render those on a
111 graphical display any SVG capable viewer can be used. It should be
112 noted that the SVG render engines in most browsers (including Chrome
113 and Firefox) are many times faster than dedicated graphical
114 applications like Gimp and Inkscape. Just point your browser at
115 file:///run/log/!
116
118 This version of bootchart was implemented from scratch, but is inspired
119 by former bootchart incantations:
120
121 Original bash
122 The original bash/shell code implemented bootchart. This version
123 created a compressed tarball for processing with external
124 applications. This version did not graph anything, only generated
125 data.
126
127 Ubuntu C Implementation
128 This version replaced the shell version with a fast and efficient
129 data logger, but also did not graph the data.
130
131 Java bootchart
132 This was the original graphing application for charting the data,
133 written in java.
134
135 pybootchartgui.py
136 pybootchart created a graph from the data collected by either the
137 bash or C version.
138
139 The version of bootchart you are using now combines both the data
140 collection and the charting into a single application, making it more
141 efficient and simpler. There are no longer any timing issues with the
142 data collector and the grapher, as the graphing cannot be run until the
143 data has been collected. Also, the data kept in memory is reduced to
144 the absolute minimum needed.
145
147 bootchart.conf(5)
148
150 systemd-bootchart does not get the model information for the hard drive
151 unless the root device is specified with root=/dev/sdxY. Using UUIDs or
152 PARTUUIDs will boot fine, but the hard drive model will not be added to
153 the chart.
154
155 For bugs, please contact the author and current maintainer:
156 Auke Kok <auke-jan.h.kok@intel.com>
157
158
159
160systemd 219 SYSTEMD-BOOTCHART(1)