最近更新时间:2025-07-28 11:40:15
金山云托管Prometheus服务提供基于msp-dcgm-exporter来监控容器化GPU运行状态,并提供了开箱即用的Grafana监控大盘。本文将介绍如何开启GPU监控,以便了解GPU服务运行状态,及时排查GPU资源故障。
Prometheus实例已成功关联待监控的KCE集群,且集群中存在GPU节点。
登录容器服务控制台。
在左侧导航栏中,选择运维管理->Prometheus监控,进入Prometheus监控实例页面。
选择需要查看的实例,点击左侧的实例ID,进入基本信息页面。
在左侧导航栏中选择集群监控,进入集群监控页面。
选择需要查看的集群,点击右侧操作栏的数据采集配置,进入数据采集配置页面。
点击扩展监控页签,默认情况下msp-dcgm-exporter组件采集配置为关闭状态。开启采集状态,组件将自动安装至用户集群。
登录进入Grafana界面,分别从Node维度和Pod维度提供了Dcgm Exporter的预置大盘。
单击 Dcgm Exporter / Nodes,通过筛选指定的 cluster、node,可从节点维度查看GPU节点状态,例如节点状态概览、GPU卡信息、内存使用率、温度与能耗信息等。
单击 Dcgm Exporter / Namespace (pods),通过筛选指定的cluster、namespace、pod、GPU,可从Pod维度查看GPU节点状态,例如该pod所在GPU节点的卡利用率、内存利用率等。
对于存量msp实例,原有Grafana中缺少Dcgm Exporter预置大盘。用户可以手动关闭Grafana后再次重新开启,方可正常查看Dcgm Exporter预置大盘。
下面将详细介绍监控大盘中各个监控面板(Panel)的含义。
Panel组 | Panel名称 | 说明 |
Overview | Allocated GPUs | 表示节点已分配GPU个数和总的GPU个数。 |
GPU Utilization | 表示节点上的GPU的平均利用率,即节点上所有卡的GPU利用率算平均值。 | |
Used GPU Memory | 表示节点当前使用的GPU显存值与总的显存值的百分比。 | |
The Last One XID Error | 表示节点GPU卡最近出现的XID错误。 | |
Utilization | GPU Utilization | 表示节点GPU卡利用率。 |
Memory Copy Utilization | 表示节点GPU卡内存复制利用率。 | |
Encoder Engine Utilization | 表示节点GPU卡编码器利用率。 | |
Decoder Engine Utilization | 表示节点GPU卡解码器利用率。 | |
Memory and BAR1 | GPU Memory Details | 表示节点GPU内存信息: |
node:node的IP信息 | ||
UUID:GPU卡的UUID。 | ||
GPU Index:GPU卡索引号。 | ||
Used:该卡当前使用的显存。 | ||
BAR1 Used | 表示已使用BAR1。 | |
Memory Used | 表示节点上GPU卡已使用的显存大小。 | |
BAR1 Total | 表示总BAR1。 | |
Profiling | SM Occupancy | 表示SM占用率。 |
SM Active | 表示SM处于Active的比例。 | |
Tensor Core Engine Active | 表示在一个监控周期内,Tensor Core管道(Pipe)处于Active时间占总时间的比例。 | |
FP32 Engine Active | 表示在一个监控周期内,FP32管道处于Active的时间占总的时间的比例。 | |
FP16 Engine Active | 表示在一个监控周期内,FP16管道处于Active的时间占总的时间的比例。 | |
FP64 Engine Active | 表示在一个监控周期内,FP64管道处于Active的时间占总的时间的比例。 | |
Graphics Engine Active | 表示在一个监控周期内,Graphics或Compute引擎处于Active的时间占总的时间的比例。 | |
DRAM Active | 表示内存带宽利用率(Memory BW Utilization)。 | |
PCIE TX BYTES(Device to Host) | 表示节点GPU卡通过PCIe总线传输的数据速率。 | |
PCIE RX BYTES(Host to Device) | 表示节点GPU卡通过PCIe总线接收的数据速率。 | |
NVLINK TX/RX BYTES | 表示通过NVLink传输或接收的数据速率。 | |
Temperature and Energy | Power Usage | 表示节点GPU卡的功率。 |
Total Energy Consumption | 表示GPU卡从驱动加载开始,总共消耗的能量。单位为焦耳。 | |
Memory Temperature | 表示节点GPU内存温度。 | |
GPU Temperature | 表示节点GPU温度(计算单元)。 | |
Clock | SM CLOCK | 表示SM时钟频率。 |
Memory Clock | 表示内存频率。 | |
APP SM Clock | 表示SM应用的时钟频率。 | |
APP Memory Clock | 表示应用的内存频率。 | |
Video Clock | 表示Video引擎频率。 | |
Clock Throttle Reasons | 表示降频原因。 | |
Retired Pages | Retired Pages(Single-bit Errors) | 表示因单比特错误引发的停用的内存页面数。 |
Retired Pages(Double-bit Error) | 表示因双比特错误引发的停用的内存页面数。 | |
Violation | POWER VIOLATION | 表示因功率上限导致的违规。该值为违规的时间,单位为微秒。 |
THERMAL VIOLATION | 表示因热限制导致的违规。该值为违规的时间,单位为微秒。 | |
BOARD RELIABILITY VIOLATION | 表示因电路板可靠性限制导致的违规。该值为违规的时间,单位为微秒。 | |
LOW UTIL VIOLATION | 表示因低利用率限制导致的违规。该值为违规的时间,单位为微秒。 | |
SYNC BOOST VIOLATION | 表示因同步提升限制导致的违规。该值为违规的时间,单位为微秒。 | |
BOARD LIMIT VIOLATION | 表示因电路板限制导致的违规。该值为违规的时间,单位为微秒。 |
Panel组 | Panel名称 | 说明 |
Utilization | GPU Utilization | 表示pod调度所在的GPU卡利用率。 |
Memory Copy Utilization | 表示pod调度所在的GPU卡内存复制利用率。 | |
Encoder Engine Utilization | 表示pod调度所在的GPU卡编码器利用率。 | |
Decoder Engine Utilization | 表示pod调度所在的GPU卡解码器利用率。 | |
Memory and BAR1 | BAR1 Used | 表示已使用BAR1。 |
Memory Used | 表示节点上GPU卡已使用的显存大小。 | |
BAR1 Total | 表示总BAR1。 | |
GPU Memory Used Percentage | 表示内存利用率 | |
Profiling | SM Occupancy | 表示SM占用率。 |
SM Active | 表示SM处于Active的比例。 | |
Tensor Core Engine Active | 表示在一个监控周期内,Tensor Core管道(Pipe)处于Active时间占总时间的比例。 | |
FP32 Engine Active | 表示在一个监控周期内,FP32管道处于Active的时间占总的时间的比例。 | |
FP16 Engine Active | 表示在一个监控周期内,FP16管道处于Active的时间占总的时间的比例。 | |
FP64 Engine Active | 表示在一个监控周期内,FP64管道处于Active的时间占总的时间的比例。 | |
Graphics Engine Active | 表示在一个监控周期内,Graphics或Compute引擎处于Active的时间占总的时间的比例。 | |
DRAM Active | 表示内存带宽利用率(Memory BW Utilization)。 | |
PCIE TX BYTES(Device to Host) | 表示节点GPU卡通过PCIe总线传输的数据速率。 | |
PCIE RX BYTES(Host to Device) | 表示节点GPU卡通过PCIe总线接收的数据速率。 | |
NVLINK TX/RX BYTES | 表示通过NVLink传输或接收的数据速率。 | |
Temperature and Energy | Power Usage | 表示节点GPU卡的功率。 |
Total Energy Consumption | 表示GPU卡从驱动加载开始,总共消耗的能量。单位为焦耳。 | |
Memory Temperature | 表示节点GPU内存温度。 | |
GPU Temperature | 表示节点GPU温度(计算单元)。 | |
Clock | SM CLOCK | 表示SM时钟频率。 |
Memory Clock | 表示内存频率。 | |
APP SM Clock | 表示SM应用的时钟频率。 | |
APP Memory Clock | 表示应用的内存频率。 | |
Video Clock | 表示Video引擎频率。 | |
Clock Throttle Reasons | 表示降频原因。 |
下面将详细介绍 msp-dcgm-exporter支持的各指标含义。
指标名称 | 指标类型 | 单位 | 说明 |
DCGM_FI_DEV_GPU_UTIL | Gauge | % | 表示GPU利用率,即在一个周期时间内(1s或1/6s,根据GPU产品而定),一个或多个核函数处于Active的时间。 该指标仅能够展示有核函数在用的GPU资源,但无法展示具体的使用情况。 |
DCGM_FI_DEV_MEM_COPY_UTIL | Gauge | % | 表示内存带宽利用率。 以英伟达GPU V100为例,其最大内存带宽为900 GB/sec,如果当前的内存带宽为450 GB/sec,则内存带宽利用率为50%。 |
DCGM_FI_DEV_ENC_UTIL | Gauge | % | 表示编码器利用率。 |
DCGM_FI_DEV_DEC_UTIL | Gauge | % | 表示解码器利用率。 |
指标名称 | 指标类型 | 单位 | 说明 |
DCGM_FI_DEV_FB_FREE | Gauge | MiB | 表示帧缓存(Framebuffer Memory)剩余数。 帧缓存一般也被称为显存。 |
DCGM_FI_DEV_FB_USED | Gauge | MiB | 表示帧缓存已使用数。 该值与nvidia-smi命令中Memory-Usage的已使用值对应。 |
指标名称 | 指标类型 | 单位 | 说明 |
DCGM_FI_PROF_GR_ENGINE_ACTIVE | Gauge | % | 表示在一个时间间隔内,Graphics或Compute引擎处于Active的时间占比。 |
该值表示所有Graphics和Compute引擎的平均值。 | |||
Graphics或Compute引擎处于Active是指Graphics或Compute Context绑定到线程,并且Graphics或Compute Context处于Busy状态。 | |||
DCGM_FI_PROF_SM_ACTIVE | Gauge | % | 表示在一个时间间隔内,至少一个线程束在一个SM(Streaming Multiprocessor)上处于Active的时间占比。 |
该值表示所有SM的平均值,且该值对每个块的线程数不敏感。 | |||
线程束处于Active是指一个线程束被调度且分配资源后的状态,可能是在Computing、也可能是非Computing状态(例如等待内存请求)。 | |||
该值小于0.5表示未高效利用GPU,大于0.8是必要的。 | |||
假设一个GPU有N个SM: 一个核函数在整个时间间隔内使用N个线程块运行在所有的SM上,此时该值为1(100%)。 一个核函数在一个时间间隔内运行N/5个线程块,此时该值为0.2。 一个核函数使用N个线程块,在一个时间间隔内,仅运行了1/5个周期的时间,此时该值为0.2。 | |||
DCGM_FI_PROF_SM_OCCUPANCY | Gauge | % | 表示在一个时间间隔内,驻留在SM上的线程束与该SM最大可驻留线程束的比例。 |
该值表示一个时间间隔内的所有SM的平均值。 | |||
占用率越高不代表GPU使用率越高。只有在GPU内存带宽受限的工作负载(DCGM_FI_PROF_DRAM_ACTIVE)情况下,更高的占用率表示更有效的GPU使用率。 | |||
DCGM_FI_PROF_PIPE_TENSOR_ACTIVE | Gauge | % | 表示Tensor(HMMA/IMMA) Pipe处于Active状态的周期分数。 |
该值表示一个时间间隔内的平均值,而不是瞬时值。 | |||
较高的值表示Tensor Cores的利用率较高。 | |||
该值为1(100%)表示在整个时间间隔内每隔一个指令周期发出一个Tensor指令(两个周期完成一条指令)。 | |||
假设该值为0.2(20%),可能有如下情况: 在整个时间间隔内,有20%的SM的Tensor Core以100%的利用率运行。 在整个时间间隔内,有100%的SM的Tensor Core以20%的利用率运行。 在整个时间间隔的1/5时间内,有100%的SM上的Tensor Core以100%利用率运行。 | |||
DCGM_FI_PROF_PIPE_FP64_ACTIVE | Gauge | % | 表示FP64(双精度)Pipe处于Active状态的周期分数。 |
该值表示一个时间间隔内的平均值,而不是瞬时值。 | |||
较高的值代表FP64 Cores有较高的利用率。 | |||
该值为 1(100%)表示在整个时间间隔内上每四个周期(以Volta类型卡为例)执行一次FP64指令。 | |||
假设该值为0.2(20%),可能有如下情况: 在整个时间间隔内,有20%的SM的FP64 Core以100%的利用率运行。 在整个时间间隔内,有100%的SM的FP64 Core以20%的利用率运行。 在整个时间间隔的1/5时间内,有100%的SM上的FP64 Core以100%利用率运行。 | |||
DCGM_FI_PROF_PIPE_FP32_ACTIVE | Gauge | % | 表示乘加操作FMA(Fused Multiply-Add)管道处于Active的周期分数,乘加操作包括FP32(单精度)和整数。 |
该值表示一个时间间隔内的平均值,而不是瞬时值。 | |||
较高的值代表FP32 Cores有较高的利用率。 | |||
该值为1(100%)表示在整个时间间隔内上每两个周期(Volta类型卡为例)执行一次FP32指令。 | |||
假设该值为0.2(20%),可能有如下情况: 在整个时间间隔内,有20%的SM的FP32 Core以100%的利用率运行。 在整个时间间隔内,有100%的SM的FP32 Core以20%的利用率运行。 在整个时间间隔的1/5时间内,有100%的SM上的FP32 Core以100%利用率运行。 | |||
DCGM_FI_PROF_PIPE_FP16_ACTIVE | Gauge | % | 表示FP16(半精度)管道处于Active的周期分数。 |
该值表示一个时间间隔内的平均值,而不是瞬时值。 | |||
较高的值代表FP16 Cores有较高的利用率。 | |||
该值为 1 (100%) 表示在整个时间间隔内上每两个周期(Volta类型卡为例)执行一次FP16指令。 | |||
假设该值为0.2(20%),可能有如下情况: 在整个时间间隔内,有20%的SM的FP16 Core以100%的利用率运行。 在整个时间间隔内,有100%的SM的FP16 Core以20%的利用率运行。 在整个时间间隔的1/5时间内,有100%的SM上的FP16 Core以100%利用率运行。 | |||
DCGM_FI_PROF_DRAM_ACTIVE | Gauge | % | 表示内存带宽利用率(Memory BW Utilization)是将数据发送到设备内存或从设备内存接收数据的周期分数。 |
该值表示时间间隔内的平均值,而不是瞬时值。 | |||
较高的值表示设备内存的利用率较高。 | |||
该值为1(100%)表示在整个时间间隔内的每个周期执行一条 DRAM 指令(实际上,峰值约为 0.8 (80%) 是可实现的最大值)。 | |||
假设该值为0.2(20%),表示20%的周期在时间间隔内读取或写入设备内存。 | |||
DCGM_FI_PROF_PCIE_TX_BYTES | Counter | B/s | 表示通过PCIe总线传输/接收的数据速率,包括协议标头和数据有效负载。 |
DCGM_FI_PROF_PCIE_RX_BYTES | 该值表示一个时间间隔内的平均值,而不是瞬时值。 该速率在时间间隔内平均。例如,在1秒内传输1 GB数据,则无论以恒定速率还是突发传输数据,速率都是1 GB/s。理论上的最大PCIe Gen3带宽为每通道985 MB/s。 | ||
DCGM_FI_PROF_NVLINK_RX_BYTES | Counter | B/s | 表示通过NVLink传输/接收的数据速率,不包括协议标头。 |
DCGM_FI_PROF_NVLINK_TX_BYTES | 该值表示一个时间间隔内的平均值,而不是瞬时值。 该速率在时间间隔内平均。例如,在1秒内传输1 GB数据,则无论以恒定速率还是突发传输数据,速率都是1 GB/s。理论上,最大NVLink Gen2带宽为每个方向每个链路25 GB/s。 | ||
DCGM_FI_DEV_PCIE_REPLAY_COUNTER | counter | 次 | GPU PCIe 总线的重试次数。 |
DCGM_FI_DEV_NVLINK_BANDWIDTH_TOTAL | counter | - | GPU 所有通道的 NVLink 带宽计数器总数。 |
指标名称 | 指标类型 | 单位 | 说明 |
DCGM_FI_DEV_SM_CLOCK | Gauge | MHz | 表示SM时钟频率。 |
DCGM_FI_DEV_MEM_CLOCK | Gauge | MHz | 表示内存时钟频率。 |
DCGM_FI_DEV_APP_SM_CLOCK | Gauge | MHz | 表示SM应用时钟频率。 |
DCGM_FI_DEV_APP_MEM_CLOCK | Gauge | MHz | 表示内存应用时钟频率。 |
DCGM_FI_DEV_CLOCK_THROTTLE_REASONS | Gauge | MHz | 表示时钟频率降低的原因。 |
DCGM_FI_DEV_VIDEO_CLOCK | Gauge | MHz | GPU 视频编解码时钟频率 |
指标名称 | 指标类型 | 单位 | 说明 |
DCGM_FI_DEV_XID_ERRORS | Gauge | - | 表示一段时间内,最后发生的XID错误号。 |
DCGM_FI_DEV_POWER_VIOLATION | Counter | μs(微秒) | 表示因功率上限而导致的违规,该值为违规的时间。 |
DCGM_FI_DEV_THERMAL_VIOLATION | Counter | μs(微秒) | 表示由于热限制导致的违规,该值为违规的时间。 |
DCGM_FI_DEV_SYNC_BOOST_VIOLATION | Counter | μs(微秒) | 表示由于同步提升限制而导致的违规,该值为违规的时间。 |
DCGM_FI_DEV_BOARD_LIMIT_VIOLATION | Counter | μs(微秒) | 表示由于电路板限制而导致的违规,该值为违规的时间。 |
DCGM_FI_DEV_LOW_UTIL_VIOLATION | Counter | μs(微秒) | 表示低利用率限制导致的违规,该值为违规的时间。 |
DCGM_FI_DEV_RELIABILITY_VIOLATION | Counter | μs(微秒) | 表示电路板可靠性限制导致违规,该值为违规的时间。 |
指标名称 | 指标类型 | 单位 | 说明 |
DCGM_FI_DEV_BAR1_USED | Gauge | MB | 表示已使用的BAR1。 |
DCGM_FI_DEV_BAR1_FREE | Gauge | MB | 表示剩余的BAR1。 |
DCGM_FI_DEV_BAR1_TOTAL | Gauge | MB | 表示总 BARI 容量 |
指标名称 | 指标类型 | 单位 | 说明 |
DCGM_FI_DEV_MEMORY_TEMP | Gauge | C | 表示内存温度。 |
DCGM_FI_DEV_GPU_TEMP | Gauge | C | 表示GPU温度。 |
DCGM_FI_DEV_POWER_USAGE | Gauge | W | 表示功率。 |
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION | Counter | J | 表示从驱动加载开始,已消耗的能量。 |
指标名称 | 指标类型 | 单位 | 说明 |
DCGM_FI_DEV_RETIRED_SBE | Gauge | - | 表示由单比特错误(Single Bit Error)而停用的页面。 |
DCGM_FI_DEV_RETIRED_DBE | Gauge | - | 表示由双比特错误(Double Bit Error)而停用的页面。 |
指标名称 | 指标类型 | 单位 | 说明 |
DCGM_FI_DEV_UNCORRECTABLE_REMAPPED_ROWS | Counter | - | 因无法纠正的错误而重新映射的行数。 |
DCGM_FI_DEV_CORRECTABLE_REMAPPED_ROWS | Counter | - | 因可纠正的错误而重新映射的行数。 |
DCGM_FI_DEV_ROW_REMAP_FAILURE | Gauge | - | 重新映射行是否失败。 |
DCGM_FI_DEV_VGPU_LICENSE_STATUS | Gauge | - | vGPU 许可证状态 |
DCGM_FI_DEV_COUNT | Counter | 张 | 节点上的 GPU 设备数量 |
纯净模式