SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Related Sites

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files

Operation

When bootchartd is started by the kernel (passed init=/sbin/bootchartd), it will first start boot logging in background and then exec /sbin/init or an alternative init process.
The boot logger will mount a tmpfs file system for log file storage and wait for /proc to be mounted. It will then run several logging functions in parallel and wait for the boot process to end (i.e. one of the predefined processes for runlevels 2, 3 or 5 is running).

Monitoring applications

In addition to the boot process, the bootchartd logger may also be used to profile a running system or specific applications. This may performed by regular users as well, by using the following procedure:

  1. Copy the default bootchartd configuration file locally:

    $ cp /etc/bootchartd.conf /home/joe/tmp/

  2. Edit /home/joe/tmp/bootchartd.conf and replace the BOOTLOG_DEST value with a directory with write permissions, e.g.

BOOTLOG_DEST=/home/joe/tmp/bootchart.tgz

3. Run bootchartd from within /home/joe/tmp/, profiling the system

in general or a specific application:

$ cd /home/joe/tmp/

     # to profile the system in general:
     $ /sbin/bootchart start; sleep 5; /sbin/bootchartd stop
     
     # to profile a specific application, e.g. evolution:
     $ /sbin/bootchart start evolution

4. Render the generated log file:

$ /usr/bin/bootchart /home/joe/tmp/bootchart.tgz

Alternatively, upload the log tarball to the renderer web service.

Log files

The bootchartd script will create various log files. Note that all statistics log entries start with the time, specified as uptime in jiffies (1/100 s). Log entries are written every 0.2 seconds by default. Detailed information about the /proc entries is available in the proc(5) manual page.

The files available in /var/log/bootchart.tgz are:

  1. header

    Basic information about the system and logger. The following properties are set (with sample values):

    === header === version = 0.9 title = Boot chart for serenity.klika.si (Wed Jan 19 22:21:53 CET 2005) system.uname = Linux 2.6.10-1.741_FC3 #1 Thu Jan 13 16:38:22 EST 2005 i686 GNU/Linux system.release:Fedora Core release 3 (Heidelberg) system.cpu = model name : Intel(R) Pentium(R) M processor 1500MHz (1) system.kernel.options = ro root=/dev/vg0/root vga=0x318 quiet grub


  2. proc_stat.log

    The CPU statistics collected from /proc/stat.

    Example

=== proc_stat.log ===
691
cpu 8 0 141 313 230 0 0
cpu0 8 0 141 313 230 0 0
intr 7454 6943 8 0 1 3 1 0 0 0 1 1 1 99 0 373 23 ctxt 4607
btime 1106875682
processes 531
procs_running 2
procs_blocked 1

...

3. proc_diskstats.log (optional)

The disk IO statistics collected from /proc/diskstats. Note that these are only available when using a 2.6 kernel (or a patched 2.4 kernel).

Example

=== proc_diskstats.log ===
704

      1    0 ram0 0 0 0 0 0 0 0 0 0 0 0
      1    1 ram1 0 0 0 0 0 0 0 0 0 0 0
      ...
      3    0 hda 357 18 7963 7619 0 0 0 0 3 2522 7789
      ...

...

4. proc_ps.log

Process status information, collected from /proc/[PID]/stat files. Used to reconstruct the process tree and track process states and CPU usage. Example:

=== proc_ps.log ===
692
1 (init) S 0 0 0 0 -1 8388864 656 ... 138 (kblockd/0) S 3 0 0 0 -1 32832 0 ... 146 (khubd) S 1 1 1 0 -1 64 0 ...
16 (kacpid) S 3 0 0 0 -1 32832 0 ... 2 (ksoftirqd/0) S 1 0 0 0 -1 32832 ...

...

5. init_pidname.log (optional)

The PID to process name mapping file. Used for Gentoo, where many init scripts are sourced and thus shown as "rc boot" or "rc default" in the process listing. The Gentoo init patch however will maintain this log file by storing the actual script names and mapping them to PIDs.

Example

=== init_pidname.log ===
2969=checkroot
2996=hostname
3003=modules
7263=coldplug
...


6. kernel_pacct (optional)

Process accounting information. Created if BSD process accounting v3 is configured when compiling the kernel (CONFIG_BSD_PROCESS_ACCT_V3). The GNU accounting tools also need to be installed (psacct or acct package).

The file contains detailed process information, useful for filling in any process dependency blanks caused by the polling nature of /proc/[PID]/stat logging. The file is binary and is defined in include/linux/acct.h.

General information about process accounting is available in the HOWTO: http://www.tldp.org/HOWTO/Process-Accounting/

Alternative init processes

Alternative init processes (e.g. initng) may be specified using the bootchart_init kernel command line option, e.g.:

init=/sbin/bootchartd bootchart_init=/sbin/initng

In this case, bootchartd will execute /sbin/initng instead of the default /sbin/init.

http://www.bootchart.org
Ziga Mahkovec <ziga.mahkovec@klika.si>


Other Sites

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.