aka LWN JAPAN
[ C H A N G E L O G ]
[Tux]

ChangeLog
カーネル
Section Editor: Jonathan Corbet
ChangeLog
[ Kernel ]  

Linux をウェブサーバベンチマークで改善するには

************
以下は、先々週の LWN のカーネルセクションから抜粋です。
(Mindcraft 再試行は上で述べた通り、既に行われました。)
************
Linux をウェブサーバベンチマークで改善するにはどうしたら良いのでしょうか? Mindcraft は、6月14日に「Linux vs NT」ベンチマークを再試行する予定です。 詳細は、Mindcraft の「オープンベンチマーク」のページ(英語)をご覧下さい。 「Linux 技術者」が参加するということですが、 誰が参加するのかは、現時点では明らかにされていません。 一方で、Juergen Schmidt 氏が彼自身のベンチマーク結果(英語)を公開しています。
※ その後、このベンチマークに加筆修正を加えられた記事が独 c't マガジンで公開されました。(Juergen の c't マガジンの記事

ChangeLog では、 独 c't マガジン編集部とJuergen Schmidt 氏から特別に許可を得て、日本語で概要を作成させていただきました。(Juergen のベンチマークの日本語概要

彼のテストでは、多くの状況下において、 Linux+Apache が NT を打ち負かしますが、 概ね Mindcraft のベンチマークのように、 NIC(ネットワークインターフェースカード)が複数の場合では、 NT が大きく勝ります。 この部分では、Linux にまだいくらか課題が残されているようです。

Juergen の結果に対する反応には、以下のようなものがあります。

  • テストには、 「1プロセスのみを起動」セマンティクス (※ Apache と Linux の組み合わせにおいて、非常に高速化に寄与する改善点です。 Mindcraft 事件以後の議論から実装された、 Linux カーネルの改善点の一つです。) や、他の変更がなされた 2.3 カーネルを用いるべき。 けれども問題の核心は、 これらの変更はまだ開発の段階にあり、 開発者以外の方々が利用するには、 まだ機が熟しておらず、準備不足であるということです。 (2.2 系列でなく、2.3 系列で実装されているため。)

  • カーネル開発者の方々の多くは、 Mindcraft のようなスタイルのベンチマークは、 現実的にはあまり意味を持たないと感じており、 また、 Linux と Apache のシステムをウェブサーバとして利用する理由とも あまり関係がないと感じています。 (また、一般的に実世界で使用されるウェブサーバを考えてみても、 Mindcraft のベンチマークは非現実的だと感じています。) Apache が利用されているのは、 必要とされている機能を Apache が提供しており、 それを目的通りに動作させる(安定性)からだということです。 これらの点は確かに的を得ていますが、 それでもそのようなモードにおいても Apache をより高性能にすることは やはり望ましいことです。

  • 静的なウェブページを直接カーネルからサーブしてしまうのはどうでしょうか? Arjan van de Ven 氏が、kHTTPd カーネルモジュールのアナウンス(英語)を投稿されています。 このモジュールは、HTTP ポートへのリクエストを取り扱い、 静的なページ(や画像)は直接的に処理し、 その他のすべてをユーザスペースのデーモン(Apache 等)に 渡します。 結果として、 この種のリクエストが処理される場合において、 Apache の著しい性能向上が得られます。

一般にこの種の作業をカーネルに行なわせることに対しては根強い反対が あります。 しかし、kHTTPd のアイデアに話を限定すると、何と、Linus 自身も、気に入った(英語) という意見を表明しています。

結論としては、 カーネル開発者の方々は Mindcraft の再試行にそれほど関心がなく、 (あのような設定では)それほど良い結果を期待していないということのようです。 性能を改善するための複数の独立した試み (もちろん、apache 開発者の方々の御尽力を含めて) が一つに結実されることによって、 長期的には(まあ、6ヶ月程度で)、おそらく Linux と Apache は、 より非常に高速なウェブサーバエンジンへと進化を遂げることでしょう。

************
以上、先々週の LWNのカーネルセクションから抜粋
************
khttpd は良いアイデアでしょうか? 以前、LWNのこのカーネルコーナーでもお伝えしましたが、 khttpd は、カーネルベースのウェブサーバで、 静的なページの取得要求に対する反応を高速化しようとするものです。 khttpd は、単純なページの取得要求に答えることができ、 それ以外のすべてのことは、 Apache のようなユーザスーペースのプロセスに受け渡す能力があります。

この khttpd が良いアイデアかどうかについては、 多くの議論がなされてきました。 反対派の方々は、 khttpd はカーネルの肥大を招く良い例だ、としています。 つまり、khttpd は(カーネルに組み込まれるほどには) 十分に一般的なものでなく、また、 いくつかのユーザスペースのサーバ(例えば phhttpd)の方が、 とにかく実際には、高性能を発揮しているということです。 賛成派の方々は、khttpd を、ベンチマーク「ゲーム」で Microsoft を 打ちのめすための手段だとしています。 そして、 誰もが khttpd を使用することを強制されているわけではない、ということを指摘し、 また、 パフォーマンスを主張して議論しています。 控え目に言っても、この議論に決着が付くのは遠い先のことのようです。 興味を持たれた方は、このテーマについての Arjan van de Ven 氏(khttpd の作者)のコメント(英語) をご覧下さい。 (その後、他の方によって、いろいろと(事細かに :-)反駁もされているようですが、 knfsd や VFS との対比から、むしろカーネルの中にある方が自然 という観点は大胆で興味深いです。)

[ Kernel ]

関連 URL

LWN
カーネル(原文)
LinuxHQ
他のカーネル関連リソース(英語)
Kernel traffic
他のカーネル関連リソース(英語)


Copyright (C) 1999 Metachannel Systems Corp. all rights reserved. ChangeLog
Copyright (C) 1999 Eklektix, Inc. all rights reserved. Linux Weekly News
Linux (R) is a registered trademark of Linus Torvalds.