]> git.proxmox.com Git - systemd.git/blame - man/systemd-bootchart.1
Imported Upstream version 219
[systemd.git] / man / systemd-bootchart.1
CommitLineData
14228c0d 1'\" t
e735f4d4 2.TH "SYSTEMD\-BOOTCHART" "1" "" "systemd 219" "systemd-bootchart"
14228c0d
MB
3.\" -----------------------------------------------------------------
4.\" * Define some portability stuff
5.\" -----------------------------------------------------------------
6.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7.\" http://bugs.debian.org/507673
8.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
9.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10.ie \n(.g .ds Aq \(aq
11.el .ds Aq '
12.\" -----------------------------------------------------------------
13.\" * set default formatting
14.\" -----------------------------------------------------------------
15.\" disable hyphenation
16.nh
17.\" disable justification (adjust text to left margin only)
18.ad l
19.\" -----------------------------------------------------------------
20.\" * MAIN CONTENT STARTS HERE *
21.\" -----------------------------------------------------------------
22.SH "NAME"
23systemd-bootchart \- Boot performance graphing tool
24.SH "DESCRIPTION"
25.PP
26\fBsystemd\-bootchart\fR
27is 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
28\fBinit=\fR\fB/usr/lib/systemd/systemd\-bootchart\fR
f47781d8 29on 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\&.
14228c0d
MB
30.PP
31After 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
60f067b4 32\fBsystemd\-analyze plot\fR
14228c0d
MB
33function\&.
34.PP
35Of 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
36\fB\-\-rel\fR
37switch in this case\&.
38.PP
39Bootchart does not require root privileges, and will happily run as a normal user\&.
40.PP
41Bootchart graphs are by default written time\-stamped in
42/run/log
43and saved to the journal with
44\fIMESSAGE_ID=9f26aa562cf440c2b16c773d0479b518\fR\&. Journal field
45\fIBOOTCHART=\fR
46contains the bootchart in SVG format\&.
47.SH "INVOCATION"
48.PP
49\fBsystemd\-bootchart\fR
50can be invoked in several different ways:
51.PP
52\fIKernel invocation\fR
53.RS 4
54The kernel can invoke
55\fBsystemd\-bootchart\fR
56instead of the init process\&. In turn,
57\fBsystemd\-bootchart\fR
58will invoke
e735f4d4 59\fB/usr/lib/systemd/systemd\fR\&.
14228c0d
MB
60.RE
61.PP
62\fIStarted as a standalone program\fR
63.RS 4
64One can execute
65\fBsystemd\-bootchart\fR
f47781d8 66as normal application from the command line\&. In this mode it is highly recommended to pass the
14228c0d 67\fB\-r\fR
5eef597e 68flag 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\&.
14228c0d
MB
69.RE
70.SH "OPTIONS"
71.PP
72These options can also be set in the
73/etc/systemd/bootchart\&.conf
74file\&. See
75\fBbootchart.conf\fR(5)\&.
76.PP
77\fB\-h\fR, \fB\-\-help\fR
78.RS 4
60f067b4 79Print a short help text and exit\&.
14228c0d
MB
80.RE
81.PP
82\fB\-n\fR, \fB\-\-sample \fR\fB\fIN\fR\fR
83.RS 4
84Specify the number of samples,
85\fIN\fR, to record\&. Samples will be recorded at intervals defined with
86\fB\-\-freq\fR\&.
87.RE
88.PP
89\fB\-f\fR, \fB\-\-freq \fR\fB\fIf\fR\fR
90.RS 4
91Specify the sample log frequency, a positive real
92\fIf\fR, in Hz\&. Most systems can cope with values up to 25\-50 without creating too much overhead\&.
93.RE
94.PP
95\fB\-r\fR, \fB\-\-rel\fR
96.RS 4
97Use 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\&.
98.RE
99.PP
100\fB\-F\fR, \fB\-\-no\-filter\fR
101.RS 4
102Disable 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\&.
103.RE
104.PP
105\fB\-C\fR, \fB\-\-cmdline\fR
106.RS 4
107Display the full command line with arguments of processes, instead of only the process name\&.
108.RE
109.PP
60f067b4
JS
110\fB\-g\fR, \fB\-\-control\-group\fR
111.RS 4
112Display process control group
113.RE
114.PP
14228c0d
MB
115\fB\-o\fR, \fB\-\-output \fR\fB\fIpath\fR\fR
116.RS 4
117Specify the output directory for the graphs\&. By default, bootchart writes the graphs to
118/run/log\&.
119.RE
120.PP
121\fB\-i\fR, \fB\-\-init \fR\fB\fIpath\fR\fR
122.RS 4
123Use this init binary\&. Defaults to
e735f4d4 124\fB/usr/lib/systemd/systemd\fR\&.
14228c0d
MB
125.RE
126.PP
127\fB\-p\fR, \fB\-\-pss\fR
128.RS 4
129Enable logging and graphing of processes\*(Aq PSS (Proportional Set Size) memory consumption\&. See
130filesystems/proc\&.txt
131in the kernel documentation for an explanation of this field\&.
132.RE
133.PP
134\fB\-e\fR, \fB\-\-entropy\fR
135.RS 4
136Enable logging and graphing of the kernel random entropy pool size\&.
137.RE
138.PP
139\fB\-x\fR, \fB\-\-scale\-x \fR\fB\fIN\fR\fR
140.RS 4
141Horizontal scaling factor for all variable graph components\&.
142.RE
143.PP
144\fB\-y\fR, \fB\-\-scale\-y \fR\fB\fIN\fR\fR
145.RS 4
146Vertical scaling factor for all variable graph components\&.
147.RE
148.SH "OUTPUT"
149.PP
150\fBsystemd\-bootchart\fR
151generates 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
152\m[blue]\fB\%file:///run/log/\fR\m[]!
153.SH "HISTORY"
154.PP
155This version of bootchart was implemented from scratch, but is inspired by former bootchart incantations:
156.PP
157\fIOriginal bash\fR
158.RS 4
159The 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\&.
160.RE
161.PP
162\fIUbuntu C Implementation\fR
163.RS 4
164This version replaced the shell version with a fast and efficient data logger, but also did not graph the data\&.
165.RE
166.PP
167\fIJava bootchart\fR
168.RS 4
169This was the original graphing application for charting the data, written in java\&.
170.RE
171.PP
172\fIpybootchartgui\&.py\fR
173.RS 4
174pybootchart created a graph from the data collected by either the bash or C version\&.
175.RE
176.PP
177The 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\&.
178.SH "SEE ALSO"
179.PP
180\fBbootchart.conf\fR(5)
181.SH "BUGS"
182.PP
183systemd\-bootchart does not get the model information for the hard drive unless the root device is specified with
184root=/dev/sdxY\&. Using UUIDs or PARTUUIDs will boot fine, but the hard drive model will not be added to the chart\&.
185.PP
186For bugs, please contact the author and current maintainer:
187.RS 4
188Auke Kok <auke\-jan\&.h\&.kok@intel\&.com>
189.RE