1.はじめに
近年では、生成 AI・機械学習・高性能計算といった高度なワークロードが急速に拡大し、GPUを搭載した仮想マシンの需要が大きく伸びています。
しかし、Azure Monitorの標準メトリックにはGPU使用率やGPUメモリ利用量といった項目が存在せず、標準設定ではGPUメトリックを可視化できません。
実際にお客様からも、「Azure Portal 上で GPUの状態を一覧で確認できないか」「GPU がボトルネックになっているか判断したい」といったお問い合わせが増えており、GPUリソースの可視化に対するニーズは高まっています。
そこで本記事では、Azure Portal 上で GPU メトリックを可視化するための方法について、分かりやすく紹介します。日々の運用でGPUリソースの状況把握に課題を感じている方は、本記事の手順を参考に実際に試してみてください。
2.Azure VMにおけるGPUメトリックの取得方法
GPUを搭載したAzure仮想マシンの監視方法として、Microsoft社技術ブログでは Telegraf を用いてGPUメトリックを収集する方法が紹介されてきました。しかし、TelegrafはMicrosoft社製ツールでないため、Azure上で動作させることは可能ですが、Microsoft社の正式なサポート対象には含まれません。そのため、障害発生時の切り分けや長期運用を考えると、サポート面で不安を抱えるケースも少なくありません。
一方で、本記事で紹介するデータ収集ルールを用いてLog AnalyticsワークスペースへGPUメトリックを送信する方法は、Microsoft社が提供する仕組みに基づいており、Microsoft社のサポート範囲内で運用できる構成となっています。
上記を踏まえて今回は、データ収集ルールを用いて平均GPU使用率と平均GPUメモリ使用率を取得する方法をご案内いたします。
3.前提条件
本記事の手順は、以下の条件を満たす環境を前提としています。
- Azure上にGPUを搭載したWindows仮想マシンが存在していること(例:NC / ND / NV シリーズ)
- 仮想マシンにGPUドライバー(NVIDIA ドライバーなど)が正しくインストールされていること
- 対象VMにAzure Monitor Agent (AMA)がインストールされていること(データ収集ルール作成時に自動インストールされます)
- Log Analyticsワークスペースが作成済みであること
- 作業ユーザーにAzure Portalからデータ収集ルール(DCR)を作成できる権限が割り当てられていること(例:Monitoring Contributor 以上の権限)
※ 本記事ではAzure Portal上での操作を前提としており、ARM / Bicep / Terraform による構成管理は扱いません。
4.GPUメトリックの取得のための設定
GPUメトリックの取得には大きく分けて以下の2つの作業が必要になります。
①GPUメトリックを含むデータ収集ルールを作成する。
データ収集ルールの作成手順
1.Azure Portal上にて「データ収集ルール」を検索し押下してください。
2.データ収集ルールにて画面左上の「作成」を押下してください。
3.「基本」項目にて、ルール名やリソースグループなどの各パラメーターを入力して下さい。
4.「リソース」項目のリソースの追加より、データを収集する対象VMを追加してください。
※データ収集ルールの作成にあたりAzure Monitor Agentをインストールするため、対象のVMが起動している必要があります。

5.「収集と配信」項目のデータソースの追加より、データソースを押下してください。
6.「データソースの種類」にてパフォーマンスカウンターを選択し、カスタム項目にて以下のパフォーマンスカウンターを追加してください。
※サンプルレートや他パフォーマンスカウンターの要否につきましては、別途ご検討ください。
\NVIDIA GPU(*)\% GPU Usage
\NVIDIA GPU(*)\% GPU Memory Usage
7.「ターゲット」項目よりターゲットの追加を押下してください。
8.選択項目が表示されるため、各項目について以下を選択ください。
ターゲットの種類:Azure Monitor Logs
サブスクリプション:対象のサブスクリプション
宛先の詳細:ログの送信先とするLog Analytics ワークスペース
9.「データソース」「ターゲット」の入力完了後、タブ左下のデータソースの追加を押下してください。
10.「確認と作成」よりデータ収集ルールをデプロイしてください。

上記設定にて、項番4で設定したVMよりGPU使用率/GPUメモリ使用率のログが項番8にて宛先として設定したLog Analytics ワークスペースへ送信されます。
なおデータ収集ルールについては、作成後反映まで1時間ほど時間を要する点にご注意ください。
➁Logアナリティクスワークスペースにて、GPUメトリックを取得するためのクエリを実行する。
1.Azure Portal上にて「Log Analytics ワークスペース」を検索し押下してください。
2.表示されたLog Analytics ワークスペースより①-8にてログの宛先にしたLog Analyticsワークスペースを選択してください。
3.Log Analyticsワークスペースのログよりクエリを実行し、データ収集ルールに格納されたデータを表示させます。
[平均GPU使用率]

[平均GPUメモリ使用率]

なおデモ環境では平均GPU使用率と平均GPUメモリ使用率の取得に以下のクエリを使用しました。
5.まとめ
本記事では、Windows仮想マシンにおける GPUメトリック取得方法として、Azure Monitor の データ収集ルールを活用し、Log Analyticsワークスペースへ GPU使用率・GPUメモリ使用率を送信する標準的かつサポート対象の構成をご紹介しました。
GPUを活用したワークロードは今後も拡大が見込まれ、適切な監視と可視化はシステムの安定運用やコスト最適化において欠かせない要素となります。今回の手順がGPUメトリックの取得と可観測性の向上の一助になれば幸いです。
Azure MonitorやLog Analyticsの設計、DCRルール作成などについてお困りの点があれば、ぜひ弊社までお気軽にご相談ください。
この記事を書いた人

- Azure支援デスク 管理者
- 双日テックイノベーション(旧:日商エレクトロニクス)特設サイト「Azure導入支援デスク」サイトマスターです。
