ジャンル:ユーティリティ 作者:Ziga Mahkovec氏 ライセンス:GPL
URL:http://www.bootchart.org/

 BootchartはLinuxシステムの起動時におけるシステム負荷を時間軸に沿ってグラフ化するソフトだ。プロセスの起動に伴うCPUやハード・ディスクの使用率を経過時間ごとに表示するので,Linuxの仕組みを理解するのに役立つ。起動時のボトルネックを把握する助けにもなる。

 Bootchartの開発は,Fedora Core開発者用のメーリング・リストへのある書き込みから始まった。「Linuxシステムの起動時間を短縮するために,ブート時に何が起こっているのかを一覧できるチャートが欲しい」というものだ。

 Bootchartを導入したLinuxシステムを起動すると,通常最初に起動するプロセス「Init」に先駆けて,Bootchartが起動するようになる。Bootchartは,Initの動作を監視し,/procファイル・システムに出力される各種システム情報を取得する。

 このようにして,あるプロセスAが別のプロセスBをいつ呼び出したか,各プロセスがいつからいつまで動いていたのかが記録できる(図1,写真1)。同時にCPUとディスクの負荷情報を時々刻々とメモリー上に記録する。Linuxシステムの起動が終わると,データをファイルとしてハード・ディスクに記録する。そのため,プロセス呼び出しのどの部分に時間がかかっているのか,何を改良すれば起動時間が短縮できるのかが把握しやすくなる。

図1 Bootchartが出力した起動プロセス画像
initプロセスが呼び出されてから88秒間のシステム状況が記録されている。

写真1 図1の一部を拡大したもの
起動から25秒間のCPUとハード・ディスクの使用率が分かる。

 Bootchartの表示結果はLinuxを利用するだけであれば直接役には立たないが,システムのどこにボトルネックがあるのかを把握する助けにはなる。他のLinuxマシンや異なるLinuxディストリビューションと起動時間を比較する際にも役立つだろう。手元のパソコンの起動時間の遅さが気になる場合は,試してみるとよい。

Bootchartをインストールする

 ここでは,Bootchartをソース・コードからインストールする方法を紹介する。付録メディアに収録した「bootchart-0.9.tar.bz2」ファイルを使ってインストールする。

 Bootchartを動かすには,Linuxシステムにブート・ローダーのGNU GRUBが導入されている必要がある。さらに,Bootchartのインストール・スクリプト(install.sh)が,GRUB編集コマンド(/sbin/grubby)を利用するため,あらかじめ/sbinにパスを設定しておこう。

 早速,インストールを始めよう。

 瞬時にインストールが終了する。インストール作業では,/etc/grub.confファイルに図2に挙げた行が追加される。

図2 grub.confファイルの内容
Bootchartのインストール時に,「title Bootchart logging」で始まる4行が追加される。

Bootchartを使用する

 Bootchartを使うには,この状態でLinuxシステムを再起動すればよい。GRUBの起動画面が現れたら,先頭にある「Bootchart logging」という項目を選択しよう。すると,いつも通りにLinuxが起動する。

 起動終了後,/var/log/bootchart.tgzというBootchartの記録ファイルが作成されていることを確認しよう。

 記録ファイルには数値データなどが記されているが,このままでは分かりにくい。先ほどのbootchart-0.9.tar.bz2には数値データからグラフ画像を生成するツールのソース・ファイルが含まれる。Java言語で記述されているので,antコマンドを使ってコンパイルしよう。

 まず,先ほどファイルを展開したディレクトリ(bootchart-0.9)に移動しておく。コンパイル作業は非常に単純だ。

 すると,Javaのクラス・ファイルであるbootchart.jarが生成される。

起動グラフを作成する

 システム起動時の状態を記録したグラフ(以下,起動グラフ)を生成するには,先ほどのディレクトリ内で次のように実行する。

 bootchart.jarは,記録ファイルである/var/log/bootchart.tgzを読み込み,bootchart.svgzを出力する。svgzは,Linuxで広く使われているフォトレタッチ・ソフトのGIMPなどで読み出せる形式だ。図1や写真1もGIMPを用いて表示している。

出典:日経Linux 2006年7月号 90ページより
記事は執筆時の情報に基づいており、現在では異なる場合があります。