发布时间:2026/8/14 23:33:59
[NVSentinel] gpu-health-monitor模块调研 [NVSentinel] gpu-health-monitor模块调研health-monitors/gpu-health-monitor/gpu_health_monitor/是gpu-health-monitor的 Python 包源码。它的职责是连接 DCGM周期性读取 GPU 健康状态把 DCGM health incident 转成 NVSentinelHealthEvent再通过 Unix socket 发给platform-connector。整体运行链路是gpu_health_monitor CLI - 读取 config.ini / dcgmerrorsmapping.csv / NODE_NAME - 启动 Prometheus metrics server - 创建 DCGMWatcher - DCGMWatcher 连接 DCGM hostengine - 周期性 dcgm_group.health.Check() - PlatformConnectorEventProcessor 转换为 HealthEvent - gRPC over UDS 发给 platform-connector目录结构cli.py是入口。pyproject.toml里定义了命令gpu_health_monitor gpu_health_monitor.cli:cliDaemonSet 里实际执行的是gpu_health_monitor --config-file ... --dcgm-addr ... --dcgm-error-mapping-config-file ...它负责读取参数、读取 Helm 生成的config.ini、加载 DCGM error 到 RecommendedAction 的映射、初始化日志和 metrics然后启动DCGMWatcher。DCGM (NVIDIA Datacenter GPU Manager) │ 定期轮询 health check ▼ DCGMWatcher ──callback──▶ PlatformConnectorEventProcessor │ │ gRPC over UDS │ ▼ Prometheus 指标 platform-connector → fault-quarantine (cordon / drain / reset …)dcgm_watcher/是 DCGM 采集核心types.py定义内部数据结构比如HealthStatus、HealthDetails、ErrorDetails、CallbackInterface。dcgm.py连接 DCGM创建包含 GPU/NVSwitch entity 的 DCGM group调用dcgm_group.health.Set(DCGM_HEALTH_WATCH_ALL)和dcgm_group.health.Check()。它会把 DCGM incident 按 watch 分类比如DCGM_HEALTH_WATCH_PCIE、DCGM_HEALTH_WATCH_NVLINK、DCGM_HEALTH_WATCH_MEM等。它还支持 field monitor目前有GpuThermalMarginWatch读取 DCGM field 153DCGM_FI_DEV_GPU_TEMP_LIMIT结合 metadata 中的 slowdown T.Limit 判断 thermal margin 是否低于阈值。platform_connector/是事件转换和发送层platform_connector.py实现PlatformConnectorEventProcessor它是DCGMWatcher的 callback。它把 DCGM watch 名转成 CheckName例如DCGM_HEALTH_WATCH_PCIE-GpuPcieWatch。它构造HealthEvent字段包括agentgpu-health-monitor、componentClassGPU、checkName、isFatal、isHealthy、errorCode、entitiesImpacted、recommendedAction。它通过HealthEventOccurredV1gRPC 接口发给platform-connector。它有本地 cache避免同一个 GPU 同一个 active error 每轮重复发送只有新错误或恢复时才发事件。如果 platform-connector socket 不存在它不会更新 cache下一轮会重新尝试发送。metadata/reader.py读取 GPU metadata 文件默认来自/var/lib/nvsentinel/gpu_metadata.json它提供get_gpu_uuid(gpu_id)get_pci_address(gpu_id)get_slowdown_tlimit_c(gpu_id)get_chassis_serial()这些用于丰富HealthEvent.entitiesImpacted。尤其COMPONENT_RESET需要GPU_UUID如果 metadata 里拿不到GPU_UUID/PCI它会把 action 从COMPONENT_RESET降级成RESTART_VM避免 node-drainer/fault-remediation 后面做 partial GPU reset 时缺实体信息。protos/是生成的 protobuf Python 文件对应HealthEvent、PlatformConnectorgRPC client 等。业务代码里通过这些类构造HealthEvent并调用PlatformConnectorStub.HealthEventOccurredV1。metrics.py、dcgm_watcher/metrics.py、platform_connector/metrics.py是 Prometheus metrics 定义分别覆盖 feature flag、DCGM API latency/failure、发送到 UDS 成功/失败、active events 等。logger.py配置结构化 JSON 日志给日志统一加modulegpu-health-monitor和版本号。它具体监控什么它使用 DCGM 的健康 watchDCGM_HEALTH_WATCH_ALL所以会覆盖 DCGM 支持的 GPU/NVSwitch 健康类别例如 PCIe、NVLink、memory/ECC、thermal、power、driver、NVSwitch 等。DCGM 返回 incident 后dcgm.py会提取watch/system 类型GPU entity idDCGM error codeerror message然后platform_connector.py根据dcgmerrorsmapping.csv把 DCGM error code 映射成RecommendedAction比如DCGM_FR_VOLATILE_DBE_DETECTED - COMPONENT_RESET DCGM_FR_VOLATILE_SBE_DETECTED - NONE DCGM_FR_NVLINK_DOWN - RESTART_VM DCGM_FR_THERMAL_VIOLATIONS - CONTACT_SUPPORT如果找不到映射默认CONTACT_SUPPORT。部署关系Helm chart 会把这些配置挂进去config.inipoll interval、socket path、启用的 event processor、field monitoring 开关dcgmerrorsmapping.csvDCGM error - RecommendedAction 映射/var/run/nvsentinel.sockplatform-connector UDS socket/var/lib/nvsentinel/gpu_metadata.jsonmetadata collector 生成的 GPU 元数据镜像基于 NVIDIA DCGM runtime image 构建所以容器内有 DCGM Python binding。Dockerfile 会构建 Python wheel然后安装到 DCGM runtime 镜像中。一句话总结这个目录就是gpu-health-monitor的运行时主体负责“DCGM 健康检查 - NVSentinel HealthEvent - platform-connector”的转换和发送。

