GPU 管理旨在实时跟踪和管理 Kubernetes 集群中的所有 GPU 资源。它不仅显示当前状态,还支持多个集群的集成管理,为每个用户角色提供定制的信息,并包括分析工具以监控和评估 GPU 使用趋势。
主要功能
-
Cluster-level GPU Monitoring
- 一目了然地查看多个集群的 GPU 资源
- 一目了然地比较各集群的 GPU 利用率
- 立即识别资源不足和空闲资源的集群
-
Multi-Instance GPU (MIG) support
- 将单个 GPU 划分为多个实例以实现灵活利用
- 为每个 MIG 实例收集独立的指标
- 监控物理 GPU 内部实例之间的资源争用
-
Real-time metrics visualization
- 每 15 秒更新一次 GPU 状态
- 使用颜色代码区分状态(正常/警告/严重)
- 使用时间序列图分析趋势
-
Role-based view
- 系统管理员:整体基础设施健康状况
- 项目经理:团队的 GPU 池使用状态
- 开发人员:自己工作负载的详细指标
关键指标
GPU 利用率
GPU 利用率是最常监控的指标之一,但也是最容易被误解的指标之一。该指标表示 GPU 的计算核心积极执行计算的时间百分比。例如,如果 GPU 利用率为 80%,则意味着 GPU 在测量期间的 80% 时间内在执行计算,其余 20% 时间处于空闲状态。
-
Normal range:
- 分配的 GPU:超过 50%(理想情况下为 75–85%)
- 未分配的 GPU:低于 5%(理想情况下为 0%)
- Problem diagnosis:
- 低利用率(20%或更低):可能的数据加载瓶颈、小批量大小或CPU瓶颈
- 异常活动(未分配的GPU > 20%):可能是未完成的进程或安全问题
内存利用率
内存利用率表示GPU内存主动执行读写操作的时间比例。这与内存使用量是不同的概念。内存使用量显示已分配了多少内存,而内存利用率反映了该内存的使用活跃程度。
| GPU利用率 | 内存利用率 | 解释 |
|---|---|---|
| 高 | 低 | 正常(计算密集型) |
| 低 | 高 | 内存带宽瓶颈 |
| 低 | 低 | 数据加载/CPU瓶颈 |
- 超过95%:内存不足的风险
- 持续增加:可能的内存泄漏
温度
温度是GPU健康状况的最直接指标。GPU在高性能下消耗大量电力,因此会产生相当大的热量。如果这些热量没有得到适当控制,不仅会导致性能下降,还可能损坏硬件。大多数数据中心GPU的正常工作温度范围在50°C到80°C之间。
Temperature standards:| Temperature | Status | Recommended action |
|---|---|---|
| < 70°C | 正常 | - |
| 70–80°C | 良好 | - |
| 80–85°C | 注意 | 检查冷却 |
| 85–90°C | 警告 | 开始软件限速 |
| ≥ 90°C | 危急 | 硬件限速,需立即采取行动 |
- 冷却风扇故障或灰尘积累
- 服务器机房环境温度上升
- 节点内GPU之间的热干扰(同时重负载)
电力使用
功耗显示了GPU当前使用的电力(以瓦特为单位)。每个GPU型号都有一个额定功率限制;例如,NVIDIA A100的默认功率限制为400W,管理员可以通过软件调整此限制。
-
Purposes of power monitoring:
- 性能限制检测:如果功耗超过功率限制的95%,则GPU可能会受到功率限制。
- 成本控制:识别功耗高的低效GPU。
- 硬件问题检测:检测异常的功耗模式。
-
Analysis points:
- 低GPU利用率 + 高功耗 = 低效(内存传输开销)
- 高GPU利用率 + 高功耗 = 正常(GPU在全负荷工作)
时钟节流
GPU的操作基于其时钟速度,类似于CPU。时钟速度越高,每秒可以执行的计算越多。然而,GPU并不总是以其最大时钟速度运行。为了管理功耗和温度,GPU动态调整其时钟——这个过程称为时钟节流。
时钟节流可能由于各种原因发生,每种原因都有不同的含义。了解系统记录的时钟节流原因非常重要。
| Throttle Type | Meaning | Severity | Recommended Action |
|---|---|---|---|
| GPU空闲 | 空闲状态 | 正常 | 无 |
| SW功率上限 | 管理员设置的功率限制 | 正常 | 意图限制 |
| SW热量 | 温度 > 85°C | 注意 | 审查冷却改进 |
| HW热量 | 温度 > 90°C | 危急 | 立即检查冷却 |
| HW功率制动 | 瞬时功率过载 | 警告 | 检查电源 |
| 监控节流事件的频率非常重要。偶尔的节流是正常的,但如果频繁或持续发生,则应解决潜在原因。系统跟踪时钟节流事件的数量,因此如果这个数字迅速增加,可能需要进一步调查。 |
SM 活动
SM 代表流式多处理器,它是 GPU 内部的核心计算单元。单个 GPU 可能有数十到数百个 SM,每个 SM 由多个核心组成。SM 活动指示这些 SM 执行计算的活跃程度。
与整体 GPU 利用率相比,SM 活动提供了更细粒度的洞察。虽然 GPU 利用率显示 GPU 的使用时间百分比,但 SM 活动指示在操作期间实际使用的核心数量。例如,80% 的 GPU 利用率并不一定意味着每个 SM 都在 80% 的负载下运行;一些 SM 可能在 100% 运行,而其他 SM 则处于空闲状态。
Recommended Range:- 对于分配的 GPU:超过 50%(理想情况下超过 75%)。
- 低 SM → 缺乏并行性 → 增加批量大小或应用模型并行化
ECC 错误
ECC 代表错误更正码,这是一种自动检测和纠正 GPU 内存中位错误的技术。大多数数据中心级 GPU 配备了 ECC 内存,以确保数据完整性。ECC 对于准确性至关重要的工作负载是必不可少的,例如 AI 训练或科学计算。
ECC 错误有两种类型。单比特错误(SBE)发生在只有一个比特不正确时;ECC 可以自动纠正这一点。偶尔出现的 SBE 是正常的,可能由于宇宙射线或电噪声自然发生。双比特错误(DBE)发生在两个或更多比特不正确时;ECC 无法纠正这一点。DBE 可能导致数据损坏或系统故障。 监控ECC错误对于跟踪内存硬件的健康状况至关重要。如果总ECC错误计数超过1,000,建议考虑更换GPU的内存。ECC错误率的突然增加是内存恶化的强烈迹象。
如果发生即使一个DBE,它被归类为关键事件。受影响的GPU应立即从工作负载中移除并进行检查。这在关键训练任务期间尤其重要,因为DBE可能会使结果不可靠。
Error Types- Single Bit Error (SBE): 自动可修复;偶尔发生是正常的
- Double Bit Error (DBE): 不可修复;可能导致数据损坏
- 总ECC错误 ≥ 1,000:考虑更换GPU内存
- 至少一个DBE:关键状态;立即停止作业并检查GPU
GPU健康评估系统
一旦用户理解每个单独指标的含义,下一步是通过整合这些指标来评估GPU的整体健康状态。该系统不仅仅是呈现原始数字——它分析多个指标并将每个GPU分类为六个级别,使管理员和用户能够轻松一目了然地评估GPU的状态。
状态级别
每个GPU都被评估并分类为六个状态级别之一。这些状态是颜色编码的,并显示在仪表板上,使管理员和用户能够快速扫描数十个GPU并立即发现任何问题。
| Status | Color | Meaning | Example |
|---|---|---|---|
| 优秀 | 绿色 | 最佳性能 | 利用率90%,温度65°C |
| 良好 | 绿色 | 正常运行 | 利用率60%,温度75°C |
| 不佳 | 黄色 | 次优性能 | 利用率30%,需要调整 |
| 差 | 橙色 | 严重低效 | 利用率10%,需立即检查 |
| 警告 | 橙色 | 警告状态 | 温度 87°C,检测到节流 |
| 严重 | 红色 | 需要立即采取行动 | 温度 92°C,XID 错误 |
- Excellent: 这是最佳状态,所有操作都理想。分配的 GPU 正在高效地执行任务,温度较低,所有指标均在最佳范围内。以绿色显示,用户可以安心工作。对于管理员来说,大部分集群处于优秀状态表明基础设施健康。
- Good: 这是一个正常且健康的操作状态。所有指标均在可接受范围内,尽管没有优秀状态那么优化。例如,60% 的 GPU 利用率符合推荐水平,但未达到理想的 75%。同样以绿色显示,没有问题,但仍有改进的空间。
- Bad: 该状态表示性能不足。GPU 已分配但未被有效使用;例如,利用率仅为 30% 或内存使用量很小。以黄色显示,提示用户优化其工作负载。成本被浪费,但没有立即风险。
- Poor: 这是一个非常低性能的状态,甚至比差状态更低效。当 GPU 利用率低于 10% 或 GPU 已分配但几乎没有工作时会发生这种情况。以橙色显示,该状态需要立即调查。可能是代码中存在错误,操作失败但 GPU 仍然被分配,或者开发人员忘记释放 GPU。