GPU 监控指标获取

最近更新时间:2025-10-20 17:16:21

我的收藏

组件介绍

TKE 开发了 gpu-exporter 组件,用于获取 GPU 相关 Pod /容器维度的监控指标。主要包含以下内容:
GPU 卡利用率
Pod / 容器 GPU 资源利用率
GPU 硬件相关的指标

部署方式

TKE gpu-exporter会随 qGPU 或 nvidia-gpu 组件自动安装,不需要单独部署:
qGPU 组件 - kube-system 命名空间下名称为 elastic-gpu-exporter 的 DaemonSet。
nvidia-gpu 组件 - kube-system 命名空间下名称为 nvidia-gpu-exporter 的 DaemonSet。

确认运行状态

安装 qGPU 或 nvidia-gpu 组件后,可以通过 Kubernetes 命令行工具 Kubectl 从本地客户端机器 连接 TKE 集群,查看工作负载和 Pod。
以 qGPU 为例,查看 kube-systemelastic-gpu-exporter的状态:
kubectl get daemonset elastic-gpu-exporter -n kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
elastic-gpu-exporter 1 1 1 1 1 <none> 3m36s
符合条件的节点上会有一个运行的 elastic-gpu-exporter 的 Pod:
kubectl get pod
NAME READY STATUS RESTARTS AGE
elastic-gpu-exporter-dblqm 1/1 Running 0 6s

获取监控指标

elastic-gpu-exporter / nvidia-gpu-exporter 的服务运行所在节点 5678 端口,监控指标会输出到 /metrics 路径下,因此也可以通过如下命令获取监控指标:
$ curl NodeIP:5678/metrics

GPU 卡相关指标

gpu_xxx
GPU 指标
gpu_core_usage
GPU 实际使用的算力,单位为百分比
gpu_mem_usage
GPU 实际使用的显存,单位为 MiB
gpu_core_utilization_percentage
GPU 算力使用率
gpu_mem_utilization_percentage
GPU 显存使用率
gpu_core_allocatable
GPU 可分配算力,单位为百分比,固定为100(仅支持 qGPU )
gpu_core_allocated
GPU 已分配算力,单位为百分比,对应 qgpu-core(仅支持 qGPU )
gpu_core_available
GPU 剩余算力,单位为百分比(仅支持 qGPU )
gpu_mem_allocatable
GPU 可分配显存,单位为 GiB,对应 qgpu 设备插件上报的单卡显存数量(仅支持 qGPU )
gpu_mem_allocated
GPU 已分配显存(仅支持 qGPU )
gpu_mem_available
GPU 剩余显存(仅支持 qGPU )
gpu_enc_utilization_percentage
视频编码使用率
gpu_dec_utilization_percentage
视频解码使用率
标签说明:
“card” 表示 GPU 的序号,“node” 表示所在节点,“namespace” 表示 Pod 所属命名空间,“pod_name” 表示 Pod 名称,“container_name” 表示容器名称。
示例
gpu_core_allocatable{card="0",node="172.21.112.100"} 100
gpu_core_allocated{card="0",container_name="cuda-container",namespace="default",node="172.21.112.100",pod_name="tf-bench-d4f4755c4-c7cp6"} 50
gpu_core_available{card="0",node="172.21.112.100"} 50
gpu_core_usage{card="0",node="172.21.112.100"} 91
gpu_core_utilization_percentage{card="0",node="172.21.112.100"} 91
gpu_mem_allocatable{card="0",node="172.21.112.100"} 31
gpu_mem_allocated{card="0",container_name="cuda-container",namespace="default",node="172.21.112.100",pod_name="tf-bench-d4f4755c4-c7cp6"} 7
gpu_mem_available{card="0",node="172.21.112.100"} 24
gpu_mem_usage{card="0",node="172.21.112.100"} 5241
gpu_mem_utilization_percentage{card="0",node="172.21.112.100"} 16.12
gpu_enc_utilization_percentage{card="0",node="172.21.112.100"} 0
gpu_dec_utilization_percentage{card="0",node="172.21.112.100"} 0

