GPU监控2.0基于NVIDIA DCGM构建功能强大的GPU监控体系。本文介绍如何开启集群GPU监控。
前提条件
背景信息
对运维人员来说,实现对Kubernetes的大规模GPU设备可监测能力至关重要。通过监测GPU相关指标能够了解整个集群的GPU使用情况、健康状态、工作负载性能等,从而实现对异常问题的快速诊断、优化GPU资源的分配、提升资源利用率等。除运维人员以外,其他人员(例如数据科学家、AI算法工程师等)也能通过相关监控指标了解业务的GPU使用情况,以便进行容量规划和任务调度。
GPU监控1.0版本基于NVML(NVIDIA Management Library)库获取GPU指标,并通过Prometheus和Grafana将指标透传给用户,便于用户监控集群GPU资源的使用情况。但是,随着新一代NVIDIA GPU的发行,内部构造更加复杂,用户的使用场景也更加多样,GPU监控1.0对GPU的监控指标已经不能完全满足用户的需求。
新一代NVIDIA支持使用数据中心GPU管理器DCGM(Data Center GPU Manager)来管理大规模集群中的GPU,GPU监控2.0基于NVIDIA DCGM构建功能更强大的GPU监控体系。DCGM提供了种类丰富的GPU监控指标,有如下功能特性:
- GPU行为监控
- GPU配置管理
- GPU Policy管理
- GPU健康诊断
- GPU级别统计和线程级别统计
- NVSwitch配置和监控
使用限制
- 节点NVIDIA GPU驱动版本≥418.87.01。如果您需要进行GPU Profiling,则节点NVIDIA GPU驱动版本≥450.80.02。关于GPU Profiling的更多信息,请参见Feature Overview。
- 节点的NVIDIA GPU驱动版本不能为5XX系列(驱动版本以5开头,例如:510.47.03)。说明
- 目前使用的DCGM版本为2.3.6,该版本的DCGM在5XX系列的NVIDIA GPU驱动上工作存在一些问题,具体请参见dcgm-exporter collects metrics incorrectly?。
- 您可以通过SSH登录GPU节点,执行
nvidia-smi
命令,查看安装的GPU驱动版本。更多信息,请参见通过SSH连接ACK专有版集群的Master节点。
- 不支持对NVIDIA MIG进行监控。
注意事项
当前DCGM可能会存在内存泄漏的问题,已通过为Exporter所在的Pod设置resources.limits
来规避这个问题。当内存使用达到Limits限制时,Exporter会重启(一般一个月左右重启一次),重启后正常上报指标,在重启后的几分钟内,Grafana可能会出现某些指标的显示异常(例如节点数突然变多),之后恢复正常。问题详情请参见The DCGM has a memory leak?。操作步骤
- 开启阿里云Prometheus监控。
- 验证阿里云Prometheus的GPU监控能力。