sskj/ops/README.md
shishi 6ba04325d3 feat(910c): 部署解耦 - vLLM-Ascend profile 与 deploy 层接管服务启停
- deploy/profiles/910c/ 新增 dsv4/glm52 两个 vLLM-Ascend profile
  (JSON 参数经 BOOTSTRAP base64 注入避开镜像 entrypoint 转义;per-TP 参数
  由 start 脚本导出后经 profile 模板展开)
- dsv4/glm52 start_vllm_docker.sh 改为 deploy 薄包装(保留 sg docker 重入与
  per-TP 覆盖),新增 stop_vllm_docker.sh
- run_bench.sh / run_adaptive_concurrency*.sh 的 stop/build_server_args 改走
  deploy_stop/deploy_render_args
- runtime.py 修复单节点 dry-run 未跳过健康检查的 bug
- ops/README.md 补 910c 章节;.gitignore 补 910c ops_ 输出规则
- 附带入库 910c adaptive 汇总结果
2026-08-03 15:36:11 +08:00

156 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 运维一键测试手册
这份手册只说明怎么**跑测试**。模型部署由模型团队负责,运维不需要理解
SGLang/vLLM 的引擎参数,也不需要执行 `python -m sskj.deploy`
## 0. 准备
```bash
cd /data1/yy/sskj
python3 -m pip install -e . --no-deps
```
如果不想安装,也可以每次执行时加 `PYTHONPATH=src`
```bash
cd /data1/yy/sskj
PYTHONPATH=src python3 -m sskj.bench --help
```
## 1. 查看可测试的实验
```bash
PYTHONPATH=src python3 -m sskj.bench list --platform p800
PYTHONPATH=src python3 -m sskj.bench list
```
## 2. 冒烟测试
```bash
PYTHONPATH=src python3 -m sskj.bench run \
--url http://10.100.11.2:30014 \
--platform p800 \
--experiment dsv4_p800_sglang_tp_dp_matrix \
--profile smoke
```
## 3. 完整矩阵测试
```bash
PYTHONPATH=src python3 -m sskj.bench run \
--url http://10.100.11.2:30014 \
--platform p800 \
--experiment dsv4_p800_sglang_tp_dp_matrix \
--profile matrix
```
`--profile matrix` 使用实验目录里的 `matrix.json`,只测试 `Y` 标记的场景,
每个 ISL 取低/高两个并发档位。
## 4. 先看计划再执行
任何 `run` 命令都可以加 `--dry-run`,只打印 URL、client 模式、场景清单和
结果路径,不发送请求。
## 5. 结果在哪里
结果默认写回实验目录:
```text
experiments/<platform>/<experiment>/results/<run_id>/
├── results.json
├── report.md
├── run_manifest.json
├── raw_outputs/
└── logs/
```
`<run_id>``report.md` 路径发给模型团队即可。
## 6. client 模式
默认自动选择:
| 平台 | 默认 client |
|---|---|
| P800 | `server-container`(进入已部署容器执行,保留厂商 bench_serving |
| H20/H200/6000D | `docker`(独立 sglang client 容器) |
| 910C | `server-container``native`(按实验配置自动选择) |
跨机测试时可用 `--client docker --client-image lmsysorg/sglang:latest`
指定外部 client。
## 7. pro6000RTX 6000D平台说明
实验目录 `experiments/pro6000/`,部署 profile 见 `deploy/profiles/pro6000/`
可测实验:
```bash
PYTHONPATH=src python3 -m sskj.bench list --platform pro6000
# dsv4_pro6000_sglang_tp16 / dsv4_pro6000_sglang_tp16_eagle
# dsv4_pro6000_sglang_tp_dp_matrix / dsv4_pro6000_vllm_tp_dp_matrix
# glm52_pro6000_sglang_multinode_tp16 / qwen3_235b_pro6000_sglang_tp8
```
单节点实验dsv4/vllm tp_dp_matrix、qwen3均 8x RTX 6000D 单机):
```bash
PYTHONPATH=src python3 -m sskj.bench run \
--url http://<head-ip>:30031 \
--platform pro6000 \
--experiment dsv4_pro6000_sglang_tp_dp_matrix \
--profile smoke
```
多节点实验tp16 / tp16_eagle / glm522 台机器 16x RTX 6000D
- head 节点 pro6000D.1`10.101.0.11` / `174.1.51.5`HTTP API 所在)
- worker 节点 pro6000D.3`10.101.0.13` / `174.1.51.7`,纯计算)
- `--url` 固定指向 head 节点端口tp16/eagle: 30000glm52: 30031
bench client 在 head 节点跑worker 由部署层通过 ssh 管理:
```bash
PYTHONPATH=src python3 -m sskj.bench run \
--url http://10.101.0.11:30000 \
--platform pro6000 \
--experiment dsv4_pro6000_sglang_tp16 \
--profile smoke
```
vLLM 实验(`dsv4_pro6000_vllm_tp_dp_matrix`)的 bench client 使用 SGLang
镜像vLLM 镜像不含 bench_serving`DOCKER_CLIENT_IMAGE` 自动选择,
无需额外参数。
## 8. 910cAscend 910C平台说明
实验目录 `experiments/910c/`,部署 profile 见 `deploy/profiles/910c/`
`dsv4_910c_vllm_tp_dp_matrix` / `glm52_910c_vllm_tp_dp_matrix`,均 vLLM-Ascend
服务启停由模型团队通过 deploy 层管理(非 root 用户自动 `sg docker` 重入):
```bash
cd /mnt/yy/sskj
PYTHONPATH=src python3 -m sskj.deploy start --profile 910c/dsv4_910c_vllm_tp_dp_matrix --tp 8 --dp 2
PYTHONPATH=src python3 -m sskj.deploy stop --profile 910c/dsv4_910c_vllm_tp_dp_matrix --tp 8 --dp 2
```
- dsv4: 端口 30052TP×DP ∈ {4 4, 8 2, 16 1}glm52: 端口 30050
- 容器名按 `vllm-ascend-{dsv4,glm52}-910c_tp<TP>_dp<DP>` 自动生成
- 引擎参数唯一来源为 profile含 CANN set_env、JSON 配置经 base64 注入,避开
镜像 entrypoint 转义问题per-TP 的 max-model-len/max-num-seqs 由 start 脚本
按 TP 导出后传入 profile 模板
测试:`sskj.bench` 的 client 在 910c 上受镜像限制vllm-ascend 镜像不带
sglang.bench_serving正式矩阵/自适应测试请使用实验自带
`run_bench.sh` / `run_adaptive_concurrency*.sh`server 启停已统一走 deploy 层);
`sskj.bench` 可用于 `--dry-run` 场景清单核对与连通性验证。
## 9. 常见问题
- 服务不健康:确认 `--url` 的端口可从测试机访问,服务已启动且 `/health` 可通。
- 数据集缺失:仓库 `datasets/` 下没有 ShareGPT 文件时,统一 CLI 会自动退回
`random-ids`,可用于连通性验证;正式矩阵前先放好数据集。
- P95 指标P800 使用容器内 `bench_serving`,解析层会从逐请求数据补算 P95
与旧实验口径一致。
- 不要执行部署命令:`python -m sskj.deploy` 仅模型团队使用。