收集和查看 DCGM 指标


您可以通过将 GKE 配置为将 NVIDIA 数据中心 GPU 管理器 (DCGM) 指标发送到 Cloud Monitoring,来监控 GPU 利用率、性能和健康状况。

当您启用 DCGM 指标时,GKE 会安装 DCGM-Exporter 工具、安装 Google 管理的 GPU 驱动程序,并部署 ClusterPodMonitoring 资源以将指标发送到 Google Cloud Managed Service for Prometheus。

如果您想要自定义 DCGM 指标集,或者您的集群不符合受管 DCGM 指标的要求,您还可以配置自行管理的 DCGM

什么是 DCGM

NVIDIA 数据中心 GPU 管理器 (DCGM) 是 NVIDIA 提供的一组工具,可让您管理和监控 NVIDIA GPU。DCGM 可让您全面了解 GPU 利用率、性能和健康状况。

  • GPU 利用率指标可指示所监控 GPU 的繁忙程度,以及它是否能有效用于处理任务。这包括核心处理、内存、I/O 和电源利用率的指标。
  • GPU 性能指标是指 GPU 执行计算任务的有效性和效率。这包括时钟速度和温度指标。
  • GPU I/O 指标(例如 NVlink 和 PCIe)用于衡量数据传输带宽。

准备工作

在开始之前,请确保您已执行以下任务:

  • 启用 Google Kubernetes Engine API。
  • 启用 Google Kubernetes Engine API
  • 如果您要使用 Google Cloud CLI 执行此任务,请安装初始化 gcloud CLI。 如果您之前安装了 gcloud CLI,请运行 gcloud components update 以获取最新版本。

NVIDIA 数据中心 GPU 管理器 (DCGM) 指标的要求

如需收集 NVIDIA 数据中心 GPU 管理器 (DCGM) 指标,GKE 集群必须满足以下要求:

配置 DCGM 指标收集

您可以使用 Google Cloud 控制台、gcloud CLI 或 Terraform 让 GKE 为现有集群收集 DCGM 指标。

控制台

  1. 创建 GPU 节点池

    您必须使用默认最新版本进行安装 GPU 驱动程序

  2. 转到 Google Cloud 控制台中的 Google Kubernetes Engine 页面。

    转到 Google Kubernetes Engine

  3. 点击集群的名称。

  4. 点击 Cloud Monitoring 旁边的

  5. 选择 SYSTEMDCGM

  6. 点击“保存”。

gcloud

  1. 创建 GPU 节点池

    您必须为 --gpu-driver-version 使用 defaultlatest

  2. 更新集群:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --enable-managed-prometheus \
        --monitoring=SYSTEM,DCGM
    

    替换以下内容:

Terraform

如需使用 Terraform 配置 DCGM 指标收集,请参阅 google_container_cluster 的 Terraform 注册表中的 monitoring_config 块。如需了解有关将 Google Cloud 与 Terraform 搭配使用的一般信息,请参阅将 Terraform 与 Google Cloud 搭配使用

使用 DCGM 指标

您可以使用 Google Cloud 控制台中的控制台或直接在集群概览和集群详情页面中查看 DCGM 指标。如需了解详情,请参阅查看可观测性指标

您可以使用 Grafana DCGM 指标信息中心查看指标。如需了解详情,请参阅使用 Grafana 查询。如果遇到任何错误,请参阅 API 兼容性

价格

DCGM 指标使用 Google Cloud Managed Service for Prometheus 将指标加载到 Cloud Monitoring 中。Cloud Monitoring 会根据注入的样本数量收取这些指标的注入费用。但是,对于属于已启用 GKE Enterprise 版本的项目的已注册集群,这些指标是免费的。

如需了解详情,请参阅 Cloud Monitoring 价格

配额

DCGM 指标使用 Cloud Monitoring API 的每分钟的时序注入请求数配额。在启用指标包之前,请检查该配额的最近峰值用量。如果您在同一项目中有多个集群,或者已经达到该配额上限,则可以申请增加配额,然后才能启用任一可观测性软件包。

DCGM 指标

此表中的 Cloud Monitoring 指标名称必须以 prometheus.googleapis.com/ 为前缀。表中的条目已省略该前缀。

除了 prometheus_target 受监控资源上的标签之外,GKE 上收集的所有 DCGM 指标都附加了以下标签:

