sai’s diary

プログラミング関連の備忘録とつぶやきを書いています。

bootchart - Linuxの起動に関する時間、CPU、I/O負荷を可視化。

組み込み系の開発をしていると装置の起動時間が重要になってきます。

起動時間を短縮するには処理に時間がかかっている箇所を特定する必要がありますが、 Linuxgrubを使用している環境であればbootchartというツールを使用すれば ログを埋め込まなくてもLinuxの起動に関する時間、CPU、I/O負荷を可視化することが出来ます。

bootchartの仕組みはinitプロセスを測定用のプログラム(bootchartd)に切り替えることで 上記の測定を行っている様です。

以下にCentOS 6.5でのbootchart利用手順を示します。

antコマンドのインストール(インストール済みの場合は不要)

[root@localhost bootchart-0.9]# yum install ant java-1.7.0-openjdk-devel

bootchartのインストール

[user@localhost ~]$ wget http://prdownloads.sourceforge.net/bootchart/bootchart-0.9.tar.bz2
[user@localhost ~]$ tar xvfj bootchart-0.9.tar.bz2
[user@localhost ~]$ cd bootchart-0.9
[user@localhost ~]$ ant
[user@localhost ~]$ sudo bash -x ./install.sh

ログ取得

[user@localhost ~]$ sudo reboot

reboot後、コンソール画面のGRUBメニューから"Bootchart logging"を選択して起動。

画像生成

[user@localhost ~]$ cd ~/bootchart-0.9
[user@localhost bootchart-0.9]$ java -jar bootchart.jar
Parsing /var/log/bootchart.tgz
Wrote image: ./bootchart.png

上記コマンドを実行すると以下の様な画像ファイルが生成されます。

f:id:saitohm:20140824234452p:plain

環境

CentOS release 6.5 (Final)