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

ChangeLog

Mindcraft
事件の
特集
ページへ

Special
Mindcraft
事件の
特集
ページへ

ChangeLog

米 Mindcraft 社の調査結果に対する Linux コミュニティからの反駁

4月13日火曜日(米国時間)、米 Mindcraft 社は エンタープライズサーバ環境における Windows NT と Linux を比較した調査結果を報告しました。その要約で以下のように述べています。

Microsoft Windows NT Server 4.0 は Linux と比較すると、ファイルサーバとして 2.5 倍、ウェブサーバとして 3.7 倍高速である。

言うまでもなくこの報告は、かなりの注目を集めました。

彼らの結果が他の同様の調査とあまりにも異なっているため、今回のこの調査の何がそんなに他の調査と違っていたのかを知りたいと思うのは当然のことであると言えます。

この文書には、Mindcraft 社による報告を精査することによって得られた情報がまとめられています。

この報告に関する情報をメールでお寄せいただいた、信じられない数の方々に、まとめて謝辞を述べさせていただきます。

各々の方のお名前を明記しようというのは、もう無理になってしまいました。幾人かの方々を挙げさせていただいても、きっと記載漏れしてしまうと思います。

そこで、このことだけは述べさせて下さい。以下の文書は、非常に多くの方々による仕事の結果です。LWN は、ほとんど単にまとめ役をさせていただいただけに過ぎません。

背景

Mindcraft 社は、システムのテストとベンチマークを専門とする会社です。

彼らのテストはその料金を支払う顧客のために行われるものです。 (つまり、記事にするためにテストを行う Ziff-Davis 等とは事情が異なります。)

Mindcraft 社の「サービスについてのページ(英語)」には、以下のように非常によくまとまった説明がなされています。

「カスタム・パフォーマンス・テストサービス」をご利用頂いた場合、私共はお客様とご一緒にテストの目的を定義致します。その後、私共が必要な器具を揃え、テストを行います。 私共は、お客様の目的を満足させる形で結果をご報告致します。

われわれは、このテストの「目的」がどのように事前に取り決められたのかは知る由もありませんが、このテストの顧客は Microsoft 社でした。

Microsoft 社が Mindcraft 社のサービスを利用しているのは今回だけでなく、同様の調査が既に行われていました。

  • NT と Solaris の比較」(英語)
    ウェブサーバとして Windows NT Server 4.0 は Sun Web Server 1.0 を走らせた Solaris 2.6 よりも 4倍高速であり、コストパフォーマンス的には 10.3倍優れている。

  • NT と Novell Netware の比較」(英語)
    ファイルサーバとして Microsoft Windows NT Server 4.0 は Novell NetWare 5 よりも 25.5%高速であり、コストパフォーマンス的には 2.7倍優れている。

これらの他のテストでは不正な策略が用いられました。例えば Netware のテストに対するNovell社の反論(英語)をご覧下さい。 (一方 Mindcraft 社は このように応酬(英語)しています。)

興味深い点がもう一点。他のテストはコストパフォーマンスについての比較がありますが、Linux のテストでは省略されています。

Linux サーバの設定

このテストにおける Linux サーバの設定に以下のような多数の問題点が発見されています。

  • カーネル 2.2 は、ファイルシステムとバッファキャッシュに関して多くの調整可能なパラメータをサポートしています。 bdflush とファイルシステムキャッシュサイズのパラメータを調整することによって、高負荷時の Samba システムのパフォーマンスを2倍に向上させることができることが知られています。 テストでは、この調整は行われていませんでした。

  • Mindcraft 社がテストを行った時にはカーネル 2.2.3 が公開されていたにも関わらず、テストに使用されたのはカーネル 2.2.2 でした。 カーネル 2.2.2 には Windows クライアントとのインターオペラビリティに関して、広く知れ渡っており、かつ、しっかりとした文書化のなされている TCP に関する問題がありました。

  • この調査でテストされたサーバでは、同一ディスク内に NT と Linux がセットアップされていました。
    ※訳注:同じ性能の2つのディスクという意味ではなく、1つのディスクの異なるパーティションにデュアルブートでインストールされていたという意味です。
    Bill Henning 氏(CPU Review(英語)で有名)は、ディスクの外側(シリンダ当りのセクタの数がより多い)に入れられたシステムの性能は、他方に比べデータ転送速度が 1.5〜2倍有利になると指摘しています。 Mindcraft 社は、各々のシステムがどの場所にインストールされているのかを明らかにしていません。従ってこの報告からは配置による影響が実際にどれ程なのか知ることができません。

    (その後 LWN は、このテストは実際に2つの別々のディスクにOSを入れて行われており、マルチブートシステムではなかったことは確かであるという報告を受け取りました。しかし、データの入れられていたディスクについては依然として疑問が残ります。)

  • このテストは Linux ではあまり巧くサポートされていない RAID コントローラを使用して行われました。このコントローラ用のドライバのバージョンは 0.92 で、SMP システム上では問題があることが知られていました。 異なるコントローラを使用していれば、より良い結果がもたらされていたでしょう。

  • 何人かの方々が、テストの「直前に走っていたプロセス」のリストの中に Apache と Samba が入っていないことを指摘して下さいました。 これは Mindcraft 社側の記載ミスか、あるいは、これらのサーバーが inetd から起動されていたかのどちらかです。 もし後者であるならば、報告に示されているようなパフォーマンスを得られたということは、Linux は NT と比較して全く驚異的な高性能だということになります。

    しかし実際にはここまで NT のパフォーマンスが酷いということではなさそうです。 報告書自体の杜撰(ずさん)さの可能性の方がより高いように思われます。

  • Mindcraft 社は、NT のネットワークカードのパフォーマンスを改善するために、かなりの労力を費やしたようです。

    TCP ウィンドウは 65536 にまで引き上げられていました。これにより保護されたネットワーク上では状況によっては転送速度を上げることができますが、実際的な状況では通常行われることではありません。

    同様な最適化は Linux に対しては行われませんでした。

  • NT には 1012 MB のスワップファイルが用意されましたが、Linux に対してはスワップの配置に関して何も言及されていません。

