9.2 DCGM Health Checks, Diagnostics & Prometheus Monitoring

Key Takeaways

  • DCGM Diagnostic suites categorize hardware validation into four distinct levels: Level 1 (Quick sanity check <30s), Level 2 (Deployment check <2m), Level 3 (Hardware stress/GEMM test <15m), and Level 4 (Extended burn-in >30m).
  • The DCGM Health Monitor continuously tracks six critical subsystems: PCIe bus integrity, NVLink link state, memory ECC errors (Single-Bit Errors vs Double-Bit Errors), thermal throttling, power limits, and Inforom/hardware status.
  • Single-Bit Errors (SBEs) are corrected automatically by hardware ECC and tracked for Dynamic Page Retirement (DPR) or Row Remapping, whereas Double-Bit Errors (DBEs) represent uncorrectable fatal memory corruption requiring immediate application termination.
  • The production AI observability stack utilizes DCGM Exporter to scrape metrics from nv-hostengine and expose OpenMetrics on HTTP port 9400 to Prometheus, visualizing cluster health via Grafana dashboards.
  • Automated Kubernetes remediation leverages Prometheus Alertmanager to detect critical DCGM hardware failures, automatically tainting nodes (NoSchedule), cordoning them from future scheduling, and draining active workloads before triggering hardware diagnostics.
Last updated: August 2026

9.2 DCGM Health Checks, Diagnostics & Prometheus Monitoring

Operational Blueprint: In large-scale accelerated computing clusters comprising hundreds or thousands of GPUs, silent hardware degradation, intermittent NVLink CRC errors, and uncorrectable memory faults directly threaten training job completion and inference reliability. Implementing an automated, proactive monitoring framework requires mastering DCGM diagnostic tiers, real-time health watchdogs, and cloud-native Prometheus/Grafana alerting pipelines with automated node remediation.


1. DCGM Diagnostic Levels (dcgmi diag)

NVIDIA DCGM includes an integrated, multi-tiered diagnostic testing suite designed to validate hardware functionality, stress computational and memory subsystems, and detect latent component failures. Diagnostics can be invoked via the CLI (dcgmi diag -r <level>), programmatic APIs, or automated node provisioning scripts.

+-----------------------------------------------------------------------------------------+
|                              DCGM DIAGNOSTIC EXECUTION TIERS                            |
+-------+-------------------+---------------+---------------------------------------------+
| LEVEL | TIER NAME         | TYPICAL DURATION | TESTS PERFORMED & PRIMARY USE CASE       |
+-------+-------------------+---------------+---------------------------------------------+
| 1     | Short / Sanity    | < 30 Seconds  | - Driver initialization & NVML validation   |
|       |                   |               | - PCIe link generation & width check (x16)  |
|       |                   |               | - NVLink link detection & basic topology    |
|       |                   |               | * Use Case: Pre-job validation / Slurm prolog|
+-------+-------------------+---------------+---------------------------------------------+
| 2     | Medium / Deploy   | ~1 – 2 Minutes| - All Level 1 tests                         |
|       |                   |               | - Targeted GPU memory allocation & read/write|
|       |                   |               | - Memory bandwidth sanity verification      |
|       |                   |               | * Use Case: Post-driver install / Node boot |
+-------+-------------------+---------------+---------------------------------------------+
| 3     | Long / Stress     | ~10 – 15 Min  | - All Level 2 tests                         |
|       |                   |               | - High-intensity GEMM compute stress test   |
|       |                   |               | - Full CUDA memory test (DRAM pattern test) |
|       |                   |               | - Full-bandwidth NVLink peer stress test    |
|       |                   |               | * Use Case: Node commissioning & burn-in    |
+-------+-------------------+---------------+---------------------------------------------+
| 4     | Extended Burn-In  | > 30 Minutes  | - Deep memory stress under thermal saturation|
|       |                   | (Customizable)| - Prolonged power cycling & pulse testing   |
|       |                   |               | * Use Case: Deep RCA / Flaky node RMA check |
+-------+-------------------+---------------+---------------------------------------------+

Running DCGM Diagnostics

Administrators can execute diagnostics against specific physical GPUs or entire system groups:

# Run a Level 1 quick sanity check on all GPUs
dcgmi diag -r 1

# Run a Level 3 comprehensive stress test on GPU group 'training_nodes'
dcgmi diag -g <group_id> -r 3

# Run a Level 3 test with specific custom parameters (e.g., targeted stress time)
dcgmi diag -r 3 --parameter "gemm.test_duration=300;memory.test_duration=300"

Operational Integration: Slurm & Kubernetes Epilog/Prolog

  • Pre-Job Check (Prolog): Slurm clusters execute dcgmi diag -r 1 during the job prolog script. If a GPU fails link verification or driver checks, the job is prevented from launching, and the scheduler flags the node for administrative inspection without failing the user's workload.
  • Post-Job Verification (Epilog): After a multi-day distributed training run finishes, the epilog script checks for residual ECC errors or memory leaks before returning the node to the available scheduling pool.

