← 返回列表
未验证
一个用于 DeepSeek Harness Web 的远程多服务器 GPU 状态面板:只需一眼即可查看所有可通过…
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/18 · 已提供中文文档
综合分
28.4
GitHub 分
28.4
用户评分
—
★ Stars
2
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add sshhhll002/dsh-remote-gpu-monitoring该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
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
扫码进群