イベントレポート
SSDベンチマークの期待と現実
(2013/8/26 00:00)
SSD(Solid State Drive)の性能を測定する一般的な方法は、ベンチマークソフトを使うことだ。ストレージ用ベンチマークソフト「CrystalDiskMark」やSSD用ベンチマークソフト「AS SSD Benchmark」などのベンチマークソフトを、Webサイトからオンラインで無償ダウンロードできる。
ただしベンチマークソフトの実行(ベンチマークテスト)で得られる性能値は、実際の性能とは必ずしも一致しない。いくつかの条件を満たさないと、ベンチマークの値が現実の性能とはかけ離れたものになってしまう恐れすらある。
フラッシュメモリサミット(Flash Memory Summit)の講演セッションでSSDコントローラ半導体のベンダーであるLSIは、「Do Not Let Your Favorite Benchmarks Lie to You(良く使うベンチマークをウソつきにしないために)」と題する講演を実施し、ベンチマークテストで注意すべき事柄や、予め知っておくべき事柄を説明した。講演者はLSIのフラッシュコンポーネンツ部門でマーケティング担当シニアディレクターを務めるKent Smith氏である。
Smith氏は始めに、ベンチマークテストが抱える問題点をまとめて示した。問題点は大きく2つに分かれる。1つはベンチマークテストそのものが抱える問題。もう1つはテストを実行する側(ユーザー)に関わる問題である。
ベンチマークテスト自体が抱える問題点には、まず、テストパターンが人工的なものであり、実際の使用パターンそのものではないということが挙げられていた。実使用条件はユーザーごとに違う。テストと現実が違うのはエンジニアリングの世界では常識であり、ストレージに限らず、エレクトロニクス製品におけるテストというものが抱える本質的な問題だろう。重要なことは、ベンチマークテストは「現実を映しているとは限らない」という事実をユーザーが知っておくことだ。
テストを実行する側の問題としては、まず、「プリコンディショニング」を指摘していた。SSDは出荷以降の書き込み履歴によって性能が大きく変動する。プリコンディショニングとは、この書き込み履歴の影響を取り除く一連の書き込み作業を指す。プリコンディショニングを実行せずに、あるいは誤った内容で実行した後にベンチマークテストを実施すると、結果が適正なものではなくなる恐れが少なくない。
読み出し100%と書き込み100%の間にある現実
テストパターンが実使用条件を反映していないという問題を、Smith氏は具体的に示した。代表的なSSD製品4品種のIOPS(入出力回数/sec)を「読み出し/書き込み」の比率を変化させて調べた結果(データアクセスはランダム)である。通常、読み出しだけのときにIOPSは最も高く、書き込みだけのときにIOPSは最も低い。そしてベンチマークソフトはたいてい、読み出し動作だけのIOPS(Read IOPS)と書き込み動作だけのIOPS(Write IOPS)を表示する。実際の性能値は両者の間にあるのだが、それは分からない。
例えば読み出し比率95%/書き込み比率5%の使用条件があったとする。この場合、Read IOPSのベンチマーク値に近い性能を想像するかもそれない。しかし実際には、5%の書き込みが存在するだけでIOPS値が激減する。Smith氏が示した性能値では、Read IOPSの半分から5分の1にまで下がっている。
格納してあるデータのパターンがテスト結果を左右
SSDのベンチマークテストにおけるもう1つの重要な問題は、格納してある(あるいは格納する)データのパターンがテスト結果を左右するということだ。格納してあるデータがランダムに分布しているとき、SSDの性能(テスト結果)は最も低くなる。データのパターンが何らかの法則に基いていたり、秩序立っていたりするときは、SSDの性能は高くなる。格納しているデータのパターンの違いを表す指標は「データエントロピー(Data Entropy)」とも呼ばれる。ランダムなパターンだとエントロピーが高く、秩序立ったパターンだとエントロピーが低い。
ユーザーが利用するデータは完全にランダムというわけではなく、何らかの法則性を帯びていたり、偏りがあったりするのが普通である。これに対してベンチマークソフトはエントロピーが最も高い、ランダムなパターンのデータ列を入出力に使っていることが多く、この点ではテスト結果が低めに出る傾向があるとSmith氏は指摘していた。
また、同じベンチマークソフトでも、改訂(revision)によってデータエントロピーが変わることがある。例えば「IOMeter 2006」と「IOMeter 2008」では、IOMeter 2008の発生するデータの方がエントロピーが低い。このため、全く同じSSDでもIOMeter 2006とIOMeter 2008では、IOMeter 2008の方がベンチマークテストの結果が高性能になることがある。
新品のSSDを使い始めると性能が急降下
続いてSmith氏は、「プリコンディショニング」の重要性を説明した。先述のように、SSDの性能は書き込み履歴に依存する。さらに詳しく説明すると、SSDは出荷直後の状態(この状態を「FOB(Fresh Out of Box)状態」と呼ぶ)が、最も性能が高い。ユーザーがSSDにデータを書き込むと、SSDの性能は急速に低下する。この状態を「遷移状態(Transition State)」と呼ぶ。書き込みを続けると、ある段階から性能の低下が極めてゆっくりとなり、ほぼ一定の性能を維持するようになる。この状態を「定常状態(Steady State)」と呼ぶ。
SSDの性能評価、すなわちベンチマークテストは、SSDが定常状態に達してから実行することが望ましい。定常状態に達するまでには、SSDの全容量に対して数回(概ね2回~3回)の書き込みを実施する必要がある。
ここで重要なのは、新品のSSDが定常状態に達するまでには相当な時間がかかるということだ。Smith氏はIOMeterによって4Kランダム書き込み性能(データ転送速度)を測定しながら、新品のSSD(容量256GB)のデータ転送速度が低下していく様子を示した。定常状態に達するまでに約3時間を必要とした。定常状態では、データ転送速度は初期値(FOB状態での性能)に比べると約1割と大幅に低下している。具体的にはFOB状態で275MB/secだった性能が、定常状態では約25MB/secに下がってしまった。言い換えるとプリコンディショニングの有無により、ベンチマークテストの値は10倍にも変化するということだ。
ランダム書き込みのプリコンディショニングに比べると、連続(Sequencial)書き込みのプリコンディショニングによる性能低下はかなり小さい。また短い時間(約15分)で定常状態に達する。シーケンシャル書き込みが定常状態に達したときの性能低下は最高値の25%に留まる。だからと言って時間を節約するために連続書き込みだけでプリコンディショニングを完了させてしまうことは、性能を適正に評価するという目的からは望ましくない。
市販のベンチマークソフトで実性能との乖離を知る
そして市販のベンチマークソフトの幾つかに対し、データエントロピーの違いによって性能がどのように変化するかを調べた。その結果を、FOB状態の性能(プリコンディショニング前の性能)、連続書き込みのプリコンディショニングによって定常状態になったときの性能、ランダム書き込みのプリコンディショニングによって定常状態なったときの性能、に分けて表示した。
ベンチマークソフトには「AS SSD Benchmark」、「ATTO Disk Benchmark」、「CrystalDiskMark(CDM)」、「Anvil」、「PCMark Vantage」をそれぞれ使用した。測定結果は以下のように示された。プリコンディショニングの影響はソフトごとに異なるし、同じソフトでもテスト項目ごとに異なっていた。
最後にSmith氏は、これらのベンチマークテストで実施したプリコンディショニング作業の工程を示した。IOMeterをプリコンディショニングに使用し、エントロピーの設定にはAnvilを使用した。
SSDの性能を左右する大きな要因である、プリコンディショニングとデータエントロピー。両者に関する予備知識を欠くと、ベンチマークテストの結果と実際に体感する速度が大きく違うことになりかねない。またSSDの性能は、プリコンディショニングとデータエントロピー以外の要因(例えば連続書き込みの直後にランダム書き込みを実行するといった使い方)によっても大きく低下することがある。SSDの性能評価は、一筋縄ではいかない。