誰も教えてくれないWindows 7 x SSD x RAID5チューニング

あやあ。

SSDでRAID5は組んでいるかい?

 

【関連】

 

 

喜んで組んだもののベンチマークを取ってなかったなと思い、CrystalDiskMarkで検査を行ってみたよ。当然、確認は実運用に近い状態で。アンチウイルスも普通に動いているし、ブラウザも動かしながらベンチマーク

え? 最高値の為にはそんな事してたら云々かんぬん?

そんな値でドヤ顔しても意味ないでしょ。そんな状態で運用しないんだから。

 

では結果。

f:id:white_raven:20130818023239p:plain

 

 

あれ? なんか4KのWriteが凄く遅い気ががが

というか、Writeが全般的に低スコア。おかしいな、SSDでRAID5なら、もっと速度が出るはずなのに……おかしいな。体感は悪くないんだけどなあ。

 

何だかんだでそれなりにお金掛けたんだから、もう少し速度が出てくれても良いんじゃないかなー。ね? もうちょっと頑張れるよね?

(冷や汗をかきつつディスクに問いかける)

 

仕方ない。チューニングを本気でやってみようか。

 


 

仮説1:データストライプサイズの拡大

サーバを組む時、RAIDを使用する場合はstrip sizeの大きいHW RAIDボードを使用する方が、速度的に有利であることを経験則で知っている。

ので、先ずはRAID5の設定変更から。

再構築が必要なので、システムバックアップ→復旧を使用しながら、M/Bの設定を変えてみる。

 

初期構築ではstrip sizeは、マニュアルお勧めの64KBで作成していた。

GIGABYTE GA-Z87X-UD5HIntel Z87 SATAコントローラを使用してIRST Option ROMよりRAIDを構築する場合、strip sizeは16KB・32KB・64KB・128KBが選択できる。

64KBの次は128KBなので、それで行ってみよう。

 

再構築後、復旧を行って再度ベンチマーク

f:id:white_raven:20130818025056p:plain

 

  Read [MB/s] Write [MB/s]
strip size 64 KB 128KB 64 KB 128KB
Seq 1172 1057 108.2 68.56
512K 635.8 558.4 73.53 53.51
4K 25.84 25.51 11.97 11.57
4K QD32 299.8 430.9 72.9 75.81

 

f:id:white_raven:20130818030410p:plain

f:id:white_raven:20130818030417p:plain

 

4K QD32はそれなりに改善されたが、依然他の項目が低い。(寧ろ、悪くなった)

つまり、strip sizeのみがこの速度低下の原因ではないようだ。

 


 

仮説2:IRSTの設定

 IRSTの変更可能項目は、主に以下の3つである

  • リンク電源管理 (Link Power Management)
  • 書き込みキャッシュバッファのフラッシュ (Write Cache Buffer Flushing)
  • キャッシュモード (Cache Mode)

strip sizeは128KBのままで、こちら3つを色々弄ってみることにしよう。

条件は以下のように設定した。

 

 
strip size 128KB
LPM enable disable
WCBF enable disable
CM off readonly write through write back

 

f:id:white_raven:20130818025056p:plain

 

f:id:white_raven:20130818032604p:plain

 

f:id:white_raven:20130818032615p:plain

 

f:id:white_raven:20130818032626p:plain

 

f:id:white_raven:20130818032644p:plain

 

f:id:white_raven:20130818032655p:plain

 

  Read [MB/s] Write [MB/s]
 
sprit size 128KB
Seq 1057 1035 1043 1038 1040 947.1 68.56 69.04 74.70 71.51 72.24 428.5
512K 558.4 555.3 562.6 562.0 560.8 571.5 53.51 53.26 55.91 54.84 55.54 80.30
4K 25.51 25.90 25.17 25.20 25.40 25.13 11.57 11.93 11.82 12.02 11.70 75.46
4K QD32 430.9 426.5 439.7 440.7 427.5 438.7 75.81 75.42 76.86 77.01 76.66 99.47

 

f:id:white_raven:20130818034054p:plain

f:id:white_raven:20130818034110p:plain

 Read自体は各々の差はあまりないように感じるが、Writeに関しては[ライトバック]を適応した時が他に比べて明らかに改善されている。

この差は、どう考えてもレベルが違う。

 

つまり、ライトバックを有効にすることが、RAID5に於けるチューニングの第一歩なのだろう。

ライトバックを有効にするには、書き込みキャッシュバッファのフラッシュを無効にすることが条件となる。リスクはあるが、個人のPCである事を前提とすれば、この改善度合いを考慮するとメリットの方が遥かに上回る。

 


 

検証1:SSD利用時のstrip sizeの理想値探索

 IRSTの設定は分かった。この設定を前提条件とし、strip sizeの設定がどのような影響を及ぼすのかを検証してみたいと思う。

 

sprit size 16KB 32KB 64KB 128KB
LPM disable
WCBF disable
CM write back

 

sprit size:16 KB

f:id:white_raven:20130818035329p:plain

 

sprit size:32 KB 

f:id:white_raven:20130818035503p:plain

 

 sprit size:64 KB 

f:id:white_raven:20130818035529p:plain

 

sprit size:128 KB 

f:id:white_raven:20130818032655p:plain

 

  Read [MB/s] Write [MB/s]
strip size 16KB 32KB 64KB 128KB 16KB 32KB 64KB 128KB
Seq 1083 1057 1039 947.1 463.5 460.9 477.8 428.5
512K 551.1 692.8 647.8 571.5 113.9 104 89.83 80.3
4K 24.99 25.59 24.6 25.13 74.41 75.16 73.61 75.46
4K QD32 442.8 452.1 461.6 438.7 98.86 98.82 96.26 99.47

 

上記の結果をスコア換算してみる。

  random (r/w) total (r/w)
16KB 0.90 0.96
32KB 1.00 1.00
64KB 0.96 0.98
128KB 0.89 0.90

 スコアで見ると、strip sizeは32 KBにするのがこの環境では有利である可能性が高いと考えられる。

 


 

以上の結果より、 RAID5をstrip size 32KBで組み、IRSTでwrite backを有効にするのが、最もパフォーマンスが出ると判断出来る。

 

いやはや、今までのセオリーはSDDには当てはまらないようです。

てか、何処にも書いてないし、誰もちゃんと調べてない気がするなあ。

自作系の雑誌とかでも、結局は単独運用での最速ベンチばかり。チューニングやら細かい設定やらは全然詰められていないですので、アレを見てもあんまりアテにならないってのが、今回の検証でよく分かりました。

 

 

と言うことで、私のマシンはそれなりの値に達しました。

皆さんのマシンはどうですかな? ではでは。