Bootchart2
This script is run instead of init during the boot process after the kernel is loaded and measures the time during this process. With the aid of a script in the project's Git repository, it generates nice charts which show when each daemon started and stopped.
Installation
You can install app-benchmarks/bootchart2 with the following command:
root #
emerge --ask app-benchmarks/bootchart2
Then add the daemon to the default runlevel. This is needed to stop the bootchart process and generate the image:
root #
rc-update add bootchart2 default
USE flags
USE flags for app-benchmarks/bootchart2 Performance analysis and visualization of the system boot process
+cairo
|
Enable support for the cairo graphics library |
Kernel
To get more verbose information:
General setup --->
CPU/Task time and stats accounting -->
-*- Export task/process statistics through netlink (EXPERIMENTAL)
Device Drivers --->
<*> Connector - unified userspace <-> kernelspace linker --->
[*] Report process events to userspace
Usage
How to enable bootchart2 during boot and access the generated charts.
Bootloader
- For any GRUB based bootloader, the kernel commandline can be changed during boot by pressing e in the boot menu, then edit the kernel commandline and press F10 to boot with changed parameters. The following options should be added:
- 'initcall_debug' - append timing data to each initcall
- 'printk.time=y' - append timing data to each message during initialization
- 'init=/sbin/bootchartd' - replace the default command for initialization with /sbin/bootchartd to start our benchmark
to use genkernel, replace init= with real_init=
- To change the entry static for GRUB (bootchart on every boot):
In GRUB the parameters can be added to the variable GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub.
linux initcall_debug printk.time=y init=/sbin/bootchartd
Then run:
root #
grub-mkconfig -o /boot/grub/grub.cfg
Analyzing the output
The values are stored in /var/log/bootchart.tgz as a compressed tarball.
header
dmesg
cmdline2.log
paternity.log
proc_cpuinfo.log
proc_diskstats.log
proc_meminfo.log
proc_stat.log
taskstats.log
A script that generates an easier-to-analyze PDF or PNG from this tarball can be found on the project's homepage, by cloning the git repository, and then running make pybootchartgui/main.py
and ./pybootchartgui.py
. The script requires dev-python/pycairo.