- Q1.
Linux と ... (他の OS を選択して) どのように性能比較
したら良いでしょう ?
- A:
Linux と他の OS の性能を比較することは
comp.os.linux.advocacy で感情的な戦いの議論をはじめるのに良い
方法です。[訳注:感情的な戦いは好ましくないので逆説的な言い方ですね]
与えられたアプリケーションが稼働する各自のシステムの OS の選択は
性能の数値と独立してはいません。性能は OS を選択する上での幾つかの
基準の内の一つで、通常はわざわざ Linux と他の Unix でない OS を比較
するときには、ほとんど意味のあることではありません。
また、異なる OS で類似の性能の数値は大変異なるか若しくは、殆んどの
場合、製作する事さえまったく不可能です。Linux と 他の Unix の変種
を比較するときは、重要な点は議論の余地がある問題点で:
対する "犠牲者" はいつも BSD の変種である Sun Solaris 又は Sun OS,
NextStep, AIX 若しくは HP/UX で、それらは GPL に準拠してなかったり
多くは Linux の稼働しないプラットフォームで稼働するものです。
- Q2.
Linux システム用の一つの価値ある数値はありますか ?
- A:
いいえ、ありがたいことに誰も Lhinuxstone (tm) 測定値
のようなものは出てきていません。そのようなものがあったとしても
Web サーバが個々のグラフィックワークステーションへ高い負荷をかける
ような Linux システムは多くの色々なタスクが動作しています。このよ
うないろいろな状況にある Linux システムについて利点の比喩的表現は
ありません。
- Q3.
この時、どうやって多様な Linux システムの色々な
性能を幾つかの数字にまとめたら良いでしょう ?
- A:
理想的な状況を仮定します。現実にしたいと思います。
事実、Washington Area Unix User Group が
Web サイト
を Linux Benchmarking Project のために設定していて、Linux のベンチ
マーク結果用のオンラインデータベースが本当にすぐに持てるようになる
でしょう。
- Q4.
BogoMips って ?
- A:
BogoMips はお手元のシステムの性能を表すものではあり
ません。BogoMips Mini-HOWTO を調べてください。
- Q5.
Linux 用の "最高の" ベンチマークは何ですか ?
- A:
Linux システムのどの角度の性能を計りたいかによります。
ネットワーク性能 (一様の転送速度の Ethernet), ファイルサーバ (NFS),
ディスク入出力, FPU, 整数, グラフィックス, 3D, プロセッサ-メモリ
帯域幅, CAD 性能, トランザクション時間, SQL 性能, Web サーバ性能,
実時間性能, CD-ROM 性能, 耐震性能 (!), 等などを網羅する Linux 用
のベンチマークスイートは筆者が知る限り今までありません。
- Q6.
Linux 下で最高速のプロセッサは何ですか ?
- A:
どの業務で最高速なのでしょう ? 重い数値計算よりの業務
の場合は Alpha が該当する業務向けに設計されているので、高クロックの
Alpha (600 MHz 以上) が他よりは速いでしょう。また一方、速いニュース
サーバがほしい場合は高速なディスクサブシステムを選択し沢山のメモリ
を積んだシステムが同じ費用でプロセッサを変更するよりはより高い性能
を結果として残すでしょう。
- Q7.
質問を言い換えると、つまり:
汎用的なアプリケーションで最高速のプロセッサは何ですか ?
- A:
油断のならない質問ですが、とても単純な答があります。:
ありません。いつも汎用的なアプリケーション用に高速な
システムを設計したとしてもプロセッサ依存になります。通常、
ほかの部分は高いクロック速度が高性能のシステムを結果として生じます。
(頭痛も起きますけど)。 古い 100 MHz の Pentium をアップグレード
可能な (通常違いますが) マザーボードから取り出して, 200 MHz 版を
さした時には余分に "ふーん" と感じるでしょう。勿論、8 メガバイト
のメモリしかない元のシステムに、同額の投資で余分に SIMM を買った
方がより賢いと思います。
- Q8.
そんなにクロック周波数がシステムの性能に影響がありますか?
- A:
NOP 命令のループを除いたほとんどのタスクでは (新しい
最適化コンパイラは NOP 命令を取り除くけれど) 、(同じプロセッサ
アーキテクチャでは) クロック周波数が増加
すると線形に性能向上します。プロセッサ内蔵の 1 次キャッシュ
(L1 キャッシュ、通常 8 または 16 K) に完全に
はまりこんでしまう、データが高度に局所化していて入出力がとても少ない
ような、十分小さなプロセッサ集中的なプログラム
はクロック周波数の増加と同時に性能向上しますが、殆んどの "本物の"
プログラムはそのようなプログラムよりかなり大きく L1 キャッシュに
入らないほど大きいループを持っていて、(外部の) L2 キャッシュを
ほかのプロセスと共有しています。よって外部の構成要素に依存し少し
性能が向上するかもしれません。したがってプロセッサと同一クロック
周波数で L1 キャッシュは (通常) 動作していますが、ところが L2
キャッシュと
他のサブシステム (例えば DRAM) はより低いクロック周波数で非同期に
動作しています。幾つかのプロセッサは L1, L2 と L3 キャッシュさえ
持っています。
- Q9.
分かりました。では、最後の質問を次の事象について:
一般的な目的向け Linux の最高のコストパフォーマンスのプロセッサは何で
しょう ?
- A:
"一般的な目的向け Linux" の定義は簡単なものではありませ
ん。特定のアプリケーション向けなら、与えられた時間で最高のコスト
パフォーマンスは考えられますが、製造会社は新しいプロセッサをかなり
頻繁に発表し、価格を変更するので n MHz で動作するプロセッサ XYZ
という舌足らずの
答が出てきます。しかしながら、プロセッサの価格はシステムを合わせた
全体の価格の中ではささいなものでしょう。従って、実際には、質問は
どうやってシステムのコストパフォーマンスを最大にするか ? ですね。
そして、最低の性能の必要条件と/または考えている構成が最大コスト
に納まることに深く依存していますね。時々、既製のハードウェアでは
最低性能要件に出会うことは無いでしょう。高価な RISC の
システムは選択肢にしかすぎません。そしてボトルネックの殆んどは
プロセッサの性能ではなくディスクの入出力です。自宅で使うには、
全体の性能が安定
した、均質的なシステムをお勧めします。(安定と均質が何をさしているか
思い浮かべてください :-); プロセッサの選択は重要な決定事項ですが、
ハードディスクの型と容量、メモリの量、ビデオカード等を選択するのも
大切です。
- Q10.
性能において "意味のある" 増分とは何でしょう ?
- A:
1% 以下のものを重要とは言いません("わずかな"
と記述することにします)。我々、人間は応答時間が 5 % 異なるとき
はっきりと二つのシステムの違いを知覚できます。勿論、いくつかの徹底
したベンチマークは人間ではないですからシステムを比較して性能指標が
65.9 と 66.5 という場合は後者を "明確に高速である" と言います。
- Q11.
最低の費用で性能においてどのようにして "意味のある"
増分を得られるでしょう ?
- A:
Linux のソースコードが利用可能なのだから、注意深く
鍵となるサブルーチンのアルゴリズムを再設計すればいくつかの場合に
性能が驚くほど向上するかもしれません。商用プロジェクトと関係する
か C のソースコードを深く探究するのがイヤなら
Linux コンサルタントを呼ぶべきでしょう。
Consultants-HOWTO を参照してください。