Skip to Content
GPUGPU 监控

集群GPU监控

1. 介绍

Uk8s 使用开源组件 Dcgm-Exporter 用于获取 GPU 相关监控指标,主要包含:

  • GPU 卡利用率
  • 容器 GPU 资源利用率

2. 部署

2.1. 未开启监控中心

开启 监控中心 即可在 Grafana 页面查看 Dashboard NVIDIA/DCGM/Exporter/NodeNVIDIA/DCGM/Exporter/Container

2.2. 已开启监控中心

⚠️ 如果监控中心版本 1.0.6 > version >= 1.0.5-3 或者 version > 1.0.6 ,默认安装了下面部署文件,请跳过下面部署内容,否则需要进行下面部署。

2.2.1. 部署 Dcgm-Exporter

kubectl apply -f https://docs.an-link.com/uk8s/yaml/gpu-share/dcgm-exporter.yaml

2.2.2. 部署 NVIDIA/DCGM/Exporter/Node Dashboard

登陆Grafana后,你需要先下载 json 文件 —> 选择左侧导航栏 ’+’ 号 —> Import —> 第二个输入框粘贴下载的 json 内容 —> Load

2.2.3. 部署 NVIDIA/DCGM/Exporter/Container Dashboard

⚠️ 官方的图表没有容器相关信息,如果你需要查看容器的 GPU 相关信息,需要导入 Uk8s 自制的 Dashboard。

登陆Grafana后,你需要先下载 json 文件 —> 选择左侧导航栏 ’+’ 号 —> Import —> 第二个输入框粘贴下载的 json 内容 —> Load

3. 测试

你可以通过下面命令快速启动一个 GPU Pod。该 Pod 会运行一段时间结束。随后你可以在 Grafana 的 NVIDIA/DCGM/Exporter/Container Dashboard 中查看该 Pod 的 GPU 使用情况。

cat << EOF | kubectl create -f - apiVersion: v1 kind: Pod metadata: name: dcgmproftester spec: restartPolicy: OnFailure containers: - name: dcgmproftester11 image: uhub.an-link.com/uk8s/dcgmproftester args: ["--no-dcgm-validation", "-t 1004", "-d 120"] resources: limits: nvidia.com/gpu: 1 securityContext: capabilities: add: ["SYS_ADMIN"] EOF

4. Dashboard 图表

DashboardGrafana图表作用
NVIDIA/DCGM/Exporter/NodeGPU TemperatureGPU 卡温度
NVIDIA/DCGM/Exporter/NodeGPU Power UsageGPU 功耗
NVIDIA/DCGM/Exporter/NodeGPU SM ClocksGPU 时钟频率
NVIDIA/DCGM/Exporter/NodeGPU UtilizationGPU 利用率
NVIDIA/DCGM/Exporter/NodeTensor Core UtilizationTensor Pipes 平均处于 Active 状态的周期分数
NVIDIA/DCGM/Exporter/NodeGPU Framebuffer Mem UsedGPU 显存使用量
NVIDIA/DCGM/Exporter/NodeGPU XID ErrorGPU 掉卡
NVIDIA/DCGM/Exporter/ContainerGPU Utilization容器 GPU 利用率
NVIDIA/DCGM/Exporter/ContainerGPU Framebuffer Mem容器 GPU 显存使用量&剩余量
NVIDIA/DCGM/Exporter/ContainerGPU Memory Usage容器 GPU 显存使用率

5. 监控规则

我们默认配置了 GPU掉卡 的告警规则,如果有新增告警规则的需求,可以通过下面命令更改告警规则。

kubectl -n uk8s-monitor edit prometheusrule uk8s-gpu

6. DCGM 常见指标

6.1. 利用率

指标名称指标类型指标单位指标含义
DCGM_FI_DEV_GPU_UTILGauge%GPU 利用率。
DCGM_FI_DEV_MEM_COPY_UTILGauge%GPU 内存带宽利用率。
DCGM_FI_DEV_ENC_UTILGauge%GPU 编码器利用率。
DCGM_FI_DEV_DEC_UTILGauge%GPU 解码器利用率。

6.2. 显存

在 GPU 里,显卡内存(显存)也被称为帧缓存。

指标名称指标类型指标单位指标含义
DCGM_FI_DEV_FB_FREEGaugeMiBGPU 帧缓存剩余量。
DCGM_FI_DEV_FB_USEDGaugeMiBGPU 帧缓存剩余量。

6.3. 频率

指标名称指标类型指标单位指标含义
DCGM_FI_DEV_SM_CLOCKGaugeMHzGPU SM 时钟频率。
DCGM_FI_DEV_MEM_CLOCKGaugeMHzGPU 内存时钟频率。