Apache の設定

Mindcraft 社によって使用された Apache の設定は、実世界で使用されるウェブサーバの設定とはあまり一致しません。
  • このテストの Apache の設定は高負荷までを考慮に入れた形で調整されていません。 初期のサーバの数が 10 に、MinSpareServers が 1 に設定されています。 この設定では特に突然の高負荷に対して素早く反応しにくくなります。 これでは決して「エンタープライズ」向けの設定とは言えません。

  • Apache のログ機能がどのように設定されていたかについても疑問があります。 明らかに Apache は OS が入っているのと同じドライブにログを残していたようです。この場合、Linux/Apache のパフォーマンスに悪影響する可能性があります。(一方、NT/IIS は RAID アレイにログを残していました。) また、どうやら IIS はテストが終了する後まで実際にはログファイルに書き込みをしないように設定されていたようです。一方 Apache は1ヒット毎にログを残していました。

  • Mindcraft 社による Apache の設定は、実用面で非常に重要な最適化である KeepAlive が off になっています。 (Mindcraft 社は KeepAlive を利用した場合のテストを全く行っていません!)

Samba の設定

  • Mindcraft 社による Samba の設定では widelinks パラメータが no になっています。 このような設定ではファイル名検索のためにシステムコールのオーバーヘッドがかなり増加します。 このハンディキャップによって特に SMP システムが深刻な悪影響を及ぼされます。

  • テストで使用された 144 のクライアントすべてが Windows95/98 システムでした。 Samba の開発者の方々が承知しているように、Samba は Windows 95/98 がクライアントである場合よりも NT がクライアントである場合のパフォーマンスの方が高いのです。

  • 報告書を見る限り、Samba はシステム上の(複数の)イーサネットコントローラのすべてを使用するように設定されていなかった可能性があります。

些細な点

LWN 宛に送っていただいた指摘のいくつかは、テストの結果にそれほど影響を与えるものではなかったと思われます。 そのような情報の伝播を防ぎ、情報の質を高めるのにお役に立つことを願って以下に列挙させていただきます。
  • テストが 4GB のサーバで行われたことに対する申し立てがいくつかありました。Linux カーネルがデフォルトでは 960MB のメモリしか使用できないのに、というものです。 これに関しては、パッチを当ることで非常に簡単に 2GB まで使用可能にすることができます。

    しかし、パッチを当ることが可能であれ不可能であれ、Mindcraft 社によると NT のメモリは 1GB までに(maxmem パラメータを利用して)制限されていたということですから、この点については、このテストはフェアに行われたと言えます。 ただし、素直にシステムから残りの 3G を外しておいたほうが誤解がなくて良かったのではないでしょうか。

  • テストされたシステムは kerneld と portmap と NFS を走らせていましたが、このテストの場合それらはいずれも必要無かったはずだという指摘がありました。 しかし、それらが走っていても問題は無かったはずです。

  • テストされたシステムはファイルハンドルが不足していたのではないかという推測がありましたが、その後の調査で、どうやらそうではないらしいと指摘されています。 カーネル 2.2 のファイルハンドルの制限はデフォルトで 4096 (前バージョンよりかなり多い)なので、今回のテストの場合には十分だったはずです。

まとめ

このテストの Linux システムが、その全能力を発揮していなかったことは明らかです。 Mindcraft 社を好意的に解釈すれば、 明らかに NT の専門家はいたが、Linux システムを最適化できる専門家がいなかったということが 言えるかも知れません。 早急に Linux の専門家によってテストが再試行されることが望まれていると思われます。

(Version 1.0)

Special
LWN(英語)
A look at the Mindcraft report

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.