ディスク パフォーマンス メトリック
適用対象: ✔️ Linux VM ✔️ Windows VM ✔️ フレキシブル スケール セット ✔️ 均一スケール セット
Azure では、仮想マシン (VM) とディスクの動作についての分析情報を提供するメトリックが Azure portal で提供されています。 メトリックは、API 呼び出しを使用して取得することもできます。 この記事は、次の 3 つのサブセクションに分割されています。
- ディスク IO、スループット、キューの深さ、待機時間のメトリック - これらのメトリックを使用すると、ディスクと仮想マシンの観点からストレージのパフォーマンスを確認できます。
- ディスク バーストのメトリック - これらのメトリックにより、Premium ディスクのバースト機能を監視することが可能になります。
- ストレージ IO 使用率のメトリック - これらのメトリックは、ディスクを使用するストレージのパフォーマンスのボトルネックを診断するのに役立ちます。
すべてのメトリックは、1 分ごとに出力されます。ただし、バースト クレジット パーセンテージのメトリックは 5 分ごとに出力されます。
ディスク IO、スループット、キューの深さ、待機時間のメトリック
次のメトリックを使用して、VM、ディスク IO、スループット、キューの深さのパフォーマンスに関する分析情報を取得できます。
- OS ディスクの待機時間 (プレビュー): OS ディスクの監視中に IO を完了するまでの平均時間。 メトリックは、SCSI ディスク コントローラーを使用して VM に接続されたディスクでのみ使用でき、NVMe ディスク コントローラーを使用して VM に接続されたディスクでは使用できません。 結果はミリ秒単位で示されます。
- OS ディスクのキューの深さ: OS ディスクに対する読み取りまたは書き込みのために待機している現在の未処理 IO 要求の数。
- OS ディスク読み取りバイト数/秒: OS ディスクから 1 秒間に読み取られるバイトの数。 読み取り専用または読み取り/書き込み ディスク キャッシュ が有効になっている場合、このメトリックにはキャッシュから読み取られたバイトが含まれます。
- OS ディスク読み取り操作数/秒: OS ディスクから 1 秒間に読み取られる入力操作の数。 読み取り専用または読み取り/書き込み ディスク キャッシュ が有効になっている場合、このメトリックにはキャッシュから読み取られた IOP が含まれます。
- OS ディスク書き込みバイト数/秒: OS ディスクから 1 秒間に書き込まれるバイトの数。
- OS ディスク書き込み操作数/秒: OS ディスクから 1 秒間に書き込まれる出力操作の数。
- データ ディスクの待機時間 (プレビュー): データ ディスクの監視中に IO を完了するための平均時間。 メトリックは、SCSI ディスク コントローラーを使用して VM に接続されたディスクでのみ使用でき、NVMe ディスク コントローラーを使用して VM に接続されたディスクでは使用できません。 結果はミリ秒単位で示されます。
- データ ディスクのキューの深さ: データ ディスクに対する読み取りまたは書き込みのために待機している現在の未処理 IO 要求の数。
- データ ディスク読み取りバイト数/秒: データ ディスクから 1 秒間に読み取られるバイトの数。 読み取り専用または読み取り/書き込み ディスク キャッシュ が有効になっている場合、このメトリックにはキャッシュから読み取られたバイトが含まれます。
- データ ディスク読み取り操作数/秒: データ ディスクから 1 秒間に読み取られる入力操作の数。 読み取り専用または読み取り/書き込み ディスク キャッシュ が有効になっている場合、このメトリックにはキャッシュから読み取られた IOP が含まれます。
- データ ディスク書き込みバイト数/秒: データ ディスクから 1 秒間に書き込まれるバイトの数。
- データ ディスク書き込み操作数/秒: データ ディスクから 1 秒間に書き込まれる入力操作の数。
- ディスク読み取りバイト – VM にアタッチされているすべてのディスクから 1 分間に読み取られるバイトの合計数。 読み取り専用または読み取り/書き込み ディスク キャッシュ が有効になっている場合、このメトリックにはキャッシュから読み取られたバイトが含まれます。
- ディスク読み取り操作数/秒: VM にアタッチされているすべてのディスクから 1 秒間に読み取られる入力操作の数。 読み取り専用または読み取り/書き込み ディスク キャッシュ が有効になっている場合、このメトリックにはキャッシュから読み取られた IOP が含まれます。
- ディスク書き込みバイト – VM にアタッチされているすべてのディスクから 1 分間に書き込まれるバイトの数。
- ディスク書き込み操作数/秒: VM にアタッチされているすべてのディスクから 1 秒間に書き込まれる出力操作の数。
- 一時ディスクの待機時間 (プレビュー): 一時ディスクの監視中に IO を完了するための平均時間。 このメトリックは、NVMe 一時ストレージ ディスクでは使用できません。 結果はミリ秒単位で示されます。
- 一時ディスクのキューの深さ: 一時ディスクに対する読み取りまたは書き込みのために待機している現在の未処理 IO 要求の数。 このメトリックは、NVMe 一時ストレージ ディスクでは使用できません。
- 一時ディスク読み取りバイト数/秒: 一時ディスクから 1 秒間に読み取られるバイトの数。 このメトリックは、NVMe 一時ストレージ ディスクでは使用できません。
- 一時ディスク読み取り操作数/秒: 一時ディスクから 1 秒間に読み取られる入力操作の数。 このメトリックは、NVMe 一時ストレージ ディスクでは使用できません。
- 一時ディスク書き込みバイト数/秒: 一時ディスクから 1 秒間に書き込まれるバイトの数。 このメトリックは、NVMe 一時ストレージ ディスクでは使用できません。
- 一時ディスク書き込み操作数/秒: 一時ディスクから 1 秒間に書き込まれる出力操作の数。 このメトリックは、NVMe 一時ストレージ ディスクでは使用できません。
Note
ディスク メトリックは、マネージド ディスク内の CRUD (作成、読み取り、更新、削除) 操作をログできません。
バースト メトリック
次のメトリックは、Premium ディスクのバースト機能を監視するのに役立ちます。
- データディスクの最大バースト帯域幅: データ ディスクがバーストできるスループットの上限。
- OS ディスクの最大バースト帯域幅: OS ディスクがバーストできるスループットの上限。
- データ ディスクの最大バースト IOPS: データ ディスクがバーストできる IOPS の上限。
- OS ディスクの最大バースト IOPS: OS ディスクがバーストできる IOPS の上限。
- データ ディスクのターゲット帯域幅: データ ディスクがバーストなしで実現できるスループットの上限。
- OS ディスクのターゲット帯域幅: OS ディスクがバーストなしで実現できるスループットの上限。
- データ ディスクのターゲット IOPS: データ ディスクがバーストなしで実現できる IOPS の上限。
- OS ディスクのターゲット IOPS: OS ディスクがバーストなしで実現できる IOPS の上限。
- データ ディスクの使用済みバースト BPS クレジットの割合: データ ディスクで使用されたスループット バーストの累積割合。 5 分間隔で出力されます。
- OS ディスクの使用済みバースト BPS クレジットの割合: OS ディスクで使用されたスループット バーストの累積割合。 5 分間隔で出力されます。
- データ ディスクの使用済みバースト IO クレジットの割合: データ ディスクで使用された IOPS バーストの累積割合。 5 分間隔で出力されます。
- OS ディスクの使用済みバースト IO クレジットの割合: OS ディスクで使用された IOPS バーストの累積割合。 5 分間隔で出力されます。
- ディスク オンデマンド バースト操作: オンデマンド バーストが有効になっているディスクに使用されるバースト トランザクションの累積操作数。 1 時間間隔で出力されます。
VM バースト メトリック
次のメトリックでは、VM レベルのバーストに関する分析情報が提供されます。
- VM のキャッシュされていない使用済みバースト IO クレジットの割合: VM のキャッシュされていない使用済み IOPS バーストの累積割合。 5 分間隔で出力されます。
- VM のキャッシュされていない使用済みバースト BPS クレジットの割合: VM のキャッシュされていない使用済みスループット バーストの累積割合。 5 分間隔で出力されます。
- VM のキャッシュされた使用済みバースト IO クレジットの割合: VM のキャッシュされた使用済み IOPS バーストの累積割合。 5 分間隔で出力されます。
- VM のキャッシュされた使用済みバースト BPS クレジットの割合: VM のキャッシュされた使用済みスループット バーストの累積割合。 5 分間隔で出力されます。
ストレージ IO 使用率メトリック
次のメトリックは、お使いの仮想マシンとディスクの組み合わせのボトルネックを診断するのに役立ちます。 これらのメトリックは、Premium ストレージをサポートする VM シリーズ上でのみ使用できます。
ディスク IO の上限の診断に役立つメトリック:
- データ ディスク IOPS の消費率: 実際に使われたデータ ディスク IOPS をプロビジョニングされたデータ ディスク IOPS で除算することにより計算される割合。 この量が 100% の場合、実行しているアプリケーションで、データ ディスクの IOPS 制限により IO が制限されます。
- データ ディスク帯域幅の消費率: 実際に使われたデータ ディスク スループットをプロビジョニングされたデータ ディスク スループットで除算することにより計算される割合。 この量が 100% の場合、実行しているアプリケーションで、データ ディスクの帯域幅制限により IO が制限されます。
- OS ディスク IOPS の消費率: 実際に使われた OS ディスク IOPS を、プロビジョニングされた OS ディスク IOPS で除算することにより計算される割合。 この量が 100% の場合、実行しているアプリケーションで、OS ディスクの IOPS 制限からの IO 上限が発生します。
- OS ディスク帯域幅の消費率: 実際に使われた OS ディスク スループットを、プロビジョニングされた OS ディスク スループットで除算することにより計算される割合。 この量が 100% の場合、実行しているアプリケーションで、OS ディスクの帯域幅制限からの IO 上限が発生します。
VM の IO 上限の診断に役立つメトリック:
- VM のキャッシュされた IOPS の消費率: 実際にキャッシュされた合計 IOPS を、仮想マシンのキャッシュされる IOPS の上限で除算することにより計算される割合。 この量が 100% の場合、実行しているアプリケーションで、VM のキャッシュ使用時の IOPS 制限により IO が制限されます。
- VM のキャッシュされた帯域幅の消費率: 実際にキャッシュされた合計スループットを、仮想マシンのキャッシュされる最大スループットで除算することにより計算される割合。 この量が 100% である場合、実行しているアプリケーションで、VM のキャッシュ使用時の帯域幅制限により IO が制限されます。
- VM のキャッシュされていない IOPS の消費率: 仮想マシンで実際にキャッシュされていない合計 IOPS を、仮想マシンのキャッシュされない IOPS の上限で除算することにより計算される割合。 この量が 100% である場合、実行しているアプリケーションで、VM のキャッシュ非使用時の IOPS 制限により IO が制限されます。
- VM のキャッシュされていない帯域幅の消費率: 仮想マシンで実際にキャッシュされていない合計スループットを、仮想マシンのプロビジョニングされた最大スループットで除算することにより計算される割合。 この量が 100% である場合、実行しているアプリケーションで、VM のキャッシュなし帯域幅制限からの IO 上限が発生します。
ストレージ IO メトリックの例
これらの新しいストレージ IO 使用率メトリックを使用して、システム内でボトルネックが発生している箇所をデバッグする方法の例を見てみましょう。 システムのセットアップは前の例と同じですが、今度はアタッチされている OS ディスクがキャッシュ "されない" 点が異なります。
セットアップ:
- Standard_D8s_v3
- キャッシュされる IOPS:16,000
- キャッシュされない IOPS:12,800
- P30 OS ディスク
- IOPS:5,000
- ホスト キャッシュ: 無効
- 2 台の P30 データ ディスク x 2
- IOPS:5,000
- ホスト キャッシュ: 読み取り/書き込み
- 2 台の P30 データ ディスク x 2
- IOPS:5,000
- ホスト キャッシュ: 無効
この仮想マシンとディスクの組み合わせで、IO アクティビティを作成するベンチマーク テストを実行してみましょう。 Azure でストレージ IO のベンチマークを行う方法については、「Azure Disk Storage 上のアプリケーションのベンチマーク」を参照してください。 ベンチマーク ツールから、この VM とディスクの組み合わせで 22,800 IOPS を達成できることがわかります。
Standard_D8s_v3 は、合計 28,600 IOPS を達成できます。 メトリックを使用して、何が起こっているのかを調べ、ストレージ IO のボトルネックを特定しましょう。 左側のペインで、 [メトリック] を選択します。
最初に [VM Cached IOPS Consumed Percentage](VM のキャッシュされた IOPS の消費率) メトリックを見てみましょう。
このメトリックは、VM 上のキャッシュされた IOPS に割り当てられている 16,000 IOPS のうち 61% が使用されていることを示しています。 この割合は、100% でないことから、ストレージ IO のボトルネックは、キャッシュされているディスクではないことを意味します。 では、 [VM のキャッシュされていない IOPS の消費率] メトリックを見てみましょう。
このメトリックは 100% です。 これは、VM 上のキャッシュされていない IOPS に割り当てられた 12,800 IOPS のすべてが使用されていることを示しています。 この問題を解決する方法の 1 つには、追加の IO を処理できるより大きなサイズに VM のサイズを変更する方法があります。 ただし、その前に、アタッチされているディスクを調べて、表示されている IOPS の数を確認しましょう。 [OS Disk IOPS Consumed Percentage](OS ディスク IOPS の消費率) を見て、OS ディスクを確認します。
このメトリックは、この P30 OS ディスクにプロビジョニングされた 5,000 IOPS のうち約 90% が使用されていることを示しています。 この割合は、OS ディスクにボトルネックが存在しないことを意味します。 次に、VM にアタッチされているデータ ディスクを [Data Disk IOPS Consumed Percentage](データ ディスク IOPS の消費率) で確認してみましょう。
このメトリックは、アタッチされているすべてのディスクで使用される平均 IOPS が約 42% であることを示しています。 この割合は、ディスクによって使用され、ホスト キャッシュで処理されない IOPS に基づいて計算されています。 これらのメトリックに分割を適用して LUN 値で分割して、このメトリックについて細かく確認してみましょう。
このメトリックは、LUN 3 と 2 にアタッチされているデータ ディスクで、プロビジョニングされた IOPS の約 85% が使用されていることを示します。 VM およびディスクのアーキテクチャの観点から見た IO の図を次に示します。