前言¶
在使用 DeepSeek Harness (DSH) 进行智能体开发或运行时,如果系统配备了多张 NVIDIA 显卡,单纯依赖命令行的 nvidia-smi 或外部监控工具,无法在 Web UI 中直观地查看资源占用。这可能导致资源分配不均或无法及时发现异常。dsh-gpu-monitor-nvml 插件旨在解决这一问题,它将多 GPU 的实时监控面板直接集成到 DSH 的 Web 界面侧边栏中。
这是什么¶
这是一个由 janpauldahlke 维护的插件,专为 DeepSeek Harness 的 Web UI 设计。它的核心价值是在 Web 界面中提供实时的多 GPU 监控,帮助开发者在不离开浏览器的情况下掌握 GPU 的利用率、显存和功耗情况。
核心功能¶
- 实时监控面板:在 DSH Web UI 的右侧边栏新增一个监控 Tab,展示所有 GPU 的状态。
- 高频采样:以 1 Hz (每秒 1 次) 的频率轮询数据,不进行本地存储,保持数据的实时性。
- 可视化图表:每张 GPU 卡提供 2 分钟的走势图(Sparklines),展示利用率、显存和功耗。
- 详细指标:包含 GPU 利用率、显存利用率、显存占用(已用/总量/空闲)、功耗、核心频率、显存频率以及关联进程信息。
- 交互与反馈:每一行指标都有 Tooltip 提示数据来源和含义;当数值超过 95% 时,进度条变红(琥珀色);若数据采集失败,会显示错误备注。
- 数据源切换:支持 Linux 优先 NVML,回退到
nvidia-smi;Windows 优先nvidia-smi,回退到 NVML。 - API 接口:提供
/api/dsh-gpu-monitor接口,导出 JSON 格式的快照。
安装与启用¶
插件安装在本地 dsh web 配置文件中。
- 通过 npm 安装:
dsh plugin --profile web add dsh-gpu-monitor-nvml
- 或者从 GitHub 安装:
dsh plugin --profile web add github:janpauldahlke/dsh-gpu-monitor-nvml
- 安装完成后,重启
dsh web并在浏览器中强制刷新,即可在右侧边栏看到 GPU 监控面板。
验证配置¶
安装后,可以通过以下命令验证插件是否正确加载:
dsh --profile web --dump-config | grep -E 'gpu-monitor|dsh-gpu-monitor-nvml'
并通过 API 验证数据返回:
curl -s http://127.0.0.1:3080/api/dsh-gpu-monitor | head
适用场景与注意¶
- 硬件要求:仅支持 NVIDIA GPU 及其驱动。AMD 和 Intel GPU 不支持。macOS(现代机型)仅支持 Stub,无实际监控功能。
- 平台差异:
- Linux:优先使用 NVML,若不可用则使用
nvidia-smi,并标记smi徽章。 - Windows:当前优先使用
nvidia-smi,若检测到绑定则使用 NVML。
- Linux:优先使用 NVML,若不可用则使用
- 数据语义:NVML 计算的“已用显存”为
总量 - 空闲,包含驱动预留部分,这与nvidia-smi的“已用显存”数值不同,但可通过 Tooltip 理解其含义。 - 诚实性:数据为 1Hz 采样且无存储策略,过时的数据会被标记为 Stale,不会通过平滑处理掩盖延迟。
结语¶
该插件通过轻量级的方式,将 GPU 监控能力注入 DSH 生态。对于需要管理多 GPU 资源的开发者来说,它提供了一种直观且实时的管理手段。