dsh-resource-monitor:在 Harness 输入框下方查看 Mac 与 Ollama 资源占用

前言

在 DeepSeek Harness 里跑本地 Ollama 时,CPU、GPU 和内存是否吃满,往往要切到「活动监视器」或单独开终端查 ollama ps。对话界面本身看不到整机负载,也很难判断模型是否仍在内存里、占了多少体量。社区插件 dsh-resource-monitor(维护者 Sad-Jack)把一行紧凑指标挂在消息输入区下方,在同一窗口里对照对话与资源状态。

这是什么

dsh-resource-monitor 是 DeepSeek Harness 的客户端插件,分类为客户端侧能力。它在输入框 dock 区域展示 macOS 上的 CPU、GPU、物理内存、swap,以及本机 Ollama 模型加载状态,不额外弹出面板或曲线图。插件为社区独立作品(MIT 许可证),并非 DeepSeek 官方产品;目录页见 SkillHub 插件页,源码在 GitHub:Sad-Jack/dsh-resource-monitor。

资料中说明:已在 DeepSeek Harness 0.2.1-rc.5、macOS(含 Apple Silicon)上验证;需要 Node.js 20+ 与地址为 http://127.0.0.1:11434 的本地 Ollama。未声明支持其他操作系统或 Harness 版本;GPU 读数依赖驱动,无数据时显示为 —。

核心功能

界面形态是一行文本,例如(数值仅为示意):

Mac   CPU 12%   GPU 34%   RAM 28.4/36.0 GiB   Swap 1.2 GiB   模型: 在内存 · 21.9 GiB   ● 2 s

中文环境下,仓库提供 README.zh.md;本地俄语版 README 提到俄语界面下标签与提示已本地化。

各指标含义如下(与官方 README 表格一致):

指标 含义
CPU 全机所有逻辑核心的占用;100% 表示整机 CPU 打满。悬停提示中会单独列出 Ollama 相关进程树,口径与主行一致。
GPU 来自 IOAccelerator 的 Device Utilization %,含其他应用;多 GPU 取最大值。
RAM 已用物理内存 / 总内存(GiB),由 vm_stat 等估算(含 anonymous、wired、压缩器物理页),不含文件缓存;可能与「活动监视器」略有差异。
Swap 整机已用 swap;高负载结束后仍可能维持一段时间。
模型状态 「在内存」表示至少有一个模型已加载,体积为 Ollama /api/ps 中全部已加载模型的 size 之和(含其他应用加载的模型);不代表正在生成。悬停可看模型名与上下文长度。「未加载」表示 Ollama 可达但无模型在内存;「无数据」表示 Ollama 不可达或读失败,此时 Mac 指标仍刷新。
RAM 颜色 / 圆点 反映 macOS kern.memorystatus_vm_pressure_level(正常 / 升高 / 临界),高占用比例本身不必然变红。

Apple Silicon 上 CPU 与 GPU 共享内存;RAM、模型占用、RSS、size_vram 不应简单相加。模型体积是 Ollama 的估计,不是独立测得的物理内存;Ollama 进程按可执行文件 ollama 及其子进程识别。

数据采集与隐私(README 原文要点):

  • 行可见且文档在前台时约 每 2 秒 更新;支持 visibilitychange 时,不可见则暂停轮询。多会话共用一次客户端轮询,服务端缓存共享采样,无后台服务端定时器。
  • 读取 vm_stat、sysctl、ioreg、ps 与本地 Ollama /api/ps;单源失败不隐藏其余指标;与 Harness 断连会清空旧数字。
  • 不收集进程命令行参数与对话内容;不触发生成、不代为加载模型;无遥测、无额外监听端口、无需管理员权限、不修改应用构建。
  • 走 Harness 已有连接:若 Harness 跑在远程机器上,数字属于该远程 Mac,而非浏览器所在设备。本版本不可配置 Ollama 的其他地址或端口。

实现上,collector.mjs 负责采集,index.js 注册服务端路由,client.js 通过 conversation.input.dock 渲染行(开发说明,便于理解架构)。

安装与启用

先从仓库安装当前版本到 Harness 配置文件(desktop 或 web)。安装命令以 README 为准:

git clone https://github.com/Sad-Jack/dsh-resource-monitor.git
cd dsh-resource-monitor
dsh plugin --profile desktop add "$PWD"

Web 配置将 desktop 改为 web 即可。README 注明:旧发行 v0.1.1 标签中保留上一版插件形态;package.json 当前列出版本 0.1.1,引擎要求 dsh 0.2.1-rc.5、node >=20。

安装后打开任意对话即可看到该行;若未出现,可在方便时重启 Harness。在 插件 → dsh-resource-monitor 中可禁用或移除。

插件以当前 DSH 进程权限运行;安装前请自行查看源码与 MIT 许可证,确认符合你的环境与安全要求。

典型用法

  1. 在本机安装并启动 Ollama(默认 http://127.0.0.1:11434),再启动 DeepSeek Harness(desktop 或 web profile 与安装时一致)。
  2. 进入对话页,在输入框下方观察 CPU / GPU / RAM / swap 与「模型」字段;需要细节时将指针悬停在对应片段上查看 Ollama 进程树或模型名。
  3. 加载或卸载 Ollama 模型后,观察「在内存 / 未加载 / 无数据」与体积变化,无需离开 Harness。

开发或打包时,仓库提供(无需额外构建依赖即可运行插件本身,React 由 Harness 提供):

npm test
npm run sample
npm pack

适用场景与注意

适合在 macOS + 本地 Ollama + Harness 0.2.1-rc.5 组合下,希望在对话界面持续扫一眼整机与模型内存状态的用户。不适合需要 Windows/Linux、可配置远程 Ollama 地址、或图表化监控的场景——这些在 README 中均未承诺。

再次强调:远程部署 Harness 时,监控的是 运行 Harness 的那台 Mac;浏览器端设备资源不会显示在这一行里。swap 与内存压力指标反映的是 macOS 行为,解读模型占用时不要与活动监视器里的单项简单对齐相加。

结尾

dsh-resource-monitor 用一行 dock 信息把 Mac 资源与 Ollama 加载状态收进 Harness 对话页,轮询本地系统接口与 /api/ps,无额外面板。需要安装步骤与指标细则时,以仓库 README(含 README.zh.md)为准。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