2013年1月10日木曜日

SSDベンチマークの罠 Part1 (仮想化OSによる差異)

最近のSSDはコントローラのチューニングが進み比較的速度も安定してきたようです。 初期の頃はSSDの特性と実運用がマッチせずプチフリの発生や使用につれて速度が低下するといった問題が多かったのですが、最近はかなり改善されて価格も手頃になったのでHDDからSSDに移行をするユーザーも増えてきました。

業界情報では主にHDDに使われてきたベンチマークソフトで検証結果を公表して評価しているところが多いのですが、実際に乗せ換えをしてみると期待値程の効果を得られないことがあります。

SSD自体の構成(MLCやSLC)やOSのアライメント特性といった事も影響するわけですが、PCの利用時にはそれよりもより実情に合った評価をする必要があると思えます。 主にベンチマークで評価されるのはRead性能やWrite性能を単独評価する向きがありますが最近のPCはマルチスレッドで処理を行うケースが多く、利用するアプリケーションによりI/Oプロセスのオーバーヘッドがかなり発生するのが一般的です。

SSDの場合HDDと違いシーク時間や物理的なI/Oウェイト時間というのが発生しないのでそれらを考慮する必要は無いと言う人もいます。  しかし実際にはRead/Writeが頻繁に発生するのが通常であり、Read一辺倒やWrite一辺倒というのは実運用時のパフォーマンス評価からかけ離れた結果をもたらします。  ハードウェアとしての性能検証と言う面では的を得ているのですが外部ストレージとして最も重要な相対的なスループット評価は別のアプローチが必要です、それらの違いを2回に分けて判りやすく検証してみました。


基本となる評価材料

OS : Windows7Pro-64bit
CPU: Core2 Quad Q6600 2.8GHz
SSD: CSSD-S6T120NTS2Q (120GB SATA2接続)
HDD: SATA2接続


SSDの実測値
HDDの実測値


まずは一般的なHDDとSSDを単純比較です、入手したSSDはSATA3対応でSread/507MB Swrite/374MB の公称スペックですがテスト機のマザーがSATA2までの接続仕様なのでSSD側のスペック不足による問題は無いと思います。
SATA2接続を考慮するとほぼ8割9割の速度がでていることになりますね、一方HDD側はというと特に単純なランダムアクセスにかなり弱いのがうかがえます。 SSDのメリットがこの部分だとよく強調されます。


【SSDの仮想化による影響は?】


次に仮想化による影響を検証してみます。  システムを仮想化するとディスクへのI/Oプロセスはエミュレータが受け持つ訳ですが仮想ディスクに対するパフォーマンスが気になります。 使用するのはOracleのVirtualBox最新版4.2.6です


WindowsXP Proffesional 32bit
HDDをそのまま若干高速化したような感じです、SSD本来のパフォーマンスからすればシーケンシャルのI/Oも半減ですが本来得意とするランダムアクセスがHDDのようなレスポンスしか得られていません。 HDDに比べてランダムは5-6倍といったところでしょうか、SSDの100倍とは比べるべくもありませんがそれでもHDDよりは早いのは事実


Windows2000Server 32bit
これまたXPと大差無い感じです、どうやら仮想環境におけるXPと2000のI/O処理は同じエミュレーション機能のようです。


Windows2003Server 32bit

おや? ちょっと様相が変わりましたね。 仮想環境側がホスト側のパフォーマンスを上回る結果に・・・ どうやらシーケンシャルのI/Oはホスト側のバッファ効果で規定値を超える数値を叩き出しました。  でもランダムアクセスは相変わらず低速です、XP系に比べるとほぼ倍、HDDに比べると10倍といったところです。


Windows2003Server 64bit

念のため 32bit と 64bit による違いがあるかも検証してみましたがこれは殆ど誤差の範囲のようです。

仮想化したOSの種類によってディスクI/Oのスループットが大きく異なるのがこれでお分かりでしょう、XP世代まではクラスタ管理などの違いやI/Oプロセスの違いもあるのでしょうが利用する際には注意が必要です。  ちょっとWindows7も気になるので次回仮想化してみるとしましょう。

今回のテストはあくまで単純なRead/Writeなのでまで実利用環境には程遠いです、次回は入出力処理の負荷を掛けた結果とマルチスレッドI/Oでの結果をお見せします、こちらも興味深い結果です。

0 件のコメント:

コメントを投稿