1boot-analysis(1) Virtualization Support boot-analysis(1)
2
3
4
6 boot-analysis - Trace and analyze the appliance boot process
7
9 ./run utils/boot-analysis/boot-analysis
10
12 Trace and analyze the appliance boot process to find out which steps
13 are taking the most time. It is not part of the standard tests.
14
15 This needs to be run on a quiet machine, so that other processes
16 disturb the timing as little as possible. The program is completely
17 safe to run at any time. It doesn't read or write any external files,
18 and it doesn't require root.
19
20 You can run it from the build directory on the built copy of libguestfs
21 like this:
22
23 make
24 ./run utils/boot-analysis/boot-analysis
25
26 If you omit "./run" then it is run on the installed copy of libguestfs.
27
28 How it works
29 We create a libguestfs handle and register callback handlers so we can
30 see appliance messages, trace events and so on.
31
32 We then launch the handle and shut it down as quickly as possible.
33
34 While the handle is running, events (seen by the callback handlers) are
35 written verbatim into an in-memory buffer, with timestamps.
36
37 Afterwards we analyze the result using regular expressions to try to
38 identify a "timeline" for the handle (eg. at what time did the BIOS
39 hand control to the kernel). This analysis is done in
40 utils/boot-analysis/boot-analysis-timeline.c.
41
42 The whole process is repeated across a few runs, and the final timeline
43 (including statistical analysis of the variation between runs) gets
44 printed.
45
46 The program is very sensitive to the specific messages printed by
47 BIOS/kernel/supermin/userspace. It only works on x86-64 or aarch64.
48 It will require periodic adjustment of the regular expressions in order
49 to keep things up to date.
50
52 --help
53 Display brief help.
54
55 --append "OPTIONS"
56 Append "OPTIONS" to the kernel command line.
57
58 --color
59 --colour
60 Output colours (as ANSI escape sequences), even if the output is
61 not a terminal.
62
63 -m MB
64 --memsize MB
65 Set the appliance memory size in MB.
66
67 --smp N
68 Enable "N" virtual CPUs.
69
70 -v
71 --verbose
72 More verbose output, useful for debugging problems.
73
75 guestfs-performance(1), http://libguestfs.org/.
76
78 Richard W.M. Jones http://people.redhat.com/~rjones/
79
81 Copyright (C) 2016 Red Hat Inc.
82
84 This program is free software; you can redistribute it and/or modify it
85 under the terms of the GNU General Public License as published by the
86 Free Software Foundation; either version 2 of the License, or (at your
87 option) any later version.
88
89 This program is distributed in the hope that it will be useful, but
90 WITHOUT ANY WARRANTY; without even the implied warranty of
91 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
92 General Public License for more details.
93
94 You should have received a copy of the GNU General Public License along
95 with this program; if not, write to the Free Software Foundation, Inc.,
96 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
97
99 To get a list of bugs against libguestfs, use this link:
100 https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools
101
102 To report a new bug against libguestfs, use this link:
103 https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools
104
105 When reporting a bug, please supply:
106
107 · The version of libguestfs.
108
109 · Where you got libguestfs (eg. which Linux distro, compiled from
110 source, etc)
111
112 · Describe the bug accurately and give a way to reproduce it.
113
114 · Run libguestfs-test-tool(1) and paste the complete, unedited output
115 into the bug report.
116
117
118
119libguestfs-1.40.1 2019-01-17 boot-analysis(1)