ステータス:ドラフト(2026-10-05、2026-10-09更新)、実測値を反映。 指標のリスト、値、ラベル、ログは、検証環境のdcgm-exporterから読み取り専用で取得したものです。指標の意味の補足説明はNVIDIA DCGMおよびdcgm-exporterのドキュメントに基づおり、この記事の執筆時点ではドキュメントを再び開いて突合はしていません(未確認)。PromQLの例は実行していません(未実行)。 作成ルール:実測データを基本とし、計測できなかったものは「未実測」と表記します。
目次
- 1. 構造と検証環境の構成
- 2. 実際に取得できた18個の指標
- 3. ラベル
- 4. ラベルから見えてくる違いと観察
- 5. 取得できない指標とその理由
- 6. クエリの例(未実行)
- 7. 面接で出そうな質問
- 8. よくある誤解
- 外部の根拠:公式ドキュメントとソースで確認した内容
- 確認できなかったこと
- 参考資料
- 確認したバージョンと日付
1. 構造と検証環境の構成
DCGM(Data Center GPU Manager)はNVIDIAのGPU管理・モニタリングライブラリであり、dcgm-exporterはDCGMが読み取った値をPrometheus形式でエクスポートするプログラムです。データの流れは「GPUドライバー(NVML)→ DCGM → dcgm-exporter(HTTP 9400)→ Prometheus」となります。
検証環境の構成は以下の通りです。
| 項目 | 値 |
|---|---|
| イメージ | nvcr.io/nvidia/k8s/dcgm-exporter:4.5.3-4.8.2-distroless |
| デプロイ方式 | GPU OperatorのDaemonSet |
| サービス | nvidia-dcgm-exporter ClusterIP、ポート 9400 |
| 収集リスト | 環境変数 DCGM_EXPORTER_COLLECTORS=/etc/dcgm-exporter/dcp-metrics-included.csv |
| Kubernetes連携 | DCGM_EXPORTER_KUBERNETES=true |
2. 実際に取得できた18個の指標
8GBクラスのノートPC用GPU1枚の出力54行の中に18個の指標が含まれており、同世代の別のノートPC用GPUでも同じ18個でした。以下の表の値は、このGPUがアイドル状態のときのサンプル値です。意味は指標のHELP文言およびDCGMのドキュメントに基づいています。
2.1 クロック、温度、電力
| 指標 | 種類 | 単位 | 意味 | サンプル値 |
|---|---|---|---|---|
DCGM_FI_DEV_SM_CLOCK |
gauge | MHz | SM(演算ユニット)クロック | 210 |
DCGM_FI_DEV_MEM_CLOCK |
gauge | MHz | メモリクロック | 8001 |
DCGM_FI_DEV_GPU_TEMP |
gauge | ℃ | GPU温度 | 40 |
DCGM_FI_DEV_MEMORY_TEMP |
gauge | ℃ | メモリ温度 | 0 |
DCGM_FI_DEV_POWER_USAGE |
gauge | W | 瞬間電力 | 1.22 |
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION |
counter | mJ | 起動後の累積エネルギー | 8,447,476,600 |
- メモリ温度は観察したすべてのGPUで0です。 指標が「0℃」を意味しているのではなく、これらのGPUが値を返していないように見えますが、原因は確認できていません。アラート条件を作成する際、0を正常値として扱ってはいけません。
- 累積エネルギーはカウンターです。 値をそのまま見るのではなく、増加分として見る必要があります。mJ単位であるため、
rate()を1000で割ると平均ワット数になります。例えば上記の例の累積8,447,476,600mJは約2.3kWhです(起動後)。 - アイドル時のクロックは低いです。 観察したすべてのGPUで、アイドル時のSMクロックは210MHzでした。
2.2 使用率
| 指標 | 種類 | 単位 | 意味 | サンプル値 |
|---|---|---|---|---|
DCGM_FI_DEV_GPU_UTIL |
gauge | % | サンプル期間中にカーネルが1つでも実行されていた時間の割合 | 0 |
DCGM_FI_DEV_MEM_COPY_UTIL |
gauge | % | メモリコントローラーが読み書きに使用された時間の割合 | 0 |
DCGM_FI_DEV_ENC_UTIL |
gauge | % | ビデオエンコーダー使用率 | 0 |
DCGM_FI_DEV_DEC_UTIL |
gauge | % | ビデオデコーダー使用率 | 0 |
GPU_UTIL の最大の落とし穴は、名前から受ける印象です。 この値は「SMがどれくらい埋まっているか」ではなく、「カーネルが1つでも稼働していた時間の割合」です(ドキュメント基準)。小さなカーネルが1つ動き続けるだけで、SMの大部分が遊んでいても100%になってしまいます。そのため、LLMサービングにおいてGPUが実際に飽和しているかどうかをこの値だけで知ることはできません。後の第5節で見るように、この検証環境のGPUではより正確な指標(プロファイリング)を取得できません。
2.3 メモリ
| 指標 | 単位 | 意味 | サンプル値(8GBクラスのノートPC用GPU) |
|---|---|---|---|
DCGM_FI_DEV_FB_USED |
MiB | 使用中のフレームバッファ | 12 |
DCGM_FI_DEV_FB_FREE |
MiB | 空きフレームバッファ | 7,795 |
DCGM_FI_DEV_FB_RESERVED |
MiB | ドライバーが予約した領域 | 380 |
3つの値を足すとGPUの全体メモリになります。 上記の例は 12 + 7,795 + 380 = 8,187MiB であり、同クラスの別のカードでは8,186MiB、24GBクラスのコンシューマー向けGPUでは24,575MiBと、それぞれ8GiBクラスと24GiBクラスのカードに合致しています。したがって使用率を計算する際、分母には USED + FREE ではなく USED + FREE + RESERVED を使用するのが正確です。予約領域はモデルが使用できないスペースです。
2.4 エラーと信頼性
| 指標 | 種類 | 意味 | 値 |
|---|---|---|---|
DCGM_FI_DEV_PCIE_REPLAY_COUNTER |
counter | PCIe再送の累積回数 | 0 |
DCGM_FI_DEV_UNCORRECTABLE_REMAPPED_ROWS |
counter | 訂正不能エラーにより再配置されたメモリ行数 | 0 |
DCGM_FI_DEV_CORRECTABLE_REMAPPED_ROWS |
counter | 訂正可能エラーにより再配置されたメモリ行数 | 0 |
DCGM_FI_DEV_ROW_REMAP_FAILURE |
gauge | 行再配置の失敗有無(0が正常) | 0 |
DCGM_FI_DEV_VGPU_LICENSE_STATUS |
gauge | vGPUライセンス状態 | 0 |
- PCIeの再送が増加する場合、 リンク品質の問題が疑われます。PCIeのリンク幅が低下しているケースが代表的なチェック対象です。
- 再配置された行の指標はGPUごとに異なっていました。 Ada世代のノートPC用GPUでは3つの指標がすべて出力されましたが、24GBクラスのコンシューマー向けGPUではこれら3つが出力から抜け、15個の指標しか出力されませんでした。GPUが該当する値をサポートしていない場合、エクスポート側が出力を出さないようですが、正確な規則性は確認できませんでした。
ROW_REMAP_FAILUREが1の場合、 データセンター向けGPUでは交換を検討するシグナルとなります(ドキュメント基準)。観察したGPUはすべて0でした。
3. ラベル
すべての指標に同じラベルが付与されます。
| ラベル | 値の例 | 用途 |
|---|---|---|
gpu |
0 |
ノード内のGPU番号 |
UUID |
GPU-… |
GPUを永続的に識別(交換を追跡) |
pci_bus_id |
00000000:01:00.0 |
物理的な場所 |
device |
nvidia0 |
デバイスノード |
modelName |
GPUモデル名 | モデル |
Hostname |
ノード名 | ノード |
DCGM_FI_DRIVER_VERSION |
595.91.07 |
ドライバーバージョン |
GPUを使用するPodが存在する場合、 container, namespace, pod ラベルが追加されます。GPUを使用するPodが存在するGPUにおいて、これら3つのラベルが付与されていることを確認しました。これら3つはkubeletのpod-resourcesソケットから取得され、GPUが空いている場合には付与されませんでした。
Podのカスタムラベルを付与するには、エクスポート側にAPIサーバーを読み取る権限が必要です。 検証環境ではエクスポート側がクラスター内でAPIサーバーにアクセスできない状態であり、ログに Failed to get in-cluster config, pod labels will not be available が残りました。Podラベルでチームやプロジェクト別のコストを集計するには、エクスポート側にAPIサーバーの読み取り権限を与える必要があるということですが、そのように変更しての検証は行っていません(未検証)。
ラベル値の種類はGPU数に比例するため、この指標のカーディナリティは小さく抑えられています。次の記事(Cilium指標)におけるHubbleと対照的な点です。
4. ラベルから見えてくる違いと観察
- 同じクラスター内でドライバーのバージョンが混在することがあり、その事実は
DCGM_FI_DRIVER_VERSIONラベルによってすぐにわかります。 検証環境では 595.91.07 と 570.195.03 の2つのバージョンが混在していました。問題の原因を意味するのではなく、アップグレードや障害調査の際にまず確認・切り分けを行うべき変数であるという意味です。 - アイドル時電力がGPUモデルごとに異なります。 8GBクラスのノートPC用GPUはアイドル時で1.22Wでしたが、24GBクラスのコンシューマー向けGPUはアイドル時でも21.1Wを消費していました。
5. 取得できない指標とその理由
エクスポートツールの起動ログにその理由がそのまま残っています(8GBクラスのノートPC用GPU、2026-09-23)。
Not collecting DCP metrics: Profiling is not supported for this group of GPUs or GPU
Skipping line 21 ('DCGM_FI_PROF_GR_ENGINE_ACTIVE'): metric not enabled
Skipping line 22 ('DCGM_FI_PROF_PIPE_TENSOR_ACTIVE'): metric not enabled
Skipping line 23 ('DCGM_FI_PROF_DRAM_ACTIVE'): metric not enabled
Skipping line 24 ('DCGM_FI_PROF_PCIE_TX_BYTES'): metric not enabled
Skipping line 25 ('DCGM_FI_PROF_PCIE_RX_BYTES'): metric not enabled
Not collecting NvSwitch metrics; no switches to monitor
Not collecting CPU metrics; ... DCGM module that is not currently loaded
| 欠損している指標 | 意味 | この環境で取得できない理由 |
|---|---|---|
DCGM_FI_PROF_GR_ENGINE_ACTIVE |
グラフィックスエンジンがアクティブな時間の割合 | このGPUファミリーはプロファイリング非対応(ログ) |
DCGM_FI_PROF_PIPE_TENSOR_ACTIVE |
Tensorコアがアクティブな割合 | 同上 |
DCGM_FI_PROF_DRAM_ACTIVE |
メモリインターフェースがアクティブな割合 | 同上 |
DCGM_FI_PROF_PCIE_TX/RX_BYTES |
PCIeの送受信バイト数 | 同上 |
| NVSwitch、NVLink指標 | スイッチとリンクの状態 | スイッチが存在しない(ログ) |
| ホストCPU指標 | CPUコアの状態 | DCGMモジュールがロードされていない(ログ) |
LLMサービングの運用において最も惜しまれるのはプロファイリング指標です。 Tensorコアのアクティブ割合とDRAMのアクティブ割合が分かって初めて「演算がボトルネックか、メモリ帯域がボトルネックか」を切り分けることができますが、これらのコンシューマー向けノートPC用GPUでは取得できません。2026-10-09にデスクトップ向け24GBクラスのGPUまで追加して再度確認しました。クラスター内の5枚のGPU(4モデル:ノートPC用2世代とデスクトップ用1枚)のコレクター出力をAPIプロキシ経由で読み取ったところ、 DCGM_FI_PROF_ で始まる行が5枚すべてで0件でした。デスクトップ向けGPUだからといって出力されるわけではありませんでした。指標の種類も同一ではありませんでした。最新世代のノートPC用GPUは18種、1世代前のノートPC用およびデスクトップ用GPUは15種であり、欠落していた3つは行リマッピング指標(DCGM_FI_DEV_CORRECTABLE_REMAPPED_ROWS, ..._UNCORRECTABLE_REMAPPED_ROWS, DCGM_FI_DEV_ROW_REMAP_FAILURE)でした。NVIDIAのドキュメントにはコンシューマー向けやワークステーション向けなどの非データセンターGPUに対して「limited DCGM functionality」とだけ記載されており、機能一覧(Features Supported on Different GPU Products)にもプロファイリングの行がないため、どの製品で取得できるのかをドキュメントから判別することはできませんでした。データセンター向けGPUで実際に取得できるかどうかは、機材がないため依然として 未実測 です。
XIDエラー指標および電力・サーマル制限違反の指標はこの出力に含まれていません。 ログのスキップリストにも含まれていません。当初は使用している収集リストにXIDがそもそも入っていないと推測していましたが、外部資料で確認したところその推測は誤りでした。このPodの設定は DCGM_EXPORTER_COLLECTORS=/etc/dcgm-exporter/dcp-metrics-included.csv、イメージタグは 4.5.3-4.8.2-distroless であり、アップストレージリポジトリの同一タグファイル(原文確認)には DCGM_FI_DEV_XID_ERRORS が有効な行(コメントを除いた連番11)として含まれています。同ファイルの5つのPROF行はログの「Skipping line 21」から「line 25」と完全に一致しており、私たちが確認した18個の指標は、このファイルの有効な26行からXID、NVLink帯域幅、PROFの5行を除いたものと完全に一致します。したがって、 リストには存在するものの、このGPUでは値が出力されなかったものと推測されます(推測。エクスポート元のソースはDCGMがblankの値を返した場合、その指標をスキップします。実行中のファイルを開くことはできず(distroless)、現在 DCGM_FI_DEV_XID_ERRORS 系の行は0件です)。電力・サーマル制限違反の指標はアップストリームファイルでコメントアウトされており、そもそもリストに含まれていません。現在、XIDはカーネルログ(NVRM: Xid)でのみ確認可能であり、このフローについては第11回で続けて解説します。
6. クエリの例(未実行)
実際のPrometheusでは実行していないサンプルです。指標名と単位は上記の実測値に合わせています。
# 평균 전력(W): 누적 에너지(mJ)의 증가율을 1000 으로 나눈다
rate(DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION[5m]) / 1000
# 메모리 사용률: 분모에 예약 영역까지 포함한다
DCGM_FI_DEV_FB_USED / (DCGM_FI_DEV_FB_USED + DCGM_FI_DEV_FB_FREE + DCGM_FI_DEV_FB_RESERVED)
# 알림 후보
DCGM_FI_DEV_ROW_REMAP_FAILURE > 0
increase(DCGM_FI_DEV_PCIE_REPLAY_COUNTER[1h]) > 0
7. 面接で出そうな質問
GPU_UTILが100%の場合、GPUは飽和していると言えるか? いいえ。カーネルが1つでも稼働していた時間の割合であるため、SMの占有やTensorコアの使用とは別問題です。- 演算がボトルネックかメモリがボトルネックかはどの指標で切り分けるのか? プロファイリング指標(Tensorアクティブ、DRAMアクティブ)です。サポートしていないGPUでは、サービング指標(トークンあたりの時間、バッチサイズ)から間接的に推測する必要があります。
- XIDはどこで確認するのか? カーネルログが基本ですが、収集リストにフィールドを追加すれば指標として確認することも可能です。
- 同じクラスター内でドライバーのバージョンが異なる場合、何が問題になるのか? CUDAの互換性、コンテナツールキット、エラーの動作が異なる可能性があるため、障害調査において最初に取り除く必要があります。
8. よくある誤解
- 「メモリ温度0は正常である」:値が存在しない可能性があります。
- 「
FB_USED + FB_FREEが全メモリである」:予約領域が別にあります。 - 「exporterを起動するだけで全指標が出力される」:GPUファミリーと収集リストによって異なります。この実験環境では18個でした。
外部的根拠:公式ドキュメントとソースで確認した内容
| テーマ | 資料と確認した場所 | 確認した内容 | この記事との関係 |
|---|---|---|---|
| プロファイル指標が出力されない理由 | DCGM Feature Overview(サポート製品表)、dcgm-exporter default-counters.csv のコメントとソース(pkg/cmd/app.go, fieldIsSupported) |
プロファイル指標はデータセンター向けVolta以降でのみサポート。exporterは起動時にDCGMにプロファイルのサポートを問い合わせ、失敗すると「Not collecting DCP metrics」を残し、PROF行を「metric not enabled」としてスキップする | 支持。 この記事が確認したログの文言と一致 |
| コンシューマー向けGPUにおけるDCGM機能 | 同じ表 | コンシューマー向け製品群ではフィールド値の監視、設定管理、ヘルスチェック、ジョブ統計、トポロジが可能で、ポリシーアラートはTeslaのみ、診断はレベル1のみ | 支持。 「制限された機能」という記述と一致 |
| XID指標が出力されない理由 | dcgm-exporterのアップストリーム dcp-metrics-included.csv(タグ4.5.3-4.8.2) |
DCGM_FI_DEV_XID_ERRORS が有効な行であり、PROFの5行の順序がログと完全に一致する |
反論(元の推測)。 リストにないからではなく、値が出力されなかったものに修正 |
確認できなかった項目
- 時系列の時間変化。この記事の値はすべてある時点のスナップショットであり、負荷がかかっている時の値は測定していません。
- メモリ温度が0である原因と、24GB級コンシューマー向けGPUでリマッピング行の指標が抜け落ちた正確なルール。
- 使用中の
dcp-metrics-included.csvの実行中の内容(イメージ内にシェルがなく開けなかったため、アップストリームの同じタグファイルで代替確認し、XID値が出力されない正確な理由は未確認)。 - 指標の意味の補足説明において、引用するDCGMドキュメントを今回は改めて開いて突き合わせを行っていません。
- exporterにAPIサーバーの読み取り権限を付与した際、ポッドのラベルが実際に付与されるか。
参考資料
- https://github.com/NVIDIA/dcgm-exporter
- https://docs.nvidia.com/datacenter/dcgm/latest/
確認したバージョンと日付
2026-10-05基準。dcgm-exporter 4.5.3-4.8.2、ドライバー 595.91.07および 570.195.03。