bootchart で起動時のプロセス推移や負荷をグラフ化 †bootchart って何をするの? †bootchart(ブート・チャート) はサーバ起動時の負荷状況やプロセスの推移をグラフ化するためのツールです。CPU の使用率やディスク I/O 状況、稼働していくプロセスの推移が目に分かるようになります。 動作原理は、ブートローダーはカーネルが /sbin/init の代わりに /sbin/bootchartd を実行させます。bootchartd によって init が呼び出されて逐次 /proc 配下のシステム情報を記録するという仕組みです。作成されたログを元にして画像を作成します。 これを使うことによって、無駄なデーモンの発見・削除をして最適化を図ったり、システムの更新(CPU の変更や HDD の SCSI 化など)の効果を目で確認・保存しておくためにも使うことができます。起動速度を競ってみても面白いかもしれませんね。 対応しているシステム †Linux 系全般に対応しているようです。 bootchart の英語情報 †
bootchart のライセンス †GNU General Public License v.2 bootchart のセットアップ †ここでは Fedora Core 4 にインストールした場合の例です。ブートローダーは GRUB を前提にしています。 セットアップ手順 †まずはファイルの取得とダウンロードです。 $ cd /usr/local/src $ wget http://jaist.dl.sourceforge.net/sourceforge/bootchart/bootchart-0.8.tar.bz2 $ tar xfj bootchart-0.8.tar.bz2 $ cd bootchart-0.8 次に、インストールスクリプトの実行をします。/sbin/grubby にパスが通っていないとエラーが出るので、念のため PATH を通します(通ってないとエラーになります)。 # export PATH=$PATH:/sbin # ./install.sh 特にエラーがでなければ問題ありません。これで自動的に grub.conf に以下のような記述が追加されます。 title Bootchart logging root (hd0,0) kernel /vmlinuz-2.6.12-1.1398_FC4 ro root=LABEL=/ rhgb quiet init=/sbin/bootchartd initrd /initrd-2.6.12-1.1398_FC4.img 以上でセットアップは終わります。 サーバを起動してログをとる †次はサーバを再起動します。 再起動後に『〜Seconds...』と GRUB の画面が表示されますので、まず何かキーを押します。続いて、矢印キーを使って【 Bootchart logging 】の行を選び、エンターキーを押します。 あとは通常通りサーバがブートします。 ブートし終わったら bootchart によるログが /var/log/bootchart.tgz に保存されています。ls でファイルの存在を確認します。 # ls -al /var/log/bootchart.tgz -rw-r--r-- 1 root root 78875 7月 31 22:34 /var/log/bootchart.tgz このように中身のあるファイルが作成されていれば問題ありません。 ログを元に画像を作成する †画像を作成するためには bootchart 中に付属している Java ツールを使う方法もありますが、Java のコンパイル環境を整備しなくてはいけないので、curl を使って外部のサービスを利用させていただく方法をとります。 画像の出力先を /var/www/html/bootchart.png とすると(出力先は > のリダイレクト先を任意に指定できます。どこでも構いません。) $ cd /var/log $ curl --form format=png --form log=@/var/log/bootchart.tgz \ http://bootchart.klika.si:8080/bootchart/render \ > /var/www/html/bootchart.png % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 234k 0 152k 100 84425 10412 5641 0:00:14 0:00:14 --:--:-- 16625 ネットワーク状況によっては処理が終わるまで時間がかかるかもしれません。 これで標準のドキュメントルート直下に bootchart.png というファイルが作成されます。あとはブラウザ上から http://ホスト名/bootchart.png へとアクセスすると画像が確認出来ます。このような画像が表示されていれば OK です InitNGを使ってサーバのブート速度を高速化すると、効果が目の当たりにできてうれしかったりします。 サーバの客観的な性能評価や比較資料としても用いる事ができるかもしれませんね。 bootchart の日本語情報 †オリジナル文章の日本語訳です(の予定です、ちょっち未定) |