Ottawa Linux Symposium2日目:ユーザー空間は最悪、ほかLinuxの最新動向リポート(2/3 ページ)

» 2006年07月27日 10時30分 公開
[David-'cdlu'-Graham,Open Tech Press]
SourceForge.JP Magazine

ユーザー空間が最悪な理由

 この日の午後、Fedoraカーネルのメンテナであるデイブ・ジョーンズ氏は、立ち見の出る満員の聴衆を前にして「ユーザー空間が最悪な理由(またはアプリケーションでやってはいけない101の本当にバカなこと)」と題した講演を行った。そこで主に語られたのは、Fedora Core 5(FC5)のブート時間を短縮するための苦闘と、その過程で彼が発見した衝撃的な事実であった。

 最初に彼がした作業は、すべてのファイルアクセスをログに記録するパッチをカーネルに当てることだった。無駄なアクセスを調べるためである。それで分かったのは、ブート時にFC5では7万9000のファイルにアクセスがあり、そのうち2万6000が開かれることである。シャットダウン時には、2万3000のファイルにアクセスがあり、開かれたファイルの数は7000に上った。

 Hardware Abstraction Layer(HAL)では、デスクトップアプリケーションがハードウェアを認識して使用できるようにするため、システムへのハードウェアの追加と削除を追跡する。ジョーンズ氏によると、HALの基本方針は「ファイルだったら開く」である。HALでは、多くのXMLファイルを開き、再度読み取るという処理を最大で54回行う。プリンタデーモンのCUPSは、スタートアップ時にstat()呼び出しを2500回実行し、500のファイルを開く。これを分かっている限りのプリンタのそれぞれに対して行うのである。

 X.orgでも極端なことがやられている、とジョーンズ氏は言う。 X.orgでは、使用される可能性があるすべてのアドレスと言っていいほど多くのアドレスをPCIデバイスに対してスキャンした後で、追加のPCIデバイスについても、見たところランダムなアドレスをスキャンし、それからようやく翻意してあきらめる。Xフォントに注目して観察したところ、彼のテストシステムでは、Xが非常に多くのTrueTypeフォントを開いていることが分かった。

 最大でどれぐらいのフォントが開かれるのか調べるため、彼は6000種類のTrueTypeフォントをインストールしてみた。その結果、Gnomeセッションでは、2500弱のフォントにアクセスがあり、2434種類が開かれた。Metacityは238種類のフォントを開き、タスクバーマネジャーは349種類を開いた。サウンドミキサーでさえ、開いたのは860種類に上る。調査の結果、Xフォント・サーバでは、フォントを1種類ロードするたびにキャッシュが再構築されていた。このフォントの問題を彼は「奇怪」と表現した。

 彼が発見した問題のもう1つは、タイマーである。カーネルも最悪だと彼は言う。例えば、USBは256ミリ秒ごとにタイマーを発行する。キーボートとマウスのポートも、ホットプラグ対応PS/2キーボードとマウスをサポートする目的で定期的にポーリングを行う。それから、コンソールで点滅する小さなカーソルはどうだろうか? そう、このタイマーはXの動作中も停止しないので、小さなコンソールのカーソルを点滅させ続けるために、CPUサイクルがちょっとばかり浪費されるのだ。

 ジョーンズ氏によれば、このテストを実行するのに、カーネルにパッチを当てる必要も、ここで説明したようなツールを使う必要もない。strace、ltrace、Valgrindを使えば、無駄を取り除く作業には十分である。

 そういった小さな問題点を修正したら、どれぐらいの時間を短縮できるのかと、会場から質問があった。不要なファイルアクセスを省くことで、無駄な時間を半減できると、ジョーンズ氏は答えた。最も、節減された時間は、システムリソースを消費する新しい機能とアプリケーションによって食いつぶされてしまう。であるから、このような徹底的なテストを定期的に行うことが必要だと、彼は語った。

 また、この問題を開発と同時進行で回避するにはどうすればいいか、との質問も出た。これに対しては、プログラミングはしないがLinuxの改良に協力したいと思っているユーザーにテストを依頼してはどうか、と提案された。質疑応答の最後では、KDEでのテスト結果もGNOME並に悪かったのか、と質問した参加者がいた。試していない、というのがジョーンズ氏の答えだ。

 質疑応答が進むにつれて、セッションはもはやプレゼンテーションではなくBoF(Birds of a Feather)と化していた。ジョーンズ氏と聴衆のやり取りで、すし詰めになった部屋には笑い声が波のように広がっていった。

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