🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

远程 GPU 监控 sshhhll002/dsh-remote-gpu-monitoring

DeepSeek Harness
sshhhll00278 天前有提交已提供中文文档扫描:含敏感能力

一眼查看多台 SSH 服务器的显卡占用与空闲情况

28.4/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add sshhhll002/dsh-remote-gpu-monitoring
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/09/25·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 78 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 4 处,展示前 4 条)
  • 读取本地文件
    index.js:47
    try { entries = readdirSync(dir) } catch { return [] }
  • 读取本地文件
    index.js:51
    .filter((f) => { try { return statSync(f).isFile() } catch { return false } })
  • 读取本地文件
    index.js:63
    try { text = readFileSync(file, 'utf8') } catch { return }
  • 发起网络请求
    client.js:77
    const res = await fetch('/api/remote-gpu', body === undefined ? undefined : {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 查看多台服务器显卡占用
  • 查看显卡空闲情况
  • SSH服务器监控

README

由 DeepSeek 最新模型翻译生成
dsh-remote-gpu-monitoring 一个用于 DeepSeek Harness Web 的远程多服务器 GPU 状态面板:只需一眼即可查看所有可通过 SSH 访问的 GPU 服务器,就在侧边栏中——一个可折叠面板加上 agent 工具。 ● Remote GPU · 3/4 free (sidebar foot entry, collapsible) ┌────────────────────────────────────────┐ │ Remote GPU [⚙][↻][✕] │ │ ● gpu-a 1/1 free │ │ GPU0 RTX 4090 22.7/24.0G 0% 32°C 58W│ │ ● gpu-b 0/2 free │ │ GPU0 RTX 3090 23.5/24.0G 11% 52°C 96W│ │ GPU1 RTX A6000 10.0/48.0G 2% 40°C 45W│ └────────────────────────────────────────┘ 为什么需要它 监控一组机器通常意味着逐个 ssh 登录每台机器并手动运行 nvidia-smi。这个插件把它变成一个由所有浏览器会话共享的实时面板,并带有可供模型直接回答的缓存快照——因此“哪台服务器有空闲显卡?”只需一次工具调用,而不是七次 SSH 往返。
展开完整文档(README 剩余 1 节)
dsh-remote-gpu-monitoring

一个用于 DeepSeek Harness Web 的远程多服务器 GPU 状态面板:只需一眼即可查看所有可通过 SSH 访问的 GPU 服务器,就在侧边栏中——一个可折叠面板加上 agent 工具。

● Remote GPU · 3/4 free (sidebar foot entry, collapsible) ┌────────────────────────────────────────┐ │ Remote GPU [⚙][↻][✕] │ │ ● gpu-a 1/1 free │ │ GPU0 RTX 4090 22.7/24.0G 0% 32°C 58W│ │ ● gpu-b 0/2 free │ │ GPU0 RTX 3090 23.5/24.0G 11% 52°C 96W│ │ GPU1 RTX A6000 10.0/48.0G 2% 40°C 45W│ └────────────────────────────────────────┘

为什么需要它

监控一组机器通常意味着逐个 ssh 登录每台机器并手动运行 nvidia-smi。这个插件把它变成一个由所有浏览器会话共享的实时面板,并带有可供模型直接回答的缓存快照——因此“哪台服务器有空闲显卡?”只需一次工具调用,而不是七次 SSH 往返。

功能特性

- 一个面板,所有服务器——对每台主机执行固定的只读 nvidia-smi 查询:每张卡的型号、显存、利用率、温度和功耗,并按阈值进行颜色编码。混合 GPU 的服务器也没问题——每张卡都会单独标注。
- 零配置——启动时解析 ~/.ssh/config(Include、通配符、带引号的别名),并监视每个具体别名;Host 模式和 ! 否定会被跳过。
- 按服务器选择——⚙ 视图会列出所有发现的主机;未勾选的服务器会从面板中消失,并立即停止采集。
- 设计上安全——只有 Host 进程会打开 SSH:BatchMode=yes、仅公钥、一条固定的只读命令。任何用户输入都不会到达远程端,也不存在任意命令工具。私钥永远不会离开你的 ~/.ssh/config / agent。
- 设计上低成本——所有浏览器会话共享一个主机端缓存;按主机复用 ControlMaster socket(每次刷新无需握手);单飞、错峰采集和指数退避。
- Agent 工具——gpu_overview(缓存快照,零 SSH 开销)和 gpu_refresh(立即执行一次采集)。

安装

dsh plugin --profile web add github:sshhhll002/dsh-remote-gpu-monitoring # from GitHub
dsh plugin --profile web add dsh-remote-gpu-monitoring # from npm, once published
dsh --profile web # restart dsh, then refresh the page
插件通过安装启用:出现在配置文件的 bundle 列表中即为开关。重启一次,然后侧边栏条目、面板和工具会随应用一起出现。

工作原理

browser panel ──GET/POST /api/remote-gpu──▶ host cache ◀──ssh── your servers
(ControlMaster, fixed read-only
nvidia-smi, 5s refresh)

- Host 进程是唯一与服务器通信的组件;每个浏览器会话读取相同的缓存快照。
- 每台主机的 ControlMaster socket 在刷新之间保持,因此 5 秒一次的 tick 只是在现有连接上执行一次简单 exec,而非握手。
- 连接详情(HostName、端口、密钥、跳板主机)始终来自你的 ~/.ssh/config,并在每次探测时重新读取;只有别名列表在启动时发现一次。
- 面板唯一的写入是选择集;未选中的主机会完全停止被查询。

配置

以下全部为可选。该行默认附带 hosts: 'auto'(发现 ~/.ssh/config 中的每个具体别名)。若要改为监视显式列表,请在配置文件的 cordis.patch.yml 中覆盖该行:

- id: remote-gpu-monitoring
name: dsh-remote-gpu-monitoring
config:
hosts: ['gpu-a', 'gpu-b', 'train-01']

所有行配置键都会合并到默认值之上:

| 键 | 默认值 | 含义 |
| hosts | 'auto' | 'auto' = ~/.ssh/config 中的每个具体别名,或别名的 string[] |
| intervalMs | 5000 | 每台主机的采集间隔 |
| sshTimeoutMs | 9000 | 每次探测的超时时间 |
| busyMemPct | 80 | 显存百分比达到或超过此值时,显卡计为忙碌 |
| busyUtilPct | 50 | 利用率百分比达到或超过此值时,显卡计为忙碌 |
| noGpuRetryMs | 300000 | 无 GPU 主机的重新探测频率 |
| backoffBaseMs / maxBackoffMs | 5000 / 60000 | 失败退避递增 |

要求

- 服务器可通过系统 ssh 客户端使用密钥认证访问(即 ssh … 无需密码提示即可运行),别名位于 ~/.ssh/config 中。
- 每台 GPU 服务器上都有 nvidia-smi。没有它的主机会被检测到并从面板中隐藏(会定期重新探测)。

故障排除

| 症状 | 修复 |
| 某台主机显示红色错误行 | 面板会打印确切的 ssh 错误。请验证从运行 dsh 的机器上,ssh 'nvidia-smi' 能以非交互方式运行。 |
| 某台主机被标记为 no GPU | 该主机未安装 nvidia-smi,或该别名不是 GPU 机器。在 ⚙ 中取消勾选;它每 5 分钟会被重新探测。 |
| 新别名未出现 | 发现过程在启动时运行——编辑 ~/.ssh/config 后请重启 dsh。 |
| 面板为空 | 未发现任何具体别名;请检查 ~/.ssh/config 是否存在且包含 Host 条目(像 Host 这样的模式按设计会被忽略)。 |
| 更改未显示 | 插件集和配置更改在 dsh 重启后生效,然后刷新页面。 |

开发这里刻意没有构建步骤:index.js 是宿主部分(纯 ESM,导出 inject + apply),client.js 是预构建的 __ModuleLoader__ 工厂包(仅依赖 react)。编辑任一文件,重启 dsh,刷新即可。

卸载 / 更新

dsh plugin --profile web update dsh-remote-gpu-monitoring # 拉取更新版本
dsh plugin --profile web remove dsh-remote-gpu-monitoring # 卸载

安全说明

- 远程命令是固定的:nvidia-smi --query-gpu=index,name,memory.used,memory.total,utilization.gpu,temperature.gpu,power.draw,power.limit --format=csv,noheader,nounits。它是只读的,且从不根据用户输入构建。
- 该插件不读取私钥,也不存储凭据——它将一切委托给你现有的 ssh 配置。
- 可选加固:将每台服务器上的密钥限制为仅执行此查询:
command="nvidia-smi --query-gpu=... ",restrict ssh-ed25519 AAAA...

许可证

MIT
预览分享卡片长什么样 ↓sshhhll002/dsh-remote-gpu-monitoring
分享 · DeepSeek Harness Hub
sshhhll002/dsh-remote-gpu-monitoring

一眼查看多台 SSH 服务器的显卡占用与空闲情况

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部