■ 怒涛のベンチマーク変 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
お待ちかね、動作検証である。ちなみに、目的は当然、「RAID0 のストライピングによる単体ドライブの限界突破」のみ。信頼性?フフッ(笑)。ハナから PC にそんなものは期待していない。ていうか、私がハンダゴテを握った時点で、それは雲の彼方に飛んでいってしまったのだよ。 UltraTrak でストライピングを構成する際、BIOS メニュー内で "Stripe Block Size" を設定することができる。おまかせの自動設定では、ブロックサイズは 64KB となるが、この値は HDD によって最適値が異なるといわれている。IBM のドライブは大きめ(64KB〜128KB)、Quantum のものでは小さめ(4KB)が良いとのことだが、さて、Barracuda ATA2 ではどうなのか、最適値をベンチマークによって探ることにする。使用するのは、HDBench Ver.3.22 の "Disk" 項目のみ。 ブロックサイズを、デフォルトの 64KB から、32KB、16KB、8KB と変更していくわけだが、そのたびごとにたいへんな手間ひまがかかることがわかっていたので、しばらくの間デフォルトで使っていた。今回コンテンツとしてまとめるにあたっても、それなしでは竜頭蛇尾なことは自覚しており、暇ができたらデータを追加しようと思っていたのだが、公開直後から「拍子抜け」との鋭い指摘を受け、ついに観念して、気の重い作業を行うことにした。ちなみに、ストライピング構成のディスクのみで、この作業を行おうとすると、以下の手順が必要となる。
ひとつのブロックサイズでのデータを調べるのに、これを全部繰り返していたのでは、とても一日や二日で終わる作業ではない。せめて、8〜10 の部分を省略するために、起動ドライブを別途用意して C:ドライブに固定し、ストライピング構成のディスクは、セカンドディスクにして行うことにした。一応念のため、実際の使用時を想定して、10GB ずつのパーティションを区切って、D:ドライブと E:ドライブを作る。それでも、後述のようにベンチマークの値がばらつくので、満足の行く結果を得るまで、1サイクルにつき約1時間半ほどを要した。 今回のマシン構成を紹介しておこう。これも、いつまでこの通りの構成のままかは、誰にもわからない。私はおそらく、この夏は越せないと踏んでいる(笑)。
「電気カマス」こと、Barracuda ATA2 は単体でも 29MB/sec 以上の転送レートを誇る、現時点での最速 IDE ドライブのひとつである。しかし、他のサイトでも報告されているように、IDE RAID アダプタとの相性のためか、ストライピング構成にしたときの転送レートのばらつきが非常に激しいドライブでもある。一説には、8〜10分間隔で、転送レートの周期的変動が観察されるとのこと。そのため、以下のベンチマーク・データでも、特に Read の値は計測のたびに値が大きく変動したが、その中で、極端に値が低い場合を除いて、おおよその平均値を記載している。
当初、そこまでやろうとは思っていなかったが、一目瞭然、4KB の時がもっとも良好なパフォーマンスとなった。Read のばらつきは気になるが、Write の値は非常に安定していたので、本来のパフォーマンスは、そちらを信用すべきであろう。それでも、UltraATA/33 の理論値を軽く突破し、UltraATA/66 の本領発揮となったので、投資効果としては満足のいくものであった。なお、ベンチマークの結果は、なぜかパフォーマンスの良かった E:ドライブのものである。
結果を考察してみよう。 ストライプ・ブロック・サイズの違いは、複数のドライブにデータを振り分ける時の分割単位の違いである。つまり、ブロックサイズ 4KB の時は、ひとつのファイルが 4KB ずつ(おそらく)交互に、ふたつのドライブに格納され、読み出されることになる。ところで、今回は前述したように 10GB ずつのパーティションを作ったのだが、このときの「アロケーション・ユニット・サイズ」は 8,192 bytes である。昔風にいえば、「クラスタサイズが 8KB」ということになる。これが何を意味するかといえば、Windows 上での最小ディスク消費単位が 8KB ということで、つまり、どんなに小さい(たとえ 1 byte の)ファイルを作っても、ディスクとの間に 8KB 単位のやり取りが発生するということである。 ストライプ・ブロック・サイズが 4KB ということは、どんなファイルでも必ず分散され、ストライピングの効果を完全に発揮することができたのではないかと考える。
(完) |