6.4. 剖析

指标名称指标类型指标单位指标含义
DCGM_FI_PROF_GR_ENGINE_ACTIVEGauge%在一个时间间隔内,Graphics 或 Compute 引擎处于 Active 的时间占比。
DCGM_FI_PROF_SM_ACTIVEGauge%在一个时间间隔内,至少一个线程束在一个 SM(Streaming Multiprocessor)上处于 Active 的时间占比。该值统计的是所有 SM 的均值。
DCGM_FI_PROF_SM_OCCUPANCYGauge%在一个时间间隔内,驻留在 SM 上的线程束与该 SM 最大可驻留线程束的比例。该值统计的是所有 SM 的均值。
DCGM_FI_PROF_PIPE_TENSOR_ACTIVEGauge%单位时间内 Tensor Pipes 平均处于 Active 状态的周期分数。
DCGM_FI_PROF_DRAM_ACTIVEGauge%内存拷贝活跃周期分数(一个周期内有一次 DRAM 指令则该周期为 100%)。
DCGM_FI_PROF_PIPE_FP64_ACTIVEGauge%单位时间内 F64 Pipes 平均处于 Active 状态的周期分数。
DCGM_FI_PROF_PIPE_FP32_ACTIVEGauge%单位时间内 F32 Pipes 平均处于 Active 状态的周期分数。
DCGM_FI_PROF_PIPE_FP16_ACTIVEGauge%单位时间内 F16 Pipes 平均处于 Active 状态的周期分数。
DCGM_FI_PROF_NVLINK_RX_BYTESCounterB/s通过 NVLink 接收的数据流量。
DCGM_FI_PROF_NVLINK_TX_BYTESCounterB/s通过 NVLink 传输的数据流量。
DCGM_FI_PROF_PCIE_RX_BYTESCounterB/s通过 PCIe 总线接收字节数。
DCGM_FI_PROF_PCIE_TX_BYTESCounterB/s通过 PCIe 总线传输字节数。
DCGM_FI_DEV_PCIE_REPLAY_COUNTERCounterGPU PCIe 总线的重试次数。
DCGM_FI_DEV_NVLINK_BANDWIDTH_TOTALCounter-GPU 所有通道的 NVLink 带宽计数器总数。

6.5. 温度和功率

指标名称指标类型指标单位指标含义
DCGM_FI_DEV_GPU_TEMPGaugeGPU 当前温度
DCGM_FI_DEV_MEMORY_TEMPGaugeGPU 显存当前温度
DCGM_FI_DEV_POWER_USAGEGaugeWGPU 当前使用功率
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTIONCountermJGPU 启动以来的总能耗

6.6. XID 错误&违规

指标名称指标类型指标单位指标含义
DCGM_FI_DEV_XID_ERRORSGauge-最近发生的错误代码
DCGM_CUSTOM_XID_ERRORS_TOTAL_COUNTERCounter-发生错误代码总数
DCGM_FI_DEV_POWER_VIOLATIONCounterμs因功率上限而导致违规的累积持续时间
DCGM_FI_DEV_THERMAL_VIOLATIONCounterμs因热限制导致违规的累积持续时间
DCGM_FI_DEV_SYNC_BOOST_VIOLATIONCounterμs因同步提升限制而导致违规的累积持续时间
DCGM_FI_DEV_BOARD_LIMIT_VIOLATIONCounterμs因电路板限制而导致违规的累积持续时间
DCGM_FI_DEV_LOW_UTIL_VIOLATIONCounterμs因低利用率限制导致违规的累积持续时间
DCGM_FI_DEV_RELIABILITY_VIOLATIONCounterμs因电路板可靠性限制导致违规的累积持续时间

6.7. 停用的内存页面

指标名称指标类型指标单位指标含义
DCGM_FI_DEV_RETIRED_SBECounter因单 bit 错误而停用的内存页面
DCGM_FI_DEV_RETIRED_DBECounter因双 bit 错误而停用的内存页面

6.8. 其他

指标名称指标类型指标单位指标含义
DCGM_FI_DEV_VGPU_LICENSE_STATUSGauge-vGPU 许可证状态
DCGM_FI_DEV_UNCORRECTABLE_REMAPPED_ROWSCounter-因无法纠正的错误而重新映射的行数
DCGM_FI_DEV_CORRECTABLE_REMAPPED_ROWSCounter-因可纠正的错误而重新映射的行数
DCGM_FI_DEV_ROW_REMAP_FAILUREGauge-重新映射行是否失败