fix(schedulerclient): node memory_bytes_total no longer ×1e6 (bug-1514)
The apiserver's host max_mem is already in bytes (the worker reads sysinfo().totalram × mem_unit → bytes and passes it through unchanged via controller.capnp), but ListNodes treated it as MB and multiplied by mbToBytes, inflating each node's reported memory to ~8.2e15 (~7.3 PiB). Now reports the raw bytes (~7.7 GiB per node). - httpclient.go: drop ×mbToBytes for node max_mem; clarify mbToBytes is job-submit-path only (job max_mem is never populated → stays 0) - ordermap_test.go: correct assertion that had encoded the buggy value - httpclient_test.go: regression test TestListNodeMemoryBytesKeepsByteUnit - buglog.json: bug-1514 + close-tags for the bug-1494 family (prior session) Also add MCP demo deliverables: - docs/claude-code-demo-guide.md: live Claude Code demo guide (7 scenes) - docs/mcp-demo-design.md: leadership demo design - docs/mcp-demo-run.py: add --slow/--color flags for screen recording Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
bbe8ed3335
commit
06887985b4
7 changed files with 423 additions and 36 deletions
57
src/docs/claude-code-demo-guide.md
Normal file
57
src/docs/claude-code-demo-guide.md
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
# Claude Code + MCP 演示指南(自然语言管理 HPC 集群)
|
||||
|
||||
> 相比录屏视频,直接在 **Claude Code** 里演示更直观:你用人话问,Claude 自动调用
|
||||
> `xce-scheduler` MCP 工具查集群、查作业、诊断 PEND、提交/取消作业。
|
||||
|
||||
## 前置条件
|
||||
|
||||
| 项 | 要求 |
|
||||
|---|---|
|
||||
| MCP 二进制 | `/tmp/xce-mcp`(最新构建,Claude Code 通过它连 apiserver)|
|
||||
| API key | 有效的 mcp_operator key(90 天)|
|
||||
| 环境变量 | 启动 Claude Code **前** export `XCE_API_URL` + `XCE_API_KEY` |
|
||||
| 集群 | t1/t2/t3 3 节点健康,无残留作业 |
|
||||
| 项目目录 | 在 `/home/lchen/code/xce` 下启动(加载 `.mcp.json`)|
|
||||
|
||||
## 启动步骤
|
||||
|
||||
```bash
|
||||
export XCE_API_URL='http://172.31.1.30:8080'
|
||||
export XCE_API_KEY='<mcp_operator key,见 /tmp/xce_apikey>' # 用当前有效 key
|
||||
cd /home/lchen/code/xce
|
||||
claude
|
||||
```
|
||||
|
||||
启动后可用 `/mcp` 确认 `xce-scheduler` 已连接(工具 `scheduler_list_nodes`、`scheduler_submit` 等 15 个)。
|
||||
|
||||
**关键点**:`.mcp.json` 里 `XCE_API_KEY` 用的是 `${XCE_API_KEY}` 环境变量,所以必须在启动
|
||||
Claude Code 的 shell 里 export。没 export 的话 MCP 工具会加载失败或报鉴权错。
|
||||
|
||||
## 演示流程(7 个场景,约 5 分钟)
|
||||
|
||||
按顺序输入以下自然语言即可(工具已预批准,写操作直接执行):
|
||||
|
||||
| # | 提问(直接复制粘贴) | 触发工具 | 亮点 |
|
||||
|---|---|---|---|
|
||||
| 1 | 看看集群现在有哪些节点、资源怎么样 | list_nodes + cluster_metrics | 一句话看集群健康 |
|
||||
| 2 | 列出当前所有作业,特别是排队的 | list_jobs | 作业队列 |
|
||||
| 3 | 帮我看看 pending 的作业为什么还没跑 | pend_reasons | **核心**:PEND 原因直读 |
|
||||
| 4 | 帮我在 xce 队列提交一个 sleep 20 的测试作业 | submit | 自然语言提交 |
|
||||
| 5 | 等刚才那个作业跑完 | wait_job | 阻塞等待并汇报 |
|
||||
| 6 | 我要跑一个科学计算,帮我看看需要多少资源 | suggest_resources | 结合实时负载给建议 |
|
||||
| 7 | 把刚才那个测试作业取消掉 | cancel | 自然语言取消 |
|
||||
|
||||
## 给领导演示的讲解要点
|
||||
|
||||
1. **无需记命令**:作业查询/提交/取消都是日常高频操作,从"背命令+查文档"变成"一句话"。
|
||||
2. **透明**:PEND 原因(配额/资源/匹配)、资源建议都有可读解释,不再黑盒。
|
||||
3. **安全**:MCP 写工具走 RBAC(mcp_operator 角色),Claude Code 会话里也能看到每次工具调用。
|
||||
4. **标准协议**:MCP 是开放标准,工具可扩展,未来可接更多集群运维能力。
|
||||
|
||||
## 注意事项
|
||||
|
||||
- **key 失效**:apiserver 重启会清空内存中的 key,需重新生成(admin JWT → POST /xce/v1/apikeys)。
|
||||
- **演示前清理**:先删历史作业(场景 3 需要一个 PEND 作业才有看头——可临时提交一个超配额作业)。
|
||||
- **模型选择**:当前会话模型为 `deepseek-v4-flash[1m]`(见状态栏),不影响 MCP 功能。
|
||||
- **自动录屏版**:`/tmp/cc_demo_record.sh`(Xvfb + lxterminal + xdotool 自动驱动 7 场景,产出
|
||||
`/tmp/cc-mcp-demo-final.mp4`),适合无法现场演示时用。
|
||||
Loading…
Add table
Add a link
Reference in a new issue