中文内容
充分发挥 AI 基础设施的价值,需要深入了解 GPU 利用率。然而,许多在 Kubernetes 上运行 AI 工作负载的平台团队,对 GPU 的使用情况可见性有限。大多数团队并不知道是谁在使用 GPU、用了多少显存,以及 Kubernetes pod 是处于 Pending 状态还是在静默空闲。缺少信号时,GPU 集群通常利用率不足,而且在用户升级反馈之前,很难及时暴露调度瓶颈。
GPU Usage Monitor 基于 NVIDIA Data Center GPU Manager(DCGM)Exporter 构建,通过单个 Helm chart 部署,可在整个 Kubernetes 集群中实时查看 GPU 分配、计算利用率、显存消耗和 pod 状态。
GPU 加速 Kubernetes 集群中的可观测性缺口
对于管理 GPU 加速 Kubernetes 集群的站点可靠性工程师(SRE)和平台团队来说,两类故障模式既常见又代价高昂。
- 过度配置:工程师会申请整块 GPU 以避免资源争用,但模型通常只使用可用显存和计算资源的 30–50%。如果无法看到实际消耗,就没有信号来合理调整这些分配。结果是集群名义需求很高,但有效利用率很低——为闲置硬件付费。
- Pod 饥饿与调度盲区:GPU 请求可能不断堆积,使 pod 排队处于 Pending 状态,并导致模型训练任务或推理端点在启动前停滞。缺少对 Pending 与 Running 状态 GPU pod 的集群级视图时,这些调度瓶颈往往发现得太晚——通常是用户报告故障时,而不是通过监控告警发现。
标准 Kubernetes 指标栈——包括 kube-state-metrics 和 node-exporter——不会暴露 GPU 专用信号。DCGM Exporter 会暴露每块 GPU 的硬件指标,但要将其接入 Prometheus 和 Grafana 并配备生产级仪表板,需要大量手动配置。团队最终要么使用不一致的一次性监控方案,要么完全没有 GPU 监控。
什么是 GPU Usage Monitor?
GPU Usage Monitor 是一个开源项目,可为 Kubernetes 部署完全集成的 GPU 可观测性栈。它不要求 SRE 和平台团队自行组装并配置各个组件,而是将 DCGM Exporter、kube-state-metrics、Prometheus 和 Grafana 整合到一次部署中,并配备专为 GPU 加速工作负载设计的预构建仪表板。
其设计原则是运维简单性。通过一条 helm install 命令,即可在几分钟内获得可操作的 GPU 可见性,无需自定义编写仪表板或配置抓取规则。
GPU Usage Monitor 架构
该工具由四个主要组件构成:
- DCGM Exporter:暴露 NVIDIA GPU 指标(外部组件——通过 GPU Operator 部署)
- kube-state-metrics:暴露 Kubernetes pod 和资源指标
- Prometheus:从 DCGM 和 kube-state-metrics 收集并存储指标
- Grafana:通过 GPU Usage Monitor Dashboard 提供可视化

DCGM 处理硬件层,kube-state-metrics 处理 Kubernetes 层。Prometheus 和 Grafana 将二者连接成统一的可观测性平面。平台团队对每个组件本身都较为熟悉;该 chart 的价值在于集成。
如何开始使用 GPU Usage Monitor
GPU Usage Monitor 采用 Apache 2.0 许可证开源,目前可在 GitHub 获取。
前置条件 安装前,请确认以下事项:
- Kubernetes 1.19 或更高版本
- Helm 3.0 或更高版本
- DCGM Exporter 已在 GPU 节点上运行
安装 部署完整监控栈需要三条命令。
# Update chart dependencies helm dependency update # Install into a dedicated namespace helm install gpu-usage-monitor . \ --namespace gpu-usage-monitor \ --create-namespace # Forward Grafana to localhost kubectl port-forward \ -n gpu-usage-monitor \ svc/gpu-usage-monitor-grafana 3000:80
访问 http://localhost:3000,并使用默认凭据(admin / admin)登录。对于本地开发集群之外的任何环境,在向更广泛团队开放仪表板之前,请通过 values.yaml 更新凭据。
仪表板呈现的内容
部署完成后,预构建的 Grafana 仪表板可让运维人员立即了解集群内 GPU 资源状态。

可从仪表板获得的关键洞察:
- GPU 分配趋势。跟踪哪些命名空间和工作负载在一段时间内持有 GPU 分配。发现已分配但从未实际使用的资源,是回收闲置容量的直接信号。
- 带阈值的计算利用率。显示每块 GPU 相对于可配置阈值的利用率百分比。设置警告和严重阈值,可在饱和影响推理延迟或训练吞吐量之前提前发现问题。
- 按工作负载划分的显存使用量。按 pod 分解的实时 GPU 显存消耗。这是合理调整资源请求的基础信号:如果某个工作负载在一块 80 GB NVIDIA GPU 上持续消耗 12 GB,它就不需要分配整块 GPU。
- 运行中与 Pending 状态 pod 数量。通过单一视图查看启用 GPU 的 Kubernetes pod 中有多少正在运行,以及有多少卡在 Pending 状态。不断增长的 Pending 数量是调度压力的早期预警——在用户注意到异常之前即可看到。
- GPU 类型筛选。按 NVIDIA GPU 平台(Hopper、Blackwell、Blackwell Ultra 等)筛选所有指标。对于异构集群很有用,因为 GPU 类型会影响适合运行的工作负载以及预期利用率水平。
配置
该 Helm chart 旨在融入现有基础设施,而不是替代它。values.yaml 中的关键配置选项分为三个方面。
- 外部 Prometheus 集成:如果组织运行托管或自托管的 Prometheus 实例,可以配置该 chart 将 GPU 指标发送到现有栈,而不是同时部署新的 Prometheus。这样可集中管理指标保留、告警规则和数据生命周期。
- 自定义资源分配:所有 chart 组件的 CPU 和内存请求及限制均可配置。可调整这些值以适合集群资源预算,尤其是在需要长期保留指标时针对 Prometheus 实例进行调优。
- 凭据管理:在任何更大范围推广之前,应覆盖默认 Grafana 凭据。该 chart 通过标准 Helm values 暴露这些配置,便于通过现有密钥管理工作流进行管理。
无论是为单个 ML 团队管理小型 GPU 集群,还是运行服务数百个工作负载的大规模平台,完整的 GPU 可观测性都是高效运营该基础设施的前提。GPU Usage Monitor 让这种可观测性在几分钟内即可获得。
了解更多
获取用于监控 Kubernetes 集群中 GPU 资源的完整 Helm chart。
标签














