CrystalDiskMark 3.0の新機能紹介

更新をサボっている間に、CrystalDiskMark 3.0が公開されていました。
旧バージョンのCrystalDiskMark 2.2と比較して、SSDの性能を多角的にベンチマークするための新機能がいくつも追加されています。今回の記事では、ベンチマーク結果を交えてそれらの新機能を紹介してみたいと思います。

Random Read/Write 4KB QD=32

起動して一番最初に目に付くのが、"4K QD32"という新しいテスト項目が追加されている点です。これは、NCQ(Native Command Queuing)による性能向上をベンチマークするためのテストです。
NCQとは、HDDやSSDが複数の読み込み・書き込み命令を同時に受け取ったときに、同時処理や順序の並び替えにより、パフォーマンスを向上させる仕組みです。QD(Queue Depth)とは、同時に発行される命令数を表します。つまり、このテストでは32個の命令を同時発行しています。

このベンチマーク結果では、Readに関しては"4K QD32"のスコアが"4K"の2倍以上になっていますが、Writeに関しては"4K QD32"と"4K"がほぼ同等になっています。すなわち、このSSD(K5-64)では、読み込みにのみNCQが有効であるということが分かります。他のSSDでは、例えばIntelX25-Mでは読み書き両方でNCQが有効であり、SamsungのPB22-Jシリーズや東芝のHG2シリーズでは読み書き双方ともNCQは無効です。

テストサイズ 2000MB/4000MBの追加


CrystalDiskMarkは、テスト用に一時ファイルをディスクに作成し、そのファイルに対し読み書きを行うことでベンチマークを行います。2.2ではこのファイルの最大サイズを1000MBまでにしかできませんでしたが(デフォルト100MB)、3.0からは最大サイズが4000MBになりました(デフォルト1000MB)。
テストファイルのサイズが小さいと、例えば大容量の書き込みキャッシュを持つRAIDカードのベンチマークを行った際に非常に高いスコアが出てしまうことがあります。これは、テストファイルの全て、あるいは大部分がキャッシュ上に作成されてしまうことが原因です。(参考:Akiba PC Hotline!によるLSI MegaRAID SAS 9260-8iのベンチマーク)

同様の現象が、SSDにおいても発生することがあります。上図は、BuffaloのSHD-NSUM30(JMF602,MLC,32GB)についてテストサイズ1000MB/2000MBの結果を比較したものです。
注目するべき点は、Write 512K/4Kのスコアが2000MBでは非常に落ち込んでいるところです。この現象は、JMF602SSD内の予備領域のうちの一部分をあたかも書き込みキャッシュのように用いており、テストサイズを2000MBにするとその領域からデータが溢れてしまうことに起因します。JMicronはその一部分の領域のことを"システムデータ"と呼んでおり、SHD-NSUM30の場合は約1.2GBの容量を持ちます。テストサイズ1000MBの場合はシステムデータ内にファイルが収まりますが、2000MBの場合は溢れてしまいます。
JMF602搭載SSDを起動ディスクとして使用したとき、システムデータが一杯となるとランダムライトの性能が異常に遅くなり、OSの反応まで悪くなってしまいます。それが悪名を馳せた「プチフリ」です。2.2まではテストサイズが1000MBまでしか選べなかったため、多くのJMF602搭載製品についてランダムライト性能の低下を検出できませんでしたが、今回のバージョンからはしっかり検出できるようになりました。
(プチフリ問題に関しての詳しい検証はこちら)

書き込み内容の変更(Random/0Fill/1Fill)


前回の記事に書いた通りなのですが、一部のSSDは書き込み内容によって大きくパフォーマンスが変化します。3.0では、"ファイル(F)"->"テストデータ(T)"から、書き込み内容を変更することができます。上図は、OCZのVertexシリーズの30GB版において、書き込み内容を変化させたベンチマーク結果です。
この機能は、書き込み内容が0Fillである他のベンチマーク(HD Tune, ATTO Disk Benchmarkなど)との比較のためのものと言えます。そのため、理由がない限りデフォルトのランダムのままでベンチマークを行った方が良いでしょう。

空テストの追加

前述したように、通常の場合、書き込みキャッシュは"キャッシュ容量>テストファイルサイズ"となったときに大きな影響を及ぼします。ところが、SamsungのPB22-Jシリーズでは、書き込みキャッシュが特徴的に使われています。

上図は、PB22-Jシリーズの64GB版についての、CrystalDiskMark 2.2の結果です。Random Write 4KBの値が12MB/sを超えていますが、このような結果が出るのは1回目のみで、2回目は2MB/s前後、3回目以降は0.5MB/s程度の性能しかでません。CrystalDiskMarkは、5回(デフォルト値)のテストの最大値を結果として表示するため、最終スコアがこのような形になってしまいます。この結果は、おそらくPB22-Jが小さいサイズの書き込みに限ってデータをキャッシュに保存するためだと考えられます。

3.0では、この問題を軽減するために空テストが追加されています。すなわち、テスト回数が5回の場合は実際には6回のテストが行われており、最初の1回の結果は捨てられます。そのため、上記のような結果になります。

まとめ

以上のように、CrystalDiskMark 3.0では、SSD時代に対応した様々な機能追加が行われています。CrystalDiskMarkの最大の利点は、お手軽簡単というところにあります。ベンチマーク結果は多くの人の参考になりますので、皆さんもじゃんじゃんベンチマークしてBlogや掲示板などに貼り付けましょう。ただし、ベンチマークのし過ぎはSSDの寿命を縮めますので、長く細く使いたい人は程々にしてください。