あなたのハードドライブの中で最も速いのはどれですか?また、それは本当にメーカーが約束した通りの速さですか?デスクトップ PC を使用している場合でも、サーバーを使用している場合でも、Microsoft の無料の Diskspd ユーティリティはハード ドライブのストレス テストとベンチマークを実行します。
注: このガイドの以前のバージョンでは、Microsoft の古い「SQLIO」ユーティリティを使用して説明していました。ただし、Microsoft は現在、SQLIO に代わる「Diskspd」ユーティリティのみを提供しているため、このガイドを新しい手順で更新しました。
Diskspd を使用する理由
ドライブの IO 能力を知りたい場合、Diskspd は優れたツールです。 Diskspd は、サーバーのハード ドライブが処理できる最大容量を示したり、デスクトップ PC で重いワークロード (または要求の厳しい PC ゲーム) に使用する必要がある最速のハード ドライブを示します。
例として、サーバー上に F ドライブ、G ドライブ、C ドライブの 3 つのドライブがあるとします。 F ドライブに MDF、G ドライブに LDF、C ドライブに OS がある場合、セットアップが効果的かどうかを評価できます。たとえば、MDF ファイルが最も多くの読み取りと書き込みが行われ、最もビジーなファイルである場合、それを最も高速なドライブに配置する必要があります。
上の例をグラフ (OS、LDF、MDF の書き込みと読み取りを表す) とともに使用すると、MDF が最もビジーであるため、MDF ファイルを最速のドライブに配置します。 Diskspd 分析により F が最速のドライブであることが示された場合は、MDF ファイルをドライブ F に配置します。
Diskspd をダウンロードする場所
Microsoft はこの優れたツールを無料で提供しており、 Microsoft Technet からダウンロード できます。オープンソースでもあるため、 GitHub からソース コードを ダウンロードして検査または変更することができます。
Diskspd は、デスクトップ バージョンの Windows 7、8、8.1、10、および Windows Server 2012、2012 R2、および 2016 Technical Preview 5 で動作することがテストされています。
ダウンロードしたら、.zip ファイルの内容をコンピューター上のフォルダーに抽出する必要があります。アーカイブには 3 つの異なる「diskspd.exe」ファイルが含まれていることに注意してください。 「amd64fre」フォルダーにあるものは 64 ビット Windows PC 用であり、「x86fre」フォルダーにあるものは 32 ビット Windows PC 用です。 64 ビット バージョンの Windows を使用している場合は、おそらく 64 ビット バージョンを使用することになるでしょう。
ストレステストはどのように実行すればよいですか?
単一のテストを実行するには、管理者が有効なコマンド プロンプトから Diskspd コマンドを呼び出すだけです。 Windows 10または8.1の場合は、スタートボタンを右クリックし、「コマンドプロンプト(管理者)」を選択します。 Windows 7 では、スタート メニューで「コマンド プロンプト」ショートカットを見つけて右クリックし、「管理者として実行」を選択します。
まず、使用します
cd
使用する Diskspd.exe を含むディレクトリに切り替えます。
cd c:\path\to\diskspd\amd64fre
私たちの場合、それは以下のコマンドのようになりました。
次に、使用するオプションを指定して Diskspd コマンドを実行します。コマンド ライン オプションと使用方法の情報の完全なリストは、ダウンロードした Diskspd アーカイブに含まれる 30 ページの DiskSpd_Documentation.pdf ファイルに記載されています。
ただし、すぐに起動して実行したい場合は、コマンドの例を次に示します。次のコマンドは、ブロック サイズを 16K (-b16K) に設定し、30 秒のテストを実行し (-d30)、ハードウェアとソフトウェアのキャッシュを無効にし (-Sh)、遅延統計を測定し (-L)、スレッドごとに 2 つの IO リクエストを使用します (- o2) とターゲットごとに 4 つのスレッド (-t4)、シーケンシャル書き込み (-r) ではなくランダム アクセスを使用し、30% の書き込み操作と 70% の読み取り操作 (-w30) を実行します。
c:\testfile.dat にサイズ 50 MB (-c50M) のファイルが作成されます。たとえば、代わりに D: ドライブのベンチマークを実行したい場合は、d:\testfile.dat を指定します。
Diskspd.exe -b16K -d90 -Sh -L -o2 -t4 -r -w30 -c50M c:\testfile.dat
指定した時間が経過すると (上記のテストでは 30 秒)、テスト結果がコマンド プロンプトに出力され、表示できるようになります。
結果を参照すると、テスト中にドライブが到達した平均 MB/秒、つまり 1 秒間に実行された書き込み操作の数、1 秒間に実行された読み取り操作の数、および入出力 (IO) の合計量がわかります。 1秒あたりの操作数。これらの統計は、複数のドライブを比較して特定の操作でどちらが速いかを確認するときに最も役立ちますが、ハード ドライブが処理できる IO の量も正確に知ることができます。
また、結果をテキスト ファイルにダンプし、> 演算子を使用して後で表示することもできます。たとえば、次のコマンドは上記と同じコマンドを実行し、結果を C:\testresults.txt ファイルに配置します。
Diskspd.exe -b16K -d90 -Sh -L -o2 -t4 -r -w30 -c50M c:\testfile.dat > c:\testresults.txt
他のドライブに対してこのプロセスを繰り返し、比較します。
ストレス テスト コマンドのカスタマイズ
特定のワークロードに対してどのハード ドライブが最速であるかを判断しようとしている場合は、そのワークロードに最適なコマンドを作成する必要があります。たとえば、データの読み取りのみで書き込みを行わないサーバーの場合は、書き込みパフォーマンスを測定しない 100% 読み取りのテストを実行する必要があります。複数のドライブにわたってストレス テストを実行し、結果を比較して、その種類の作業でどちらが高速であるかを確認します。
Diskspd.exe に指定できるコマンド ライン オプションは他にも多数あることに注意してください。最も完全な最新のリストは、ダウンロードした Diskspd.exe ファイル自体に付属のドキュメントに記載されていますが、重要なオプションがいくつかあります。
- -w は、 書き込み操作と読み取り操作の割合を示します。たとえば、-w40 と入力すると、40% の書き込み操作が実行され、60% の読み取り操作が実行されます。 -w100 を入力すると、100% の書き込み操作が実行されます。 -w スイッチを省略するか、-w0 を入力すると、0% の書き込み操作が実行されるため、100% の読み取り操作が実行されます。
- -r または -s は 、テストでランダム アクセスと順次操作のどちらを使用するかを決定します。ランダムアクセスの場合は -r を指定し、シーケンシャルアクセスの場合は -s を指定します。これは、ランダム ファイル アクセス (多くの場合、小さなファイルの束) またはシーケンシャル ファイル アクセス (多くの場合、一度に読み書きされる 1 つの大きなファイル) のいずれかをテストするのに役立ちます。
- -t は 、同時に実行されるスレッドの数を示します。たとえば、2 つのスレッドの場合は -t2、6 つのスレッドの場合は -t6 です。
- -o は 、スレッドごとの未処理のリクエストの数を示します。たとえば、4 つのリクエストの場合は -o4 、2 つの結果の場合は -o2 です。
- -d は 、テストの継続時間を秒単位で表します。たとえば、-d90 は 90 秒、-d120 は 120 秒です。
- -b は読み取りまたは書き込みのブロック サイズです。たとえば、16K ブロック サイズの場合は -b16K、64K ブロック サイズの場合は -b64K です。
これらのオプションを使用すると、ベンチマーク コマンドを微調整して、さまざまな負荷の下でディスクがどのように動作するかを確認できます。 PC 上で実行するワークロードの種類に近いと思われるコマンドを作成したら、複数のドライブのストレス テストを行って、どれが最高のパフォーマンスを提供するかを確認できます。





