TT Lab
ブログ

한국어 English 日本語 中文

はじめる
ブログ

ブログ

DCGM exporter指標のすべてを解剖:実際に取得できる18個と取得できないもの

ステータス:ドラフト(2026-10-05、2026-10-09更新)、実測値を反映。 指標のリスト、値、ラベル、ログは、検証環境のdcgm-exporterから読み取り専用で取得したものです。指標の意味の補足説明はNVIDIA DCGMおよびdcgm-exporterのドキュメントに基づおり、この記事の執筆時点ではドキュメントを再び開いて突合はしていません(未確認)。PromQLの例は実行していません(未実行)。 作成ルール:実測データを基本とし、計測できなかったものは「未実測」と表記します。

目次

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

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

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. ラベルから見えてくる違いと観察

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. 面接で出そうな質問

8. よくある誤解

外部的根拠:公式ドキュメントとソースで確認した内容

テーマ 資料と確認した場所 確認した内容 この記事との関係
プロファイル指標が出力されない理由 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行の順序がログと完全に一致する 反論(元の推測)。 リストにないからではなく、値が出力されなかったものに修正

確認できなかった項目

参考資料

確認したバージョンと日付

2026-10-05基準。dcgm-exporter 4.5.3-4.8.2、ドライバー 595.91.07および 570.195.03。

ログインするといいねできます

コメント

まだコメントはありません。

ログインするとコメントできます