PC ユーザーが自分のニーズに最適なソリッドステート・ドライブ (SSD) を判断する場合、重要になるのはパフォーマンスです。とはいえ、最適なものを選ぶことは必ずしも簡単ではありません。もちろん、価格は最も重要な要素と言えます。また、使用用途によっては、耐久性やセキュリティ機能など、その他の特性が優先される場合もあります。
しかし、結局はパフォーマンスの問題に戻ってきます。
具体的に言えば、このような質問が数多く挙がってくるはずです。「十分な性能とはどのくらいか?」、「性能はどのように測定するのか?」、「ユーザーが実行するすべてのアクティビティ (この資料では個々のアクティビティを「ワークロード」と呼びます) について必要なストレージデバイスは同じなのか、それとも検討すべきパフォーマンスの種類は多数あるのか?」などです。
それぞれの疑問に対する答えを簡単に言うと、「状況によって異なる」、「慎重に行う」、「はい。多くの場合メーカーがパッケージに記載している速度の数値は 1 つですが、パフォーマンスはそれだけでは表せません」となります。通常 SSD のパッケージに明記されているパフォーマンスの数値は最大帯域幅ですが、この数値を実際の使用時に見ることはほとんどありません。
この値は、これから使用するユーザーにドライブ性能の一端を伝えるには有効かつ有用と言えますが、実際に使ってみると、日常のパフォーマンスで感じられるシステム動作の軽快さとはあまり関係がありません。その理由については、後ほどご紹介します。
賢明なユーザーなら購入時に、もう少し詳しく調査しようと、SSD の製品仕様やスペックシート (一般にベンダーはドライブごとにこれらを公開しています) を確認するでしょう。通常は 4 つの性能指標ごとに値が記載されています。
ここから新たな見識を得ることができます。仕様一覧を確認すると、いわゆる「4 つの指標」ごとに数値が記載され、「パフォーマンス」とは 1 つのものを指すのではないということが分かります。ドライブはデータのリード速度とライト速度が異なり、アクティビティがシーケンシャルかランダムか (転送サイズの関数。詳細については「I/O 特性の簡単な紹介」でご紹介します)で違いがあります。
これらの違いは、SSD の性能をより詳しく把握するのに有効です。しかし、この資料でまとめたソリダイムの検証結果によると、それだけで十分とは言えません。
後述するように、実環境のほとんどのワークロードではリードとライトが混在し、その多くが同時に処理されます。ストレージデバイスがボトルネックではない場合もあります。つまり、CPU や GPU などほかのシステムリソースがユーザー体験を制限している可能性もあるのです。さらに重要なのはキュー深度 (QD) の問題です。QD は、ある時点で SSD コントローラーに保留されている I/O 要求の数を指します。
この資料では、SSD の性能を左右する重要な要素であるキュー深度に関して詳しく説明していきます。SSD は QD が高いほど、より多くの処理を並列に実行でき、より高いスループットが得られます。このため、SSD ベンダーがパッケージや仕様一覧に記載している値は、ほとんどの場合、非常に高い QD (通常 32) で測定されています。しかし、ソリダイムの調査では、実環境のほとんどのアクティビティが QD = 1 または 2 で発生していることが分かっています。したがって、理論上の最大性能はそれほど重要ではなく、ほとんどのケースに相当する低い QD での性能のほうが重要と考えました。
ここでは、SSD で広く使われているベンチマーク・ツールや、それらの計測結果が実際の性能とどの程度一致しているかについても簡単にご紹介します。
ワークロードの特性を調べるにはさまざまな方法があります。SSD の性能について検討する際は、ユーザー体験に最も大きな影響を与える重要な指標をいくつか特定することが重要です。 例えば、ソリダイム社内のツールを使用して、ワークロードの実行を「トレース」し、基盤システムのアクティビティーを記録します (詳細は「検証方法」のセクションを参照)。今回の調査では、Adobe Acrobat を起動して PDF ファイルを読み込む際の動作を確認しました。この一般的なアクティビティーでは、わずか 9 秒前後のワークロード時間にもかかわらず、生成されたトレース出力ファイルには文字どおり数千もの個別データポイントが格納されました。そのすべてがユーザー体験に大きな影響を及ぼすわけではありませんが、その中に重要な特性が含まれていることは間違いありません。ここでは、3 つの特性について詳しく見ていきましょう。
1. リード / ライトの混在比リード / ライトの混在比は、最も直感的に理解できる特性と言えます。ユーザーの操作に応じて、PC はドライブへのデータの格納またはすでに格納されているデータの取り出しを要求します。どのタイプのアクティビティーがどちらの動作につながるかは容易に想像がつくでしょう。アプリケーションの起動やファイルの読み込みはリード動作が多くなり、データの保存は基本的にライト動作です。ある形式から別の形式にファイルを変換する場合は、元のファイルをリードして出力ファイルにライトするため、両方が必要となります。
2. シーケンシャルとランダムの混在比 シーケンシャル / ランダムの混在比も重要な特性です。これは、ドライブへのデータのライトまたはリードの方法を指します。シーケンシャル転送は、ドライブ上の連続した長い領域 (論理ブロックアドレスまたは LBA と呼びます) に対して実行されますが、ランダム処理は不連続な領域に対する小さなリードまたはライトとなります。転送サイズは通常、数キロバイトほどです。 (一部の SSD ベンダーは製品仕様に転送サイズを記載しています。例: 「4KB ランダムリード」、「128KB シーケンシャル・リード」)。大量の小さなファイルのリード / ライトを行う処理は、その性質上、ランダムになる傾向が強く、大きなファイルを個別処理するワークロードは、シーケンシャルになる傾向があります。
3. キュー深度 キュー深度を直感的に理解するのは困難ですが、ユーザー体験に重要な影響を及ぼします。小さなワークロードであっても、膨大な数の I/O 処理が発生します (9 秒間の Acrobat の起動と読み込みの例では、その数が 6,000 回を超えました)。こうした I/O を SSD は可能な限り迅速に処理しますが、キューや待ち行列と呼ばれるように、要求が待ち状態になることもあります。最近の SSD は、巧妙なアーキテクチャーによって、キューに並んだ複数の要求を一度に処理することができます (「並列処理」と呼ばれる概念)。その結果、データ・スループットで測定される性能は、QD が高いとき (一度に複数の要求を処理している場合) に最大となります。ただし、後ほど紹介するように、ほとんどの一般的な PC ワークロードでは長いキューが形成されません。これは SSD が要求の受信後すぐに応答するためです。
これらの 3 つの I/O 特性は、本資料の分析の基礎となります。ここで留意すべき重要な点は、ストレージ性能とは関係のない第 4 のベクトルがユーザー体験に大きな影響を与える場合があるという点です。
ボトルネックがシステム内の別の部分で実際に発生している場合 (例えば CPU の過負荷やローカルメモリーのリソース不足など)、ストレージ性能を向上させてもユーザー体験は改善しません。
検証方法 PC を実際に使用している間その内部で何が起こっているかを把握するためには、始めに対象のワークロードとデータの収集・分析方法の 2 つを決定する必要がありました。 ワークロードの選択では、一般的な生産性、ゲーム、コンテンツ作成という 3 つの重要な使用「セグメント」のバランスを考慮して選択しました。
ワークロード・サンプルはすべてを網羅するものではないため、検証結果を実際の PC 用途すべてに一般化することはできません。その代わりに目指したのは、この 3 つのセグメントをそれぞれ利用するユーザーが日常的に行う典型的な作業を代表するようなアクティビティーの調査です。また、リード処理中心の I/O パターンからライト処理中心の I/O パターンまで、小さなファイルと大きなファイルをバランスよく扱い、多様な検証結果が得られるようにしました。
トレース実行の合図 各ワークロードでトレースを実行するための「開始」と「停止」の合図を定義し、検証結果を混乱させるような別のアクティビティがシステム上で同時に実行されないようにしました。 データ収集には、Microsoft Windows の組込み機能を使用。Microsoft の Windows アセスメント & デプロイメント・キット (Windows ADK) には、Windows Performance Recorder (WPR) というツールがあります。このツールは、ワークロードの実行中にリアルタイムで Event Tracing for Windows (ETW) イベントを記録できます。
前述したように、これらの結果から得られるトレース出力ファイルには、文字どおり数千ものデータポイントが含まれます。その中には次のようなものがあります。
処理された各ファイル、およびファイルごとのリード / ライトデータ量
その他多数
トレースの整理
次に分析と視覚化のため、ソリダイムの社内ツールを使用してトレースデータを Excel ブックに整理しました。
実際には、次のようになります。
トレースの準備のため、システムを休止状態 (バックグラウンドでほかのアクティビティが実行されていない状態) にする
トレースを開始する
ワークロードを実行する (例えば、Adobe Acrobat のアイコンをダブルクリックしてプログラムを起動し、[ファイル] メニューから PDF を読み込む)
ワークロードの最後の手順が完了したらトレースを停止する
この手法に対するもっともな指摘として、検証対象のワークロードを事前に選択したことで集計結果に偏りが生じ、「一般論として」典型的な PC の利用状況を説明するにはあまり有用ではないという批判が考えられます。つまり、検証対象の 12 のワークロードのうち、定期的に実行するものが 1 つもないユーザーも多数存在するということです。では、これらの特定のワークロード (より広い PC 用途の傾向に当てはまる可能性も、そうでない可能性もあるケース) で何が起こっているかを深く理解することはどの程度有用なのでしょうか。
結果を読む上での注意
この疑問には 2 つの回答があります。まず、今後も最新情報にご注目ください。ソリダイムは、この調査を継続し、「ユーザーセッション」の特性評価という別のフェーズに移行しようと考えています。つまり、特定ワークロードの実行を指定するのではなく、代表的なユーザーグループが日常的に実行する操作を調査し測定します。ここから何が分かるでしょうか。今後数カ月でこの結果を公表する予定です。
次に 2 つ目の回答です。確かにこの調査の集計結果は、一般に PC の利用状況と正確に一致しているとは言えませんが、本資料で紹介する内容は方向的には間違いなく、そのため議論を始めるきっかけとしては有効であると確信しています。一部の検証結果は極めて明確であり (例えば、12 のワークロードの全 I/O 処理のうち、92% が QD = 1 または 2 で発生)、広範な調査フェーズへの移行を待たずに、その意味を検討する価値があると考えています。
次に各ワークロードについて説明します。
一般的な生産性ワークロード
まず、4 つの生産性ワークロードを紹介し、それぞれで得られた検証結果を説明します。
Acrobat の「起動と読み込み」のワークロードから始めましょう。これはよく使用されるユースケースで、結果は予想できます。ワークロード・サイズの合計は約 300MB で、そのうち 88% がリード、残りがライトです。アクティビティは主にランダムで、転送サイズは 4KB です。
測定された最大 QD は 191 でしたが、幾何平均は 2.1 でした (この傾向は調査したワークロードの多くで見られました。つまり、非常に高い QD が一瞬だけ測定されますが、ほとんどの動作は QD が 1 または 2 でした)。
Adobe Acrobat の起動 + PDF の読み込み
次に紹介する生産性ワークロードも同様の結果でした。このワークロードでは Microsoft Outlook を起動します。これによって、メールのメッセージや関連アイテムを含む Outlook データファイル (PST) の読み込みもトリガーされます。このワークロードもほとんどがランダムリードです。 ここで注目すべきは、ワークロード実行中の I/O 操作の 98% 以上が QD = 1 または 2 で発生した点です。 最初に取り上げるライト中心のワークロードは、PowerPoint から一連のスライドを MP4 ビデオにエクスポートする操作です。これは PowerPoint の組込み機能の 1 つで、この処理には約 90 秒かかりました。
帯域幅のグラフ推移は、この処理と論理的に一致しています。前半はリード処理が多く、新しいビデオファイルが生成されるにつれ、ほとんどがライトになります。
最後の生産性ワークロードは、コロナ禍以降に広く一般的になったユースケースである、オンライン会議への参加です。
このアクティビティーは軽めの I/O トラフィックで形成され、その 99% 以上が低い QD で発生します。ただし、ボトルネックの可能性が最も高いのはネットワークです。ネットワークはほかのどのリソースよりも、このようなオンラインのユーザー体験を左右します。
ゲーマーは、長い読み込み待ち時間をよく経験しています。そのため、このセグメントの徹底的な分析は非常に興味深いと考えました。ここには改善の余地がたくさんあるからです。 ゲームの起動、セーブデータや新しいレベルの読み込みなどは、PC ゲームが登場して以来、常に待ち時間が長引く原因となってきました。このような待ち時間の間、PC の内部では何が起こっているのでしょうか?確認してみましょう。 最初のゲームのワークロードの調査は比較的軽いものでした。デスクトップ PC で League of Legends のゲーム・クライアントのロードのみを行いました。 これはゲームプレイの最初のステップのみであり、プレイヤーにはメニューしか表示されないので、切り離して調べたいと考えました。ワークロード全体に 18 秒、500MB を超えるデータ転送、そのうちの 85% がリード、80% が低い QD で実行されました。
先に紹介した生産性ワークロードとは対照的に、ここでのリード処理は、その性質上、圧倒的にシーケンシャル中心で、最も多く見られた転送サイズは 128KB でした。最新の AAA ゲームが没入環境を作り出すために使用している膨大なアセット (モデル、テクスチャーなど) を考える当然と言えます。
このワークロードでも、ほかのシステムリソース、特にメインメモリや GPU を多く必要とすることが確認されました。
次のワークロードではゲームを起動し、新しい対戦データを読み込みながら、Open Broadcaster Software (OBS) を使ってストリーミングと録画を同時に行います。AAA ゲームのワークロードに広く見られるように、ほとんどのリードがシーケンシャルでした。
また、これはほかのシステムリソースの 1 つ (GPU) の使用率が最大に達したワークロードの例でもあります。つまり、ストレージ性能とは無関係なボトルネックが存在することを示しています。最後に紹介するゲーミングの「ワークロード」は、このセグメントの中で少し異質なものです。特定のアクティビティを定義する代わりに、ボランティアに 15 分間ゲームを自由にプレイしてもらい、キャラクターをオープンワールド環境であちこちに移動させると、どのようにデータが読み込まれるかを検証しました。
検証の結果、ディスクの動作が急増することはありませんでしたが、定常的に小さなリード処理が発生し、検証時間全体で 4GB を超えるデータの転送となりました。これらのリードでは、シーケンシャルとランダムが混在していました。
最後はコンテンツ制作のセグメントを見ていきましょう。これは、ビデオ、写真、音声など、メディア制作に関するさまざまなワークロードを指すカテゴリーです。ゲームと同様、このセグメントにも、プロジェクト次第で大量のデータ転送と長い待ち時間が発生します。
最初に紹介するコンテンツ制作ワークロードは、Adobe Photoshop を起動し、マルチレイヤー PSD (プロジェクト・ファイル) を読み込むという、非常に一般的なアクティビティです。
この 10 秒間のアクティビティーで約 1GB のデータが転送され、そのリード処理のほとんどがランダムでしたが、それでも一部のシーケンシャル・リードが、ディスクからのデータリードの約半分を占めました。これは、処理されたデータのサイズが大きかったためです (ほとんどがそれぞれ 128KB)。
Blender は、さまざまな業界のクリエーターに人気のあるオープンソースのフリー 3D 作成ソフトウェアです。
ここでは、平均 QD は 2.6 まで上昇しましたが、77% の動作が QD = 1 または 2 のままでした。
このケースでは I/O の大半が 4KB リードでしたが、扱うプロジェクト・ファイルによってはシーケンシャル転送の割合が多くなると予想されます。
このアクティビティでは、外付けドライブから Adobe Premiere Pro のプロジェクトに大量の動画ファイルをインポートしました。これは家族写真のスライドショーの作成や、長い動画をまとめて編集するときに想定される作業です。帯域幅のグラフから、ワークロードの前半では大量のファイルがプログラムにリードされ、後半ではリード / ライト同時処理が多数行われたことが伺えます。
最後に紹介するワークロードは、所要時間とデータサイズの両面で圧倒的に最大のものです。Adobe Premiere Pro プロジェクトの大容量ファイルを AVI ビデオにエクスポートし、約 0.5 テラバイトのデータを移動するのに 2 時間以上がかかりました。
ディスク動作の大半は、グラフが示すように最後の 20% で発生しました。 ライト処理が中心ですが (処理全体の 57%)、エクスポートにはかなりの比率でリードもありました。
PC ユーザーが自分のニーズに最適なソリッドステート・ドライブ (SSD) を見つけるのは必ずしも簡単なことではありません。もちろん、価格は最も重要な要素と言えます。使用用途によっては、耐久性やセキュリティー機能などほかのドライブ特性が優先されることもあるでしょう。 そして、パフォーマンスの問題もあります。具体的に言えば、このような質問が数多く挙がってくるはずです。「十分な性能とはどのくらいか?」、「性能はどのように測定するのか?」、「ユーザーが実行するすべてのアクティビティー (この資料では個々のアクティビティーを「ワークロード」と呼びます) について必要なストレージデバイスは同じなのか、それとも検討すべきパフォーマンスの種類は多数あるのか?」などです。 これらの疑問に対する答えを簡単に言うと、「状況によって異なる」、「慎重に行う」、「はい。メーカーがパッケージに記載している速度の数値は通常 1 つですが、パフォーマンスはそれだけでは表せません」となります。そのうえ、その以外の I/O 特性はワークロードに大きく依存することが今回の検証で分かりました。対象としたワークロード全体から、一般にライトよりもリードの割合が高く、シーケンシャルよりもランダム処理の方が多い傾向が見られました。この傾向は、あらゆるユーザーやワークロードにわたって一般的な PC 用途に当てはまるものと考えていますが、この点については、「検証方法」で紹介した今後の調査によって、より明確な見解が得られるはずです。
ワークロードがどの程度シーケンシャルかランダムかは、明らかにワークロードに大きく依存します。ただし、今回の初期段階の結果では、ゲームではシーケンシャル転送が多く、生産性ワークロードは主にランダム処理となるなど、利用セグメントによって異なる傾向が見られました。
今回の検証結果をもとに、実際のエンドユーザー体験の評価や予測における広く利用されている SSD ベンチマークそれぞれの有用性について簡単にまとめました。
1. ATTO Disk Benchmark は、転送サイズ別に (ユーザーが設定可能) SSD のリード / ライト性能に重点を置いた結果画面を表示します。ソリダイムの調査によると、実環境の用途での主要な転送サイズは 4KB、16KB、32KB、128KB でした。
2. Anvil の Storage Utilities は、デフォルトのテストで、さまざまな QD (4 と 16 を含む) での 4KB のランダム転送や、不確定の QD での 32KB、128KB、4MB のシーケンシャル処理に対応します。また、集計したリード / ライトの「スコア」と総合スコアを出力します。
3. AS SSD Benchmark は、インターフェイスがシンプルで分かりやすいものの、デフォルトで実行できるテストの数に制限があります。この UI では、シーケンシャル・テストの転送サイズも、シーケンシャルテストとランダムテストのキュー深度も指定することができません。
4. CrystalDiskMark は、使いやすさと詳細設定のバランスがよく、一般のユーザーにもテック系メディアにも人気があります。現在のバージョン 8 では、QD = 1 および 8 での 1MB シーケンシャル転送と、QD = 1 および 32 での 4KB ランダム転送を含むテストセットがデフォルトで用意されています。このツールにはほかのテストの「プロファイル」も含まれており、リード / ライト混在処理を測定できる便利な機能が提供されます。
5. PCMark 10 には、Full System Drive、Quick System Drive、Data Drive、Drive Performance Consistency Test という 4 つのストレージ・ベンチマークのセットが含まれています。ここまで挙げてきた他のツールとは異なり、PCM10 では、一般的なアプリケーションの利用を実際にトレースすることでスコアを算出します。このツールは、キュー深度や転送サイズの指定ができないなど、変更可能な設定が少ない反面、実際の用途に沿ってベンチマークを取得できるというメリットがあります。その仕組みを詳しく理解するため、PCM10 Quick System Drive Benchmark の実行をトレースしたところ、次のような結果が得られました。
PCMark 10 の実行結果は、ソリダイムが今回実施した 12 のサンプル・ワークロードの集計結果と非常に多くの部分が一致しています。平均 QD は 1.2 (QD = 1 または 2 での動作が 96%) で、ほとんどの処理がランダムリードでした。
このような一致が得られたことから、このテストの結果は実際のアプリケーション上の SSD の性能を評価する上で有用であると考えています。ただし、スコアを算出して出力するほかのテストと同様に、ユーザーはスコアを比較の唯一の基準とする前に、その算出方法を確実に把握する必要があります。
PCMark 10 のストレージ・ベンチマークでは、トレースした I/O パターンを高速化して、演算時間やホストのアイドル時間など、元のワークロード内のほかの要素を排除します。これにより、ストレージシステムにかかる負荷のレベルが上がり、ストレージ性能の向上に対する感度が高くなっています。この点でもこのベンチマークは有用です。ソリダイムが実施した PCMark 10 のトレースでもこの違いは見られ、CPU の平均使用時間は 7%、GPU は 0% でした。
PCMark 10 のワークロードと、ソリダイムが実施したアプリケーションのトレースとで注目すべき違いは、測定された 4KB 転送サイズの割合です。ソリダイムの測定では、ほとんどの場合、4KB の転送が大半でしたが、PCMark 10 の圧倒的多数には及びませんでした。この違いについて推測するには、さらなる検証が必要です。実際の性能に関するソリダイムの次のホワイトペーパーにご期待ください。