Bootchart

提供: ArchWiki
2018年2月6日 (火) 23:42時点におけるKusakata.bot (トーク | 投稿記録)による版 (文字列「http://lwn.net/」を「https://lwn.net/」に置換)
ナビゲーションに移動 検索に移動

Bootchart は Linux のブートシーケンスをプロファイリングするために使用する便利なツールです。基本的にコンピュータの起動を速くするために使われます。プロファイリングデータのグラフを記録・表示する bootchartd デーモンが付属しています。

ノート: 現在 Bootchart は systemd に取り込まれています。詳しくはブートパフォーマンスの向上#ブートプロセスを解析するを見て下さい。このページでは、マージされる前のオリジナルの bootchart について説明しています。

Bootchart のインストール

Bootchart は公式リポジトリの bootchart でインストールできます。

ノート: An alternative to Bootchart is bootchart2. It uses python for generating the final chart instead of a JVM, and only requires: pygtk, git and busybox. See GRUB and GRUB2 configuration bellow

Bootchart2 の実行

ブートローダーの設定

プロファイリングしたいブートオプションのコピーを作成して initcall_debug printk.time=y init=/usr/bin/bootchartd を追加します。方法はカーネルパラメータを見て下さい。ブートローダーから起動した場合、bootchart2 はデフォルトで120秒後、もしくはログインプロンプトが表示された時に停止します。

Bootchart2 の設定

ログイン後に Bootchartd2 を停止

/etc/bootchartd.conf
EXIT_PROC="kdm_greet xterm konsole gnome-terminal metacity mutter compiz ldm icewm-session enlightenment"

上の設定を変更して、空にすることで、定義済みのプログラムが起動した時ではなく手動で記録を停止することができます。

グラフの作成

Bootchart2 の使い方は Bootchart Legacy と同じように簡単です: インタラクティブなグラフ作成ツールを使うには、起動後に次を実行してください:

$ pybootchartgui -i 

詳細は Gentoo Wiki で読むことができます。

Bootchart2 は E4rat と一緒に使うことが可能です。

Bootchart の実行

bootchart を利用するには、ブートローダーの init プロセスで設定するか、init スクリプト (rc.sysinit など) から手動で起動する必要があります。bootchartd を手動で起動した場合、手動で停止しなくてはなりません。一般的には、以下の手順に注意してください。

ブートローダーの設定

プロファイリングしたいブートオプションのコピーを作成して init=/usr/bin/bootchartd を追加します。方法はカーネルパラメータを見て下さい。ブートローダーから起動した場合、bootchart はログインプロンプトが表示された時に停止します。

グラフの作成

書き込み権限があるフォルダで次を実行することでブートチャートが生成されます:

bootchart-render

グラフが書き込まれた bootchart.png 画像が生成されます。コマンドを実行する前に Java ランタイムをインストールして設定する必要があります。

トラブルシューティング

Bootchart-render が 'bootchart.png' 画像を生成しないで以下のようなエラーメッセージを表示する場合:

/var/log/bootchart.tgz not found

これはブートプロセスがいつ終了したのか bootchartd が判別できなかったことを意味しています。KDM, GDM, SLiM, Entrance 以外のログインマネージャを使用しているとこのエラーが発生します。/usr/bin/bootchartd スクリプトを開いてアプリケーションを exit_proc 変数に追加してください。例えば:

# The processes we have to wait for
local exit_proc="gdmgreeter gdm-binary kdm_greet kdm slim"

ログインマネージャを使っていないときは、exit_proc 変数を以下のように編集します:

# The processes we have to wait for
local exit_proc="login"

ブートチャートの例

Boot in 5 seconds

LWN Article on fast booting netbooks

This article is really awesome and along with a bunch of bootcharts provides some tips on how to boot faster. Some of those improvements are beyond reach of the ordinary user though (patching X.org, kernel, etc.).

参照