[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”的转换和发送。

相关新闻

内景 Bangkaeni寺庙内部

内景 Bangkaeni寺庙内部

本项目为前几天收费帮学妹做的一个项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 Bangkaeni寺庙内部 地址:本地PC端运行(或WebGL端部署链接&a…

2026/9/29 19:56:34 阅读更多 →
出国自驾必看:驾照翻译的收费标准是什么?线上线下收费差距对比

出国自驾必看:驾照翻译的收费标准是什么?线上线下收费差距对比

准备出国自驾,头一道坎就是搞定驾照翻译件。打开手机一搜,价格从几十块到几百块都有,看得人眼花缭乱。别急着下单,这篇文就把驾照翻译的费用构成、办理渠道和注意事项给你掰开揉碎了讲清楚,让你钱花得明白,…

2026/10/10 18:09:29 阅读更多 →
2026 编码智能体三强对比:Trae/Qoder CN/CodeBuddy 安全护栏

2026 编码智能体三强对比:Trae/Qoder CN/CodeBuddy 安全护栏

摘要:2026 年 8 月,AI 编码智能体进入「Vibe Coding 三巨头」格局——字节 Trae 3.0、阿里 Qoder CN(原通义灵码)、腾讯 CodeBuddy 4.10.0 同台竞技。本文给出一套可收藏的选型框架:先用「Vibe Coding 三边界」界定适用…

2026/10/13 15:24:05 阅读更多 →

最新新闻

M4A转MP3批量转换工具:FFmpeg参数调优与避坑指南

M4A转MP3批量转换工具:FFmpeg参数调优与避坑指南

简介:这是一款面向音频爱好者与日常办公用户的M4A转MP3格式转换工具,主要解决M4A文件在非Apple设备或较旧播放器上兼容性不足的问题,让音乐库能在更多终端顺畅播放。压缩包共2个文件,包含1个exe可执行程序与1个htm说明文档&#x…

2026/10/14 15:11:59 阅读更多 →
gem-0.2.5-src.zip源码编译指南:从解压到构建的完整流程

gem-0.2.5-src.zip源码编译指南:从解压到构建的完整流程

简介:面向半导体设备与主机通信开发者的JYUGEM开源SEMI SECS协议库源码包,基于ACE框架实现GEM/OBEM模型,支持C和Python双语言调用,可用于SECS消息解析、设备建模与通信调试。压缩包共452个文件,约824KB,以h…

2026/10/14 15:11:59 阅读更多 →
Spring事务管理:原理、实践与优化策略

Spring事务管理:原理、实践与优化策略

1. Spring事务管理基础概念在企业级应用开发中,事务管理是确保数据一致性的核心技术。Spring框架通过声明式事务管理,将我们从复杂的事务API中解放出来。我第一次接触Spring事务是在处理电商订单系统时,当时需要确保库存扣减和订单创建这两个…

2026/10/14 15:11:59 阅读更多 →
从地图到空间智能:高德AI引擎架构与开发者实战全解

从地图到空间智能:高德AI引擎架构与开发者实战全解

几年前我盯着高德地图上的红绿灯倒计时,还以为这不过是个导航App的贴心小功能。直到我参与了一个物流项目的路线规划系统,才真正意识到:那个能推测你几点到家、能预判哪条路更堵的引擎,已经从一张“会更新的照片”变成了一套能理解…

2026/10/14 15:11:59 阅读更多 →
CEF 110 Windows 非官方编译:开启 H.264/AAC 支持本地 MP4 播放

CEF 110 Windows 非官方编译:开启 H.264/AAC 支持本地 MP4 播放

简介:CEF110.0.5481.180 Windows 非官方编译版面向需要在桌面应用中嵌入现代浏览器引擎的开发者,尤其适合构建网页浏览器、媒体中心或在线视频平台等场景。该版本基于 Chromium 110 内核,重点补齐了 MP3 音频、MP4 视频及 H.264 编码支持&…

2026/10/14 15:11:59 阅读更多 →
多模态视觉+云端真机:AI助手从聊天框到实操代理的落地实践

多模态视觉+云端真机:AI助手从聊天框到实操代理的落地实践

1. 从"聊天框套壳"说起:为什么大多数AI助手止步于对话框过去两年,我接触过不下三十个号称"AI助手"的项目,其中绝大多数打开之后就是一个输入框加一个发送按钮,背后调一个通用大模型的API,再套一层…

2026/10/14 15:10:52 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →