Replies: 2 comments 1 reply
|
0 replies
|
根因确认是上游的:默认 web 组合把
链接:github.com/zoahdev/dsh-shelf · github.com/zoahdev/dsh-trace · github.com/zoahdev/dsh-plugin-doctor 这三个不修根因(那是上游要重新挂回护栏),但能把「无感增长 → 硬冻结」变成「告警 → 归档」。 |
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
现象
在 2~4 vCPU 的虚拟机上运行
dsh web,同一个会话连续使用约 90 分钟后:node 后端(监听 3080)CPU 单调爬升直至占满全部核,随后整个虚拟机硬冻结(ssh、vmtools 均无响应),只能强制断电重启。4 核同样复现,仅推迟冻结时间。已排查 nginx 反代与宿主环境非根因。关键实测数据(nginx access.log):
会话历史一天内从 37KB 膨胀到 9.8MB,且每次页面刷新/断线重连都全量重拉、无缓存无增量。
复现步骤
npx @deepseek-ai/dsh web启动(0.1.0-rc.5;npm 0.1.0-rc.6 已对比构建产物,代码相同);浏览器打开 Web UI;nginx 反代(3443 → 127.0.0.1:3080,proxy_buffering off、长超时,SSE/WS 直通)。90 分钟:每次 prompt 间隔 15 分钟,任务包含大工具输出(如read大文件、bash输出长日志)。top/mpstat):POST /api/session.history响应体随会话增长从 KB 级涨到数 MB,且每次刷新/重连全量重拉;%CPU随时间单调爬升、不回落,si(软中断)占比随之升高。journalctl显示日志中途戛然而止、无正常关机序列。疑似根因(供维护者核对,均在仓库代码中定位)
packages/core/agent-loop/src/invariant.ts:31-49:每次模型调用(每个 step)对整段消息历史做两次全量JSON.stringify比较,成本 O(会话规模),违背项目自身的增量派生设计;packages/context/agent-instructions/src/index.ts:43-59:每个 pre-step 对surface.nodes.toReversed()全量遍历(默认 agent-spine bundle 含此插件);packages/host/apiproxy/src/api-proxy.ts:805,292,744(historyPage/paginate/viewFor):每次 history 请求 O(N) 全量拷贝+扫描,最后 50 条消息经data: z.unknown()(packages/api/remotes/src/sessions.schema.ts:41)逐字透传无截断;packages/host/apiproxy/src/api-proxy.ts:3475-3494(events.mux):每个流式 token 独立成帧、每个连接各自重算viewFor()+ 各自JSON.stringify→ 小帧风暴(si软中断的直接来源);packages/bundle/web-app/cordis.patch.yml:358-365:默认 web 组合把compaction-basic、command-compact、tool-result-pruner(8KB 截断)全部disabled: true(base 层已挂载,packages/bundle/base/cordis.patch.yml:284-290,360-361),注释声称移至 preset 层,但仓库内无任何 preset/patch 将其挂回——默认dsh web= 无自动压缩、无结果截断、无/compact命令。版本核实
0.1.0-rc.6已实测:agent-loop/lib/invariant.js:27-28、agent-instructions/lib/index.js:1061-1063,1200-1201、host-apiproxy的historyPage/z.unknown()均原样存在,未修复;dsh-web-app等 bundle 未发布 npm,仓库 master(HEAD == origin/master)仍禁用守护项。All reactions