Ottawa Linux Symposium初日リポート(3/5 ページ)

» 2005年07月27日 15時08分 公開
[David-,japan.linux.com]

 午後に入ると、バート・ハバート氏のプレゼンテーションが開催された。テーマは、アプリケーションの起動時間やシステムのブート時間の改善だ。

 ハバート氏は、GNUplotの一連のグラフを用い、ディスク要求と応答の間の遅延や、HDDのヘッドがどの時点でHDDのどこを読んでいるかを示した。同氏のノートパソコンでは、Mozillaのロードに約20秒かかるという。わずか20Mバイトのデータの読み込みで、1秒もあれば実行できるはずのディスク処理がである。グラフから分かったのは、HDDのあちこちにデータが分散しており、プログラムが効率のよい順序で読み込みを行っていないため、HDDのヘッドは読み込みではなくシークに大半の時間を費しているということだ。

 HDDがプラッタ上のある場所から別の場所にヘッドを移動するのに要するのと同じ時間をもっとうまく使えば、数メガのデータを読み込むことができるとハバート氏は指摘した。HDD上でのデータの編成をもっと合理化すれば、待機時間を短縮でき、システムのパフォーマンスを向上できる。

 同氏は同様の例をいくつか用いて、HDDの処理が合理的に行われていないためにアプリケーションで(時にはカーネルで)時間が浪費されていることを示した。場合によっては、HDDを逆向きに読み込むことすらあるという。これは非常に低速で効率の悪い処理である。ハバート氏は、大まかなカーネル・パッチをリリースしている。この問題について調査して、ディスクの読み込みと書き込みの待機時間という面についてカーネルやプログラムのパフォーマンスの向上に寄与するためだ。

 ハバート氏は、自分のコンピュータでは、atimeと呼ばれる処理を無効化するだけで、Linuxのブート・サイクルを10秒は短縮できると指摘した。この処理では、ブート時にディスクへデータを書き込むため、シーク時間の浪費が大きくなる。

 そして、ディスクの待機時間の長さの問題に対していくつかの解決策を提示した。その1つが、HDDのデータをメモリにダンプし、そこから直接読み込むという方法だ。ただしこの方法は、HDDとメモリのバージョンが一致しなくなった場合に信頼性に影響する可能性がある。もう1つが、HDDの使用パターンを記録し、HDDに先読みさせることによって、データが必要になる前にあらかじめメモリに配置するというものだ。この方法は、先読みしたデータが実際に使用される場合には待機時間の短縮につながる。また、物理ストレージ・メディア上でバイナリを再編成し、読み込みの合理性を高めるという方法もある。

ブーイングと喝采がわき起こるIntel協賛のレセプション

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