« BodhiでNotify OSDをgmailの着信表示に使う | トップページ | Jupiterのスクリプトを整理してより省電力化を図ってみる »

2011/08/27

Bootchartを用いて起動スクリプトの影響を評価する

Bodhi(Ubuntu)での起動スクリプト応用編: ラムドライブのバックアップで作ったスクリプトが起動時間に与える影響を調べてみようと、Bootchartを使いました。

Bootchartは起動に各プロセスが要している時間をメモリに保存して、起動が終わった後でログに出力 → さらに見やすい図に出力してくれるプログラムです。見てみると無駄に動いているプロセスがわかったりしますので、一度使ってみることをオススメです。
が、自分のようにラムドライブ(tempfs)を/var/logに使っている人や、Bodhiユーザはインストールしただけでは動かないです。いつものように多少とはいえ作業が必要です。

まずインストールです。

sudo apt-get install bootchart

が、このままでは動きません。まず1つ目の問題は、bootchartは/var/log/bootchart というディレクトリがないとファイル出力自体をしてくれないことです。これはインストールの時に作られるのですが、自分のように/var/log をラムドライブで作っていると、起動時にはそんなもの消えているのでない訳ですね。
修正方法は2通りあります。

1つ目の修正方法は、/etc/init/bootchart.conf をgksu したエディタで開き、/var/log/bootchart を全て/var/log に置換してしまうことです。これによってログが、/var/log 以下に直接作られるようになります。

2つ目の修正方法は、/var/log/bootchart を起動スクリプトで作ってしまうことです。自分のように既に起動スクリプトのある人
は、

for dir in apparmor apt cups dist-upgrade ConsoleKit fsck gdm installer samba unattended-upgrades ;

という行を、

for dir in bootchart apparmor apt cups dist-upgrade ConsoleKit fsck gdm installer samba unattended-upgrades ;

とかに変えれば良いです。1回だけを考えればスマートなのは1つ目の方法なのですが、bootchartは必要な時にインストールし、不要な時にはアンインストールするのが普通な使い方だと思われます。で、再インストールの度にbootchart.confを書き換えるというのは・・・という人は2番目の方法でも良いと思います。ラムドライブにディレクトリ作るなんてシステムに与える負荷は軽微ですし。


2つ目の問題点は、bootchartの既知のバグです。上で再インストールの度に書き換えるのはなんたらと書いておいてなんですが、これは再インストールの度にやらなければいけないです。

gksu leafpad /usr/share/pyshared/pybootchartgui/draw.py &

して、105行目にある、

	return "RSDTZXW".index(flag) + 1

を、

	return "RSDTZXW".find(flag) + 1

に書き換えます。これで再起動をしてやると、ディレクトリを作った人は/var/log/bootchart 以下に、bootchart.confを書き換えた人は/var/log 以下にpng ファイルが出来るはずです。見るのはGIMPよりもむしろfirefoxの方が楽でしたね。みんな知っているとは思いますが、firefoxのページ表示フォントはキーのCtl +で拡大、Ctl -で縮小です。これは画像にも効くので、こういうでかい画像を表示するときにも便利ですよ。

で、調べたかった起動スクリプトでのラムドライブへの書き戻しへの影響ですが、起動時間をログイン後にデスクトップが表示されるまでと考えると、efreet_destopgが起動する時間と見ればよさげです。もっともこの起動時間はBIOSの時間は含みませんので、電源ボタンを押してからの時間として見るためには+3秒程見ないといけないです。

書き戻しを行わない場合には、13.5秒であるのに対して、書き戻しを行うと14.5秒になっています。
1秒程度書き戻しにより起動時間が長くなっているということですね。この程度なら自分的には許容しても良いように思います。

良く雑誌記事でWindowsの起動時間を計測するのに「ようこそ」画面が表示されるまで(つまりログイン画面が表示されるまで)を起動時間としている例がありますが、その場合だとenlightenment_iの起動時間になるので、バックアップを行わないと約10秒ですね。バックアップを行っても11秒。

EeePCは150MByte/secしか転送能力のないSATA1.5なインターフェイスしか持っていない訳ですが、ちゃんとスループット154MByte/sec出ています。さすがSSD。
完全にハードウェアの能力は使い切っているので、これ以上このマシンでの起動時間短縮は無理ですね。
SATA3.0に対応したハードウェアなら冗談抜で7秒とかの起動時間が出そうな感じです。
しかしBodhiの起動時間短いですねぇ。Windowsと比較する場合にはシャットダウン時間は更に差が開きますが。

まずバックアップ無しの起動時間です。
Eeepc1002halucid20110826norsync

こっちがバックアップありの起動時間。

Eeepc1002halucid20110826rsync

« BodhiでNotify OSDをgmailの着信表示に使う | トップページ | Jupiterのスクリプトを整理してより省電力化を図ってみる »

Bodhi Linux」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/28800/52572343

この記事へのトラックバック一覧です: Bootchartを用いて起動スクリプトの影響を評価する:

« BodhiでNotify OSDをgmailの着信表示に使う | トップページ | Jupiterのスクリプトを整理してより省電力化を図ってみる »