From Gentoo Wiki
Jump to:navigation Jump to:search

This script is run instead of init during the boot process after the kernel is loaded and measures the time during this process. It generates nice charts which show when each daemon started and stopped.


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


To get more verbose information:

KERNEL enable proc events
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


How to enable bootchart2 during boot and access the generated charts.


  • 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 GRUB2 (bootchart on every boot):

In GRUB2 the parameters can be added to the variable GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub.

CODE Kernel command-line
linux initcall_debug printk.time=y init=/sbin/bootchartd

Then run:

root #grub-mkconfig -o /boot/grub/grub.cfg


Those are the options to view the chart. Per default the images are stored in /var/log/bootchart.tgz as a compressed tarball.

CODE pybootchartgui --help
Usage: pybootchartgui [options] PATH, ..., PATH

  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -i, --interactive     start in active mode
  -f FORMAT, --format=FORMAT
                        image format (png, svg, pdf); default format png
  -o PATH, --output=PATH
                        output path (file or directory) where charts are
  -n, --no-prune        do not prune the process tree
  -q, --quiet           suppress informational messages
  -t, --boot-time       only display the boot time of the boot in text format
  --very-quiet          suppress all messages except errors
  --verbose             print all messages
  --profile             profile rendering of chart (only useful when in batch
                        mode indicated by -f)
  --show-pid            show process ids in the bootchart as 'processname
  --show-all            show all process information in the bootchart as
                        '/process/path/exe [pid] [args]'
  --crop-after=PROCESS  crop chart when idle after PROCESS is started
  --annotate=PROCESS    annotate position where PROCESS is started; can be
                        specified multiple times. To create a single
                        annotation when any one of a set of processes is
                        started, use commas to separate the names
                        filename to write annotation points to

Just running it without any arguments will generate a .png image of the bootchart in the current directory.

External resources