2. DCGM Health Monitoring & Watchdogs

Unlike active diagnostic tests (which require GPUs to be idle and take exclusive control of compute engines), the DCGM Health Monitor runs continuously in the background during live production workloads with near-zero performance impact.

+-----------------------------------------------------------------------------+
|                        DCGM HEALTH MONITORING SUBSYSTEM                     |
|                                                                             |
|   ┌───────────────────┐   ┌───────────────────┐   ┌───────────────────┐     |
|   │    PCIe HEALTH    │   │   NVLINK HEALTH   │   │   MEMORY HEALTH   │     |
|   │ - Link Width deg. │   │ - Link Down state │   │ - SBE Thresholds  │     |
|   │ - Link Speed deg. │   │ - CRC Error rate  │   │ - DBE Fatal Error │     |
|   │ - Replay Rollback │   │ - Recovery Failure│   │ - Dynamic Page Ret│     |
|   └───────────────────┘   └───────────────────┘   └───────────────────┘     |
|   ┌───────────────────┐   ┌───────────────────┐   ┌───────────────────┐     |
|   │  THERMAL HEALTH   │   │   POWER HEALTH    │   │  HARDWARE STATUS  │     |
|   │ - Thermal Throttl.│   │ - Voltage Drop    │   │ - Inforom Corrupt │     |
|   │ - Critical Trip   │   │ - Power Cap Viol. │   │ - MCU / GSP State │     |
|   └───────────────────┘   └───────────────────┘   └───────────────────┘     |
+-----------------------------------------------------------------------------+

Enabling and Configuring Health Watches

Health monitoring watches are configured per GPU group using bitmasks or letter identifiers:

# Enable all health monitoring watches on GPU group 0
dcgmi health -g 0 -s pmtnda

# Query the instantaneous health status of GPU group 0
dcgmi health -g 0 -c

Where -s flags correspond to:

  • p: PCIe Watchdog (monitors bus link degradation, e.g., link dropping from 16x PCIe Gen 5 down to 8x or Gen 1 speeds).
  • m: Memory Watchdog (monitors uncorrectable DBEs and excessive SBE accumulation).
  • t: Thermal Watchdog (monitors thermal slowdown and shutdown threshold violations).
  • n: NVLink Watchdog (monitors physical link failure, recovery retries, and high CRC error rates).
  • d: Driver / GSP Watchdog (monitors driver responsiveness and kernel exception states).
  • a: All Watches Enabled.

Memory Reliability: Single-Bit (SBE) vs. Double-Bit (DBE) ECC Errors

Modern enterprise GPUs (Hopper H100, Blackwell B200) utilize Error-Correcting Code (ECC) protection across High Bandwidth Memory (HBM) and SRAM caches:

Memory Error TypeHardware BehaviorSystem ImpactManagement Action
Single-Bit Error (SBE)Detected and automatically corrected on the fly by hardware ECC circuitry.Application continues running without data corruption or crash.DCGM tracks SBE frequency. If a specific memory cell repeatedly experiences SBEs, NVIDIA firmware initiates Dynamic Page Retirement (DPR) or Row Remapping at next reboot to isolate the degraded memory row.
Double-Bit Error (DBE)Detected by hardware ECC, but cannot be corrected mathematically.Fatal data corruption hazard. The GPU driver immediately halts executing CUDA contexts to prevent corrupted data from propagating into model weights or datasets.Triggers XID error; application crashes. Node must be cordoned and drained; affected memory page is permanently retired.

3. Production Monitoring Stack: DCGM Exporter, Prometheus & Grafana

In modern cloud-native AI platforms, DCGM is integrated into the standardized Prometheus observability ecosystem via the NVIDIA DCGM Exporter.

+-----------------------------------------------------------------------------------------+
|                        CLOUD-NATIVE AI MONITORING PIPELINE                              |
|                                                                                         |
|  ┌──────────────────┐      ┌─────────────────┐      ┌────────────┐      ┌────────────┐  |
|  │ NVIDIA H100 Node │      │  DCGM Exporter  │      │ Prometheus │      │  Grafana   │  |
|  │  nv-hostengine   │ ───► │   (DaemonSet)   │ ───► │   Server   │ ───► │ Dashboards │  |
|  │  (NVML Sampling) │      │  Port :9400/met │      │ (Scraper)  │      │ & Displays │  |
|  └──────────────────┘      └─────────────────┘      └─────┬──────┘      └────────────┘  |
|                                                           │                             |
|                                                           ▼                             |
|                                                    ┌──────────────┐                     |
|                                                    │ Alertmanager │                     |
|                                                    └──────┬───────┘                     |
|                                                           │ Webhook                     |
|                                                           ▼                             |
|                                                    ┌──────────────┐                     |
|                                                    │ Node Drainer │                     |
|                                                    │  Controller  │                     |
|                                                    └──────────────┘                     |
+-----------------------------------------------------------------------------------------+

