>Home   >PC Tips  >This page 

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台づつに分けた場合は
最高効率では動いていない計算になります。