跳转到文档内容
版本:下一个

实时 GPU 用量

通过 HAMi 指标观察 GPU 利用率和显存使用量。节点 Capacity、Allocatable 和分配注解描述资源清单或分配结果,不代表实时使用量。

GPU 与容器指标​

按 Grafana Dashboard 指南配置 Prometheus 和仪表盘,同时采集两个 HAMi 指标来源:

来源用途
HAMi 调度器设备清单、容量和分配情况
各 GPU 节点上的 vGPU monitor物理 GPU 和容器 vGPU 的使用量

需要 NVIDIA 硬件遥测时,可按该指南添加 DCGM Exporter。其他厂商的设备插件和监控组件需单独部署,使用对应厂商的监控说明。

查看资源分配​

以下示例使用 NVIDIA 默认资源名称。将命名空间、Pod、容器和节点名称替换为实际值。

查看节点可分配资源和已注册的 GPU 清单:

kubectl get node <node-name> -o jsonpath='{.status.allocatable}'
kubectl get node <node-name> -o jsonpath='{.metadata.annotations.hami\.io/node-nvidia-register}'

查看 Pod 的资源请求、分配注解和事件:

kubectl describe pod <pod-name> -n <namespace>
kubectl get pod <pod-name> -n <namespace> -o jsonpath='{.metadata.annotations.hami\.io/vgpu-devices-allocated}'

这些信息用于解释调度和分配结果。实际利用率和显存使用量应查看监控指标。

检查 NVIDIA 设备可见性​

工作负载镜像中提供 nvidia-smi 时,可查看容器内可见的设备:

kubectl exec -n <namespace> <pod-name> -c <container-name> -- nvidia-smi

输出取决于运行时和共享模式,不能代替 HAMi 的分配信息,也不能完整反映容器的算力配额。在宿主机执行 nvidia-smi 可查看物理 GPU。

检查组件状态​

以下命令适用于 kube-system 中的默认 hami release:

kubectl get pods -n kube-system -l app.kubernetes.io/instance=hami
kubectl logs -n kube-system -l app.kubernetes.io/instance=hami,app.kubernetes.io/component=hami-device-plugin -c device-plugin --tail=100

其他部署使用实际 release 标签和命名空间。单独安装的厂商插件有各自的标签和容器名称。排查分配失败时,还应查看 Pod 事件和调度器日志,见故障排查指南。

CNCFHAMi 是 CNCF 孵化项目