相关新闻

2026/8/14 23:28:59

2027具身智能机器人技术展官方聚焦国家战略:

2027具身智能机器人技术展官方聚焦国家战略: 人形机器人、智能低空装备、高端智能制造是我国高端装备制造领域的重点国家战略发展赛道,2027具身智能机器人技术展(赛逸展)精准聚焦这三大核心方向,推出六大全新专业主题展…

2026/8/15 2:34:10

MathorCup数学建模竞赛C题:资源调度与路径优化建模与求解全攻略

1. 项目概述:从赛题到解题思路的完整拆解又到了一年一度的MathorCup数学建模竞赛季,对于很多数学建模爱好者,尤其是第一次参赛的同学来说,拿到赛题后最头疼的往往不是具体计算,而是如何从一堆看似复杂的数据和描述中&a…

2026/8/15 2:34:10

DataGrip数据库管理工具:从安装配置到高效使用的完整指南

1. 项目概述:为什么是DataGrip?如果你经常和数据库打交道,无论是MySQL、PostgreSQL、Redis还是MongoDB,那你一定经历过在多个客户端工具之间反复横跳的痛苦。每个数据库一个专用工具,界面不统一,快捷键各异…

2026/8/15 2:34:10

锐捷交换机运维必备:十大核心命令构建分层排查体系

1. 项目概述:为什么需要掌握这些命令?如果你是一名网络工程师,或者正在管理一个使用锐捷交换机的网络环境,那么“迷路”的感觉你一定不陌生。我说的“迷路”,不是物理上的,而是在面对一台交换机时&#xff…

2026/8/15 2:34:10

IntelliJ IDEA中Java程序包不存在问题的排查与解决指南

1. 问题现象与本质:为什么“包确实存在”却“找不到”?如果你在IntelliJ IDEA里写Java代码,特别是用Maven或Gradle管理依赖时,大概率遇到过这个让人血压飙升的报错:Java: 程序包xxxx不存在。更气人的是,你点…

2026/8/15 2:34:10

编程入门实战:从分数到等级映射的完整实现与优化

1. 项目概述:从分数到等级的映射逻辑 最近在辅导几个刚入门编程的学生,发现他们练习最多的题目之一,就是“根据分数输出等级”。这个需求听起来简单得不能再简单了:输入一个分数,程序自动告诉你这是A等还是B等。但就是…

2026/8/15 2:29:09

OpenClaw架构解析:AI工程化实战中的工作流编排与算子设计

1. 项目概述:为什么OpenClaw是AI工程师的“实战教科书”?最近在AI工程化社区里,OpenClaw这个名字的讨论热度持续攀升。如果你是一名AI工程师,或者正朝着这个方向努力,却感觉学了一堆算法理论,一到实际部署、…

2026/8/14 4:27:24

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/14 4:27:24

当 LLM 遇见大文档:主流开源项目如何处理上下文超限

从 Agentic Loop 到 Repo Map,七种策略与六类陷阱引言:128K vs 10MB 的硬冲突 2026 年的 LLM 上下文窗口已达到 128K ~ 1M token(≈ 0.5MB ~ 4MB 文本),但 LLM 想要处理的真实数据规模远远超过这个量级:真实…

2026/8/15 0:04:00

AI 电动婴儿车智能功率 辅助控制、电源管理的完整选型方案

2026年随着 AI 技术在电动孕婴童用品中的深度渗透(如智能避障、自适应速度控制、能量回收),电动婴儿车对功率器件提出更高要求:高效率、小型化、低功耗、高可靠性。微碧半导体(VBsemi)基于 Trench 及 SGT 工…

2026/8/15 0:04:00

论文AIGC检测不达标完整教程!低门槛用5款工具逐步复检!

论文提交前自己先查一遍AI率,是2026年毕业生的常规动作。学校要求论文AI率低于30%,乃至于20%才能答辩… 很多同学发现一个尴尬的事情:同一篇论文,知网查出来AI率35%,维普查可能是48%,大雅、朱雀又是另外的数…

2026/8/14 4:27:24

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/14 4:27:24

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/14 4:27:24

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…