DCGM Exporter Architecture

  • Deployed as a Kubernetes DaemonSet (part of the NVIDIA GPU Operator).
  • Periodically queries nv-hostengine using low-overhead APIs and formats raw metrics into OpenMetrics / Prometheus text format exposed over HTTP on port 9400 (/metrics).
  • Configured via a customizable CSV field mapping file (/etc/dcgm-exporter/default-counters.csv), allowing administrators to select exact telemetry IDs to expose without overloading Prometheus time-series storage.
  • Automatically enriches metrics with Kubernetes container, pod, namespace, and GPU instance metadata by correlating device UUIDs with container runtime cgroups.

Key Prometheus DCGM Metrics

Prometheus Metric NameMetric Meaning & Recommended Alert Threshold
DCGM_FI_DEV_GPU_UTILInstantaneous GPU temporal utilization percentage (0–100%).
DCGM_FI_DEV_FB_USED / FREEFramebuffer memory usage in MiB. Alert if FB_USED / FB_TOTAL > 0.95 to predict OOMs.
DCGM_FI_DEV_POWER_USAGEReal-time board power draw in Watts. Alert on unexpected power drops during active training.
DCGM_FI_DEV_GPU_TEMPDie temperature in °C. Warning alert at >75°C; critical alert at >85°C.
DCGM_FI_DEV_THERMAL_VIOLATION_TIMECumulative nanoseconds spent in thermal throttling. Alert if rate > 0.
DCGM_FI_DEV_ECC_DBE_VOL_TOTALUncontained volatile Double-Bit ECC memory errors. Critical alert if > 0.
DCGM_FI_DEV_NVLINK_CRC_FLIT_ERRORNVLink framing flit CRC error counters. Alert on rapidly rising error rates.
DCGM_FI_DEV_XID_ERRORSInteger code of the latest kernel XID error event. Alert immediately on fatal codes (43, 62, 79).

4. Kubernetes Integration: Automated Node Cordoning & Draining

When managing large clusters, manual intervention upon hardware failure is too slow to prevent cascading job failures in distributed training runs. Enterprise AI platforms implement Automated Node Remediation:

                       AUTOMATED REMEDIATION WORKFLOW

   ┌────────────────────────────────────────────────────────────────┐
   │ 1. HARDWARE ANOMALY DETECTED                                   │
   │    DCGM Exporter captures fatal event:                         │
   │    - Uncorrectable Double-Bit Error (DBE > 0)                  │
   │    - GPU Fallen off the Bus (XID 79)                           │
   │    - NVLink Port Failure                                       │
   └───────────────────────────────┬────────────────────────────────┘
                                   │
                                   ▼
   ┌────────────────────────────────────────────────────────────────┐
   │ 2. PROMETHEUS ALERT FIRED                                      │
   │    Alertmanager triggers automated webhook to Kubernetes       │
   │    Remediation Controller.                                     │
   └───────────────────────────────┬────────────────────────────────┘
                                   │
                                   ▼
   ┌────────────────────────────────────────────────────────────────┐
   │ 3. NODE TAINT & CORDON                                         │
   │    Node is immediately cordoned (`kubectl cordon <node>`) and   │
   │    tainted with `nvidia.com/gpu.unhealthy=true:NoSchedule` to   │
   │    block any incoming workloads.                               │
   └───────────────────────────────┬────────────────────────────────┘
                                   │
                                   ▼
   ┌────────────────────────────────────────────────────────────────┐
   │ 4. GRACEFUL POD DRAIN                                          │
   │    Active pods are evicted (`kubectl drain <node> --ignore-    │
   │    daemonsets`). Workload scheduler re-schedules training jobs │
   │    from their latest saved checkpoint on a healthy node.       │
   └───────────────────────────────┬────────────────────────────────┘
                                   │
                                   ▼
   ┌────────────────────────────────────────────────────────────────┐
   │ 5. ISOLATED DIAGNOSTIC EXECUTION                               │
   │    Node runs `dcgmi diag -r 3` in isolation. If test fails,     │
   │    an automated RMA ticket is dispatched to NVIDIA Enterprise. │
   └────────────────────────────────────────────────────────────────┘
Loading diagram...
Cloud-Native DCGM Telemetry and Automated Remediation Architecture
Estimated Duration of DCGM Diagnostic Levels
Test Your Knowledge

An AI platform engineer is configuring a Slurm batch scheduling cluster and needs to implement an automated node health check within the job prolog script that validates PCIe link width and NVLink status in under 30 seconds without taking significant compute time. Which DCGM diagnostic level should be used?

A
B
C
D
Test Your Knowledge

How does the NVIDIA GPU hardware and driver subsystem handle Single-Bit Errors (SBE) compared to Double-Bit Errors (DBE) during active CUDA execution?

A
B
C
D
Test Your Knowledge

A production Kubernetes AI cluster detects an uncontained Double-Bit Error (DBE) on an NVIDIA H100 node running a multi-node distributed training job. What is the recommended automated remediation workflow to minimize cluster disruption?

A
B
C
D