Cheetah18XLとNT4.0のSoftwareStripeでの限界について
2000/06/11
original issue
2000/06/16 updated
Cheeta18XLをNT4.0workstation+sp4にて
SoftwareStripeを組み、Threadmark2.0にて計測
環境:
マザー P3DME
CPU P3-500E(FC-PGA)を定格にて使用
SCSI ASC-29160を64bitPCI接続
OSはC:とし計測対象ドライブは単一パーテションでのstripeと
パーテションを切って前半部分だけで組んだstripeの2種類で計測。
フォーマットはNTFS
| *2全域 計18G |
*2前半4.5G分 計9G |
*3全域 計27G |
*3前半3G分 計9G |
*4全域 計36G |
*4前半2.5G分 計10G |
|
| TransferRate | 36.86MB/sec | 37.75MB/sec | 63.64MB/sec | 64.43MB/sec | 68.11MB/sec | 66.37MB/sec |
| CPU Utilization | 31.23% | 31.86% | 52.04% | 53.54% | 55.67% | 56.31% |
| 物理ドライブ1台あたりTransferRate | 18.43MB/sec | 18.875MB/sec | 21.213MB/sec | 21.477MB/sec | 17.028MB/sec | 16.593MB/sec |
考察
2台でのstripeよりも3台でのstripeの方が物理ドライブ1台あたりの転送速度が
大きく向上している点から、Cheetah18XLは3台でのstripeが最も効率よく動作できる
ようである。
4台でのstripeは3台のときと比べて5%程度の転送速度向上しか得られていない。
不思議に思ってwinbwnch99にて全域TransferRateを計測してみると、おおよそ120MB/sec
を境に、それ以上の速度が出せる前半領域はガタガタと上下に30MB/secものブレが
観測できます。
推測ですが、どうもstripe時の転送速度120MB/sec付近を境に回転速度(1万回転)が
追いつかなくなり大きなローテイショナルレイテンシ(回転待ち)が発生している可能性がありそうです。
そう推測する根拠は、
1.前半で発生しているブレの幅(30MB/sec)がほぼCheetah18XL 1台分の
転送速度とイコールである。
2.ブレの発生が大変周期的なパターンを持っている。
3.Seagateが発表している次期フラッグシップ「CheetahX15」が、回転速度は50%増しなのにも
拘わらず、内部転送レートは16%増しでしかない という事実がある。
4.Quantumの最新フラッグシップ「Atlas10K2」は、内部バッファを従来の4倍である8MBに
大幅増強している。
などによります。
「回転待ち」の発生頻度改善には
1.回転速度自体を上げて根本的に改善する
2.内部バッファを拡大して先読み量やwriteバッファリング量を増やし、「回転待ち」の発生をカバーする
3.シーク速度の向上
という3つの手段があります。
NTFSというファイルシステムの制約もしくはNT4.0のSoftwareStripeの構造的限界
という可能性もありますので、SP6aを導入してNTFSバージョン5にしてみましたが、
やはり結果はこのようにガタガタです。4台でのstripeでパフォーマンスが頭打ちと
なる理由については引き続き検証していく予定です。
考察続編
バッファを用いないHDDの物理的な動作特性は「write動作のほうがread動作よりも遅い」です。
そこで「回転待ち」を極力発生させずに済むようにCheetah18XLの4MBの内部バッファが
全てwriteに使われるようreadキャッシュoff、writeキャッシュonに設定し直して、4台stripeを
まずwinbench99で計測してみました。(Cheetah18XLの工場出荷時設定はr/wともon)
お(^o^ 今度は全域とは言わないまでも前半10GBくらいまでは安定して140MB/sec近辺を
マークしています。
連続転送試験で4MBバッファによるカバーが間に合う範囲は恐らく約10GBなのでしょう。
そこで、前半10GBまでを使うようにstripe用のパーテションを切り直して再度winbench99で
計測してみるとこうなりました。 少々のガタツキはありますが、安定してハイスコアを
マーク出来ています。
ちなみにその他の組み合わせですと
r/wともキャッシュoff・・・相変わらず転送レートはガタガタ
rのみキャッシュon・・・前半5GB程度までは140MB/secで安定
となりました。 但しこれはCheetah18XLの特性ですので、他HDDで同様の結果になるとは
限りません。 winbench99などでそれぞれのHDDの動作特性をよく観察してキャッシュのon/offを
判断する必要があると思います。
さぁ、これで準備万端、Threadmark2.0を実行してみると・・・
67.75MB/sec
という結果となりました(泣。 謎の解明はまだ続く・・・と思う
考察続々編
さて、基本に振り返って考えてみました。 「stripeは1チャネルにHDDを沢山接続しても
効率が落ちる」 という原則を思い出しまして、買ってきました。2chSCSIのASC-39160。
とっととASC-29160と交換しまして、Cheetahを1chに2台づつ接続してまず4台全域での
stripeをwinbench99で計測。
おおっ! ようやく素晴らしくまともに安定しました。
どうやらCheetah18XLの場合、SCSI1チャネルあたりは3台が効率の上では限界の様子です。
さて、Threadmark2.0を実行・・・・
Data Transfer Rate (MB/sec) was 73.34.
までいきました。
しかしここまでの実験で明らかなように、Cheeta18XLの場合、SCSIチャネルあたり3台が最も
効率良いstripeとなりますので、今回のようにSCSIチャネルあたり2台づつに分けた場合は
最高効率では動いていない計算になります。