Pod 相关指标

pod_xxx
pod 指标
pod_core_usage
pod 实际使用的算力,单位为百分比
pod_mem_usage
pod 实际使用的显存,单位为 MiB
pod_core_utilization_percentage
pod 实际使用的算力占申请算力的百分比
pod_mem_utilization_percentage
pod 实际使用的显存占申请显存的百分比
pod_core_occupy_node_percentage
pod 实际使用的算力占节点总算力百分比
pod_mem_occupy_node_percentage
pod 实际使用的显存占节点总显存百分比
pod_core_request
pod 申请的算力,单位为百分比
pod_mem_request
pod 申请的显存,单位为 MiB
pod_enc_utilization_percentage
pod 视频编码使用率
pod_dec_utilization_percentage
pod 视频解码使用率
标签说明:
“namespace” 表示 Pod 所在的 namespace,“node” 表示 Pod 所在节点,“pod” 表示 Pod 的名称。
示例
pod_core_occupy_node_percentage{namespace="default",node="172.21.112.100",pod="test-d4f4755c4-c7cp6"} 91
pod_core_request{namespace="default",node="172.21.112.100",pod="test-d4f4755c4-c7cp6"} 50
pod_core_usage{namespace="default",node="172.21.112.100",pod="test-d4f4755c4-c7cp6"} 91
pod_core_utilization_percentage{namespace="default",node="172.21.112.100",pod="test-d4f4755c4-c7cp6"} 182
pod_mem_occupy_node_percentage{namespace="default",node="172.21.112.100",pod="test-d4f4755c4-c7cp6"} 16.12
pod_mem_request{namespace="default",node="172.21.112.100",pod="test-d4f4755c4-c7cp6"} 7168
pod_mem_usage{namespace="default",node="172.21.112.100",pod="test-d4f4755c4-c7cp6"} 5239
pod_mem_utilization_percentage{namespace="default",node="172.21.112.100",pod="test-d4f4755c4-c7cp6"} 73.09
pod_dec_utilization_percentage{namespace="default",node="172.21.112.100",pod="test-d4f4755c4-c7cp6"} 0
pod_enc_utilization_percentage{namespace="default",node="172.21.112.100",pod="test-d4f4755c4-c7cp6"} 0

容器相关指标

container_xxx
容器指标
container_assigned_card
容器分配到的卡序号
container_gpu_utilization
容器实际使用的算力
container_gpu_memory_total
容器实际使用的显存
container_core_utilization_percentage
容器实际使用的算力占申请算力的百分比
container_mem_utilization_percentage
容器实际使用的显存占申请显存的百分比
container_request_gpu_memory
容器申请的显存,单位为 MiB
container_request_gpu_utilization
容器申请的算力,单位为百分比
container_enc_utilization_percentage
容器视频编码使用率
container_dec_utilization_percentage
容器视频解码使用率
标签说明:
“container_name” 表示容器名称,“namespace” 表示容器所在的 namespace,“node” 表示容器所在节点,“pod_name” 表示容器所在的 Pod 的名称,“card” 表示分配到卡的序号,“uuid” 表示卡的 UUID 。
示例 
container_assigned_card{card="0",contaienr_name="cuda-container",namespace="default",node="172.21.112.100",pod_name="test-d4f4755c4-c7cp6",uuid="GPU-uuid"} 1
container_core_utilization_percentage{container_name="cuda-container",namespace="default",node="172.21.112.100",pod_name="test-d4f4755c4-c7cp6"} 182
container_dec_utilization_percentage{container_name="cuda-container",namespace="default",node="172.21.112.100",pod_name="test-d4f4755c4-c7cp6"} 0
container_enc_utilization_percentage{container_name="cuda-container",namespace="default",node="172.21.112.100",pod_name="test-d4f4755c4-c7cp6"} 0
container_gpu_memory_total{container_name="cuda-container",namespace="default",node="172.21.112.100",pod_name="test-d4f4755c4-c7cp6"} 5239
container_gpu_utilization{container_name="cuda-container",namespace="default",node="172.21.112.100",pod_name="test-d4f4755c4-c7cp6"} 91
container_mem_utilization_percentage{container_name="cuda-container",namespace="default",node="172.21.112.100",pod_name="test-d4f4755c4-c7cp6"} 73.09
container_request_gpu_memory{container_name="cuda-container",namespace="default",node="172.21.112.100",pod_name="test-d4f4755c4-c7cp6"} 7168
container_request_gpu_utilization{container_name="cuda-container",namespace="default",node="172.21.112.100",pod_name="test-d4f4755c4-c7cp6"} 50
container_dec_utilization_percentage{container_name="cuda-container",namespace="default",node="172.21.112.100",pod_name="test-d4f4755c4-c7cp6"} 0
container_enc_utilization_percentage{container_name="cuda-container",namespace="default",node="172.21.112.100",pod_name="test-d4f4755c4-c7cp6"} 0

GPU 硬件相关的指标

gpu_xxx
硬件相关指标
gpu_count
节点的显卡数量
gpu_info
显卡信息,通过标签表明显卡类型,卡序号,驱动版本及 UUID
gpu_mem_each_card
每张显卡的显存,单位 MiB
gpu_mem_clock
显存时钟频率,单位 MHz
gpu_graphics_clock
图形处理器时钟频率,单位 MHz
gpu_sm_clock
流处理器时钟频率,单位 MHz
gpu_video_clock
视频处理器时钟频率,单位 MHz
gpu_max_mem_clock
最大显存时钟频率,单位 MHz
gpu_max_graphics_clock
最大图形处理器时钟频率,单位 MHz
gpu_max_sm_clock
最大流处理器时钟频率,单位 MHz
gpu_max_video_clock
最大视频处理器时钟频率,单位 MHz
gpu_persistence_mode
是否开启持久模式,1 表示开启,0 表示未开启
gpu_power_usage
功率,单位 W
gpu_ecc_mode
是否开启 ECC 模式,1 表示开启,0 表示未开启
gpu_ecc_error_count
ECC 错误数量,标签 counter_type 分为 aggregate 和 volatile,error_type 分为 correctable 和 uncorrectable
示例
gpu_count 1
gpu_info{card="0",driver_version="470.182.03",name="Tesla V100-SXM2-32GB",node="172.21.112.100",uuid="GPU-uuid"} 1
gpu_mem_each_card{card="0",node="172.21.112.100"} 32510
gpu_ecc_error_count{card="0",counter_type="aggregate",error_type="correctable",node="172.21.112.100"} 0
gpu_ecc_error_count{card="0",counter_type="aggregate",error_type="uncorrectable",node="172.21.112.100"} 0
gpu_ecc_error_count{card="0",counter_type="volatile",error_type="correctable",node="172.21.112.100"} 0
gpu_ecc_error_count{card="0",counter_type="volatile",error_type="uncorrectable",node="172.21.112.100"} 0
gpu_ecc_mode{card="0",node="172.21.112.100"} 1
gpu_graphics_clock{card="0",node="172.21.112.100"} 1530
gpu_mem_clock{card="0",node="172.21.112.100"} 877
gpu_max_graphics_clock{card="0",node="172.21.112.100"} 1530
gpu_max_mem_clock{card="0",node="172.21.112.100"} 877
gpu_max_sm_clock{card="0",node="172.21.112.100"} 1530
gpu_max_video_clock{card="0",node="172.21.112.100"} 1372
gpu_persistence_mode{card="0",node="172.21.112.100"} 1
gpu_power_usage{card="0",node="172.21.112.100"} 246.39
gpu_sm_clock{card="0",node="172.21.112.100"} 1530
gpu_video_clock{card="0",node="172.21.112.100"} 1372