GPU 标签:

  • UUID:GPU 设备 UUID
  • device:GPU 设备名称。
  • gpu:节点上 GPU 设备的索引号(整数)。例如,如果有 8 个 GPU 已连接,则此值的范围为 07
  • modelName:GPU 设备型号的名称,例如 NVIDIA L4

Kubernetes 标签:

  • container:使用 GPU 设备的 Kubernetes 容器的名称。
  • namespace:使用 GPU 设备的 Pod 和容器的 Kubernetes 命名空间。
  • pod:使用 GPU 设备的 Kubernetes Pod。
PromQL 指标名称
Cloud Monitoring 指标名称
种类、类型、单位
受监控的资源
所需的 GKE 版本
说明
DCGM_FI_DEV_FB_FREE
DCGM_FI_DEV_FB_FREE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
可用帧缓冲区(以 MB 为单位)。
DCGM_FI_DEV_FB_TOTAL
DCGM_FI_DEV_FB_TOTAL/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
GPU 的总帧缓冲区(以 MB 为单位)。
DCGM_FI_DEV_FB_USED
DCGM_FI_DEV_FB_USED/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
已用帧缓冲区大小(以 MB 为单位)。
DCGM_FI_DEV_GPU_TEMP
DCGM_FI_DEV_GPU_TEMP/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
设备的当前温度读数(以摄氏度 [°C] 为单位)。
DCGM_FI_DEV_GPU_UTIL
DCGM_FI_DEV_GPU_UTIL/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
GPU 利用率(以百分比表示)。
DCGM_FI_DEV_MEM_COPY_UTIL
DCGM_FI_DEV_MEM_COPY_UTIL/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
内存利用率 (%)
DCGM_FI_DEV_MEMORY_TEMP
DCGM_FI_DEV_MEMORY_TEMP/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
设备的内存温度(以摄氏度 [°C] 为单位)。
DCGM_FI_DEV_POWER_USAGE
DCGM_FI_DEV_POWER_USAGE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
设备的耗电量(以瓦特为单位)。
DCGM_FI_DEV_SM_CLOCK
DCGM_FI_DEV_SM_CLOCK/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
SM 时钟频率(以 MHz 为单位)。
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION/counter

CUMULATIVEDOUBLE1 prometheus_target
1.30.1-gke.1204000
自上次重新加载驱动程序以来 GPU 的总能耗(以 mJ 为单位)。
DCGM_FI_PROF_DRAM_ACTIVE
DCGM_FI_PROF_DRAM_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
设备内存接口主动发送或接收数据的周期所占的比例。
DCGM_FI_PROF_GR_ENGINE_ACTIVE
DCGM_FI_PROF_GR_ENGINE_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
图形引擎处于活跃状态的时间所占的百分比。
DCGM_FI_PROF_NVLINK_RX_BYTES
DCGM_FI_PROF_NVLINK_RX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
活跃的 NvLink 接收(读取)数据的速率(以字节为单位),包括标头和载荷。
DCGM_FI_PROF_NVLINK_TX_BYTES
DCGM_FI_PROF_NVLINK_TX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
活跃的 NvLink 发送数据的速率(以字节为单位),包括标头和载荷。
DCGM_FI_PROF_PCIE_RX_BYTES
DCGM_FI_PROF_PCIE_RX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
活跃 PCIe 接收(读取)数据的速率(以字节为单位),包括标头和载荷。
DCGM_FI_PROF_PCIE_TX_BYTES
DCGM_FI_PROF_PCIE_TX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
活跃 PCIe 发送数据的速率(以字节为单位),包括标头和载荷。
DCGM_FI_PROF_PIPE_FP16_ACTIVE
DCGM_FI_PROF_PIPE_FP16_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
fp16 管道处于活跃状态的周期占比。
DCGM_FI_PROF_PIPE_FP32_ACTIVE
DCGM_FI_PROF_PIPE_FP32_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
fp32 管道处于活跃状态的周期占比。
DCGM_FI_PROF_PIPE_FP64_ACTIVE
DCGM_FI_PROF_PIPE_FP64_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
fp64 管道处于活跃状态的周期占比。
DCGM_FI_PROF_PIPE_TENSOR_ACTIVE
DCGM_FI_PROF_PIPE_TENSOR_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
任意张量管道处于活跃状态的周期的比例。
DCGM_FI_PROF_SM_ACTIVE
DCGM_FI_PROF_SM_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
分配了至少 1 个 warp 的 SM 的周期比例。

后续步骤