このドキュメントでは、Windows 仮想マシン(VM)インスタンスでPersistent Disk のパフォーマンスをベンチマークする方法について説明します。Linux VM の場合は、Linux VM で Persistent Disk のパフォーマンスをベンチマークするをご覧ください。
実行中のインスタンスで使用されているディスクの IOPS とスループットを測定するには、測定用に作られた構成でファイル システムのベンチマークを行います。そうすることにより、既存のディスクの内容を失わずに現実的なワークロードをテストできます。既存のディスクでファイル システムをベンチマークすると、開発環境固有のさまざまな要素がベンチマーク結果に影響を与える可能性があり、その結果、ディスク パフォーマンスの上限に届かないことがある点にご注意ください。
Persistent Disk の純粋なパフォーマンスを測定するには、ブロック デバイスを直接ベンチマークします。この方法を使用して、純粋なディスク パフォーマンスとディスク パフォーマンスの上限を比較します。
ベンチマーク ソフトウェアを構成する
Windows VM で Persistent Disk のパフォーマンスをベンチマークするには、DISKSPD
を使用します。
PowerShell を開き、次のコマンドを使用して
DISKSPD
ツールをダウンロードします。$client = New-Object System.Net.WebClient $client.DownloadFile("https://github.com/Microsoft/diskspd/releases/latest/download/DiskSpd.zip","$env:temp\DiskSpd-download.zip") Expand-Archive -LiteralPath "$env:temp\DiskSpd-download.zip" C:\DISKSPD Get-ChildItem C:\DISKSPD
実行中の VM インスタンスのディスクの IOPS とスループットをベンチマークする
ディスクの内容を失うことなく、実行中の VM インスタンスのアクティブなディスクについて、現実的なワークロードの IOPS とスループットを測定する場合は、既存のファイル システムの新しいディレクトリに対してベンチマークを行います。
以下の手順では、テストするディスクが D:
としてマウントされ、コマンドが昇格したコマンド プロンプト ウィンドウで実行されることを前提としています。
DISKSPD
ソフトウェア構成を確認し、ディレクトリを 64 ビットバイナリに変更します。cd C:\DISKSPD\amd64
ディスクに
DISKTEST.DAT
という名前の 10 GB の新しいファイルを作成します。set TESTFILE=D:\DISKTEST.DAT diskspd -d0 -c10G %TESTFILE%
I/O ブロックサイズを 1 MB、I/O の深さを 64 以上に指定し、複数の並列ストリーム(16 以上)で順次書き込みを行って書き込みスループットをテストします。
diskspd -d60 -b1M -o64 -Sh -w100 -t16 -si %TESTFILE%
I/O ブロックサイズを 4 KB、I/O の深さを 256 以上に指定し、ランダムな書き込みを行って書き込み IOPS をテストします。
diskspd -d60 -b4K -o256 -Sh -w100 -r %TESTFILE%
I/O ブロックサイズを 1 MB、I/O の深さを 64 以上に指定し、複数の並列ストリーム(16 以上)で順次読み取りを実行して読み取りスループットをテストします。
diskspd -d60 -b1M -o64 -Sh -t16 -si %TESTFILE%
I/O ブロックサイズを 4 KB、I/O の深さを 256 以上に指定し、ランダムな読み取りを行って読み取り IOPS をテストします。
diskspd -d60 -b4K -o256 -Sh -r %TESTFILE%
クリーンアップ:
del %TESTFILE%
Persistent Disk の純粋なパフォーマンスをベンチマークする
開発環境以外で Persistent Disk ボリューム単体のパフォーマンスを測定する場合は、使い捨ての Persistent Disk と VM でブロック デバイスの読み取りと書き込みのパフォーマンスをテストします。
ベンチマークする VM インスタンスに Persistent Disk を追加します。
DISKSPD
ソフトウェア構成を確認し、ディレクトリを 64 ビットバイナリに変更します。cd C:\DISKSPD\amd64
ディスクに予約されていないパーティションがないことを確認します。管理者権限でコマンド プロンプト ウィンドウを開き、
diskpart
と入力します。diskpart
VM にアタッチされているディスクの一覧を表示します。
DISKPART> list disk
次の出力例では、新しく作成された 1 TB のディスク(ディスク 1)が表示されています。
Disk ### Status Size Free Dyn Gpt -------- ------------- ------- ------- --- --- Disk 0 Online 120 GB 1024 KB * Disk 1 Online 1024 GB 1023 GB *
ベンチマークするディスクを選択します。
DISKPART> select disk 1
選択したディスク上のパーティションを一覧表示します。
DISKPART> list partition
Partition ### Type Size Offset ------------- ---------------- -------- ------- Partition 1 Reserved 15 MB 17 KB Partition 2 Primary 1024 GB 16 MB
プライマリ パーティション 2 を選択します。
DISKPART> select partition 2
選択したパーティションを削除します。
DISKPART> delete partition
DiskPart を終了する
DISKPART> exit
ベンチマークするディスクに予約パーティション以外のパーティションがある場合は、上記の手順を繰り返します。予約済みパーティションのみが残っている場合は、次の手順に進みます。
ディスクを特定し、パーティションがないことを確認したら、
TESTDRIVE
環境変数を「#」に設定してその後にテストするディスク番号を指定します。C:/> set TESTDRIVE=#1
I/O ブロックサイズを 1 MB、I/O の深さを 64 以上に指定し、複数の並列ストリーム(16 以上)で順次書き込みを行って書き込みスループットをテストします。
diskspd -d60 -b1M -o64 -Sh -t16 -si -w0 %TESTDRIVE%
I/O ブロックサイズを 4 KB、I/O の深さを 256 以上に指定し、ランダムな書き込みを行って書き込み IOPS をテストします。
diskspd -d60 -b4K -o256 -Sh -r -w0 %TESTDRIVE%
書き込みレイテンシをテストします。I/O レイテンシをテストしている間、VM が帯域幅の制限または IOPS の上限に達しないようにします。そうしないと、レイテンシに実際の Persistent Disk の I/O レイテンシが反映されません。
diskspd -d60 -b4K -o4 -Sh -r -w0 -L %TESTDRIVE%
I/O ブロックサイズを 1 MB、I/O の深さを 64 以上に指定し、複数の並列ストリーム(16 以上)で順次読み取りを実行して読み取りスループットをテストします。
diskspd -d60 -b1M -o64 -Sh -t16 -si %TESTDRIVE%
I/O ブロックサイズを 4 KB、I/O の深さを 256 以上に指定し、ランダムな読み取りを行って読み取り IOPS をテストします。
diskspd -d60 -b4K -o256 -Sh -r %TESTDRIVE%
読み取りレイテンシをテストするには、現実的なレイテンシ測定を行うために、ディスクにデータを書き込むことが重要です。このテスト中は、VM が IOPS またはスループットの上限に達しないことが重要です。Persistent Disk が飽和限度に達すると、受信 I/O オペレーションを差し戻し、これが I/O レイテンシの「見せかけ」の増加として反映されます。
diskspd -d60 -b4K -o4 -Sh -r -L %TESTDRIVE%
順次読み取り帯域幅をテストします。
diskspd -d60 -b1M -o64 -Sh -t4 -si %TESTDRIVE%
順次書き込み帯域幅をテストします。
diskspd -d60 -b1M -o64 -Sh -t4 -si -w100 %TESTDRIVE%
使い捨ての Persistent Disk と VM をクリーンアップします。
次のステップ
- Persistent Disk のパフォーマンス指標を確認して、ディスク パフォーマンスをモニタリングする方法を学習する。
- Persistent Disk の料金を確認する。
- Persistent Disk のパフォーマンスの最適化を行う方法を学習する。