誰も教えてくれないWindows 7 x SSD x RAID5チューニング
あやあ。
SSDでRAID5は組んでいるかい?
【関連】
喜んで組んだもののベンチマークを取ってなかったなと思い、CrystalDiskMarkで検査を行ってみたよ。当然、確認は実運用に近い状態で。アンチウイルスも普通に動いているし、ブラウザも動かしながらベンチマーク。
え? 最高値の為にはそんな事してたら云々かんぬん?
そんな値でドヤ顔しても意味ないでしょ。そんな状態で運用しないんだから。
では結果。
あれ? なんか4KのWriteが凄く遅い気ががが
というか、Writeが全般的に低スコア。おかしいな、SSDでRAID5なら、もっと速度が出るはずなのに……おかしいな。体感は悪くないんだけどなあ。
何だかんだでそれなりにお金掛けたんだから、もう少し速度が出てくれても良いんじゃないかなー。ね? もうちょっと頑張れるよね?
(冷や汗をかきつつディスクに問いかける)
仕方ない。チューニングを本気でやってみようか。
仮説1:データストライプサイズの拡大
サーバを組む時、RAIDを使用する場合はstrip sizeの大きいHW RAIDボードを使用する方が、速度的に有利であることを経験則で知っている。
ので、先ずはRAID5の設定変更から。
再構築が必要なので、システムバックアップ→復旧を使用しながら、M/Bの設定を変えてみる。
初期構築ではstrip sizeは、マニュアルお勧めの64KBで作成していた。
GIGABYTE GA-Z87X-UD5HでIntel Z87 SATAコントローラを使用してIRST Option ROMよりRAIDを構築する場合、strip sizeは16KB・32KB・64KB・128KBが選択できる。
64KBの次は128KBなので、それで行ってみよう。
再構築後、復旧を行って再度ベンチマーク。
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 |
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 |
①
②
③
④
⑤
⑥
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 |
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
sprit size:32 KB
sprit size:64 KB
sprit size:128 KB
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には当てはまらないようです。
てか、何処にも書いてないし、誰もちゃんと調べてない気がするなあ。
自作系の雑誌とかでも、結局は単独運用での最速ベンチばかり。チューニングやら細かい設定やらは全然詰められていないですので、アレを見てもあんまりアテにならないってのが、今回の検証でよく分かりました。
と言うことで、私のマシンはそれなりの値に達しました。
皆さんのマシンはどうですかな? ではでは。