- 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 汇总结果
156 lines
5.1 KiB
Markdown
156 lines
5.1 KiB
Markdown
# 运维一键测试手册
|
||
|
||
这份手册只说明怎么**跑测试**。模型部署由模型团队负责,运维不需要理解
|
||
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. pro6000(RTX 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 / glm52,2 台机器 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: 30000,glm52: 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. 910c(Ascend 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: 端口 30052,TP×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` 仅模型团队使用。
|