目录

dcgm-exporter指标异常

概述

关于 DCGM Exporter 中 DCGM_FI_DEV_GPU_UTIL 存在异常值的问题,官方有相关的 issue 进行讨论,具体的表现是 DCGM_FI_DEV_GPU_UTIL 偶尔会被采集到异常大的值,超过了正常的 [0, 100] 区间。

问题影响

从下图可以发现,DCGM Exporter 采集到的 DCGM_FI_DEV_GPU_UTIL 异常,这种异常值会导致很多问题,比如说会把关于 GPU 的 DCGM_FI_DEV_GPU_UTIL 平均值拉高,这在 Grafana 上展示的时候尤其明显。

/dcgm-exporter%E6%8C%87%E6%A0%87%E5%BC%82%E5%B8%B8/img.png /dcgm-exporter%E6%8C%87%E6%A0%87%E5%BC%82%E5%B8%B8/img_1.png

修复

因为指标异常会影响一些平均值等计算,所以最好能在采集或者展示的时候过滤掉或者处理这些异常的指标,个人建议还是采集的时候直接处理比较好,因为从经验上看,都是比100的值更大,那么采集的时候,可以选择直接丢弃,又或者是直接把大于100的值按100来采集即可。其他方法还可以在 Grafana 上通过一些函数来限制 DCGM_FI_DEV_GPU_UTIL 的最大值。

1
2
3
4
5
6
7
8
9
# prometheus筛选条件
groups:
  - name: dcgm_gpu_rules
    rules:
      - record: dcgm_gpu_utilization_clamped
        expr: clamp_max(clamp_min(DCGM_FI_DEV_GPU_UTIL, 100), 0)
        labels:
          # 可选:保留原标签或添加自定义标签
          job: "{{ $labels.job }}"

参考资料

  1. dcgm-exporter#418