ディスク パフォーマンス メトリック
適用対象: ✔️ Linux VM ✔️ Windows VM ✔️ フレキシブル スケール セット ✔️ 均一スケール セット
Azure では、仮想マシン (VM) とディスクの動作についての分析情報を提供するメトリックが Azure portal で提供されています。 メトリックは、API 呼び出しを使用して取得することもできます。 この記事は、次の 3 つのサブセクションに分割されています。
- ディスク IO、スループット、キューの深さのメトリック - これらのメトリックを使用すると、ディスクと仮想マシンの観点からストレージのパフォーマンスを確認できます。
- ディスク バーストのメトリック - これらのメトリックにより、Premium ディスクのバースト機能を監視することが可能になります。
- ストレージ IO 使用率のメトリック - これらのメトリックは、ディスクを使用するストレージのパフォーマンスのボトルネックを診断するのに役立ちます。
すべてのメトリックは、1 分ごとに出力されます。ただし、バースト クレジット パーセンテージのメトリックは 5 分ごとに出力されます。
ディスク IO、スループット、キューの深さのメトリック
次のメトリックを使用して、VM、ディスク IO、スループット、キューの深さのパフォーマンスに関する分析情報を取得できます。
- OS ディスクのキューの深さ: OS ディスクに対する読み取りまたは書き込みのために待機している現在の未処理 IO 要求の数。
- OS ディスク読み取りバイト数/秒: OS ディスクから 1 秒間に読み取られるバイトの数。
- OS ディスク読み取り操作数/秒: OS ディスクから 1 秒間に読み取られる入力操作の数。
- OS ディスク書き込みバイト数/秒: OS ディスクから 1 秒間に書き込まれるバイトの数。
- OS ディスク書き込み操作数/秒: OS ディスクから 1 秒間に書き込まれる出力操作の数。
- データ ディスクのキューの深さ: データ ディスクに対する読み取りまたは書き込みのために待機している現在の未処理 IO 要求の数。
- データ ディスク読み取りバイト数/秒: データ ディスクから 1 秒間に読み取られるバイトの数。
- データ ディスク読み取り操作数/秒: データ ディスクから 1 秒間に読み取られる入力操作の数。
- データ ディスク書き込みバイト数/秒: データ ディスクから 1 秒間に書き込まれるバイトの数。
- データ ディスク書き込み操作数/秒: データ ディスクから 1 秒間に書き込まれる入力操作の数。
- ディスク読み取りバイト数/秒: VM にアタッチされているすべてのディスクから 1 秒間に読み取られるバイトの合計数。
- ディスク読み取り操作数/秒: VM にアタッチされているすべてのディスクから 1 秒間に読み取られる入力操作の数。
- ディスク書き込みバイト数/秒: VM にアタッチされているすべてのディスクから 1 秒間に書き込まれるバイトの数。
- ディスク書き込み操作数/秒: VM にアタッチされているすべてのディスクから 1 秒間に書き込まれる出力操作の数。
バースト メトリック
次のメトリックは、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 分間隔で出力されます。
VM バースト メトリック
次のメトリックでは、VM レベルのバーストに関する分析情報が提供されます。
- VM のキャッシュされていない使用済みバースト IO クレジットの割合: VM のキャッシュされていない使用済み IOPS バーストの累積割合。 5 分間隔で出力されます。
- VM のキャッシュされていない使用済みバースト BPS クレジットの割合: VM のキャッシュされていない使用済みスループット バーストの累積割合。 5 分間隔で出力されます。
- VM のキャッシュされた使用済みバースト IO クレジットの割合: VM のキャッシュされた使用済み IOPS バーストの累積割合。 5 分間隔で出力されます。
- VM のキャッシュされた使用済みバースト BPS クレジットの割合: VM のキャッシュされた使用済み IOPS バーストの累積割合。 5 分間隔で出力されます。
ストレージ IO 使用率メトリック
次のメトリックは、お使いの仮想マシンとディスクの組み合わせのボトルネックを診断するのに役立ちます。 これらのメトリックは、次の構成でのみ使用できます。
- Premium ストレージをサポートする VM シリーズ上でのみ使用できます。
- Ultra ディスクには使用できません。これらの 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 の図を次に示します。