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
..

运维一键测试手册

这份手册只说明怎么跑测试。模型部署由模型团队负责,运维不需要理解 SGLang/vLLM 的引擎参数,也不需要执行 python -m sskj.deploy

0. 准备

cd /data1/yy/sskj
python3 -m pip install -e . --no-deps

如果不想安装,也可以每次执行时加 PYTHONPATH=src

cd /data1/yy/sskj
PYTHONPATH=src python3 -m sskj.bench --help

1. 查看可测试的实验

PYTHONPATH=src python3 -m sskj.bench list --platform p800
PYTHONPATH=src python3 -m sskj.bench list

2. 冒烟测试

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. 完整矩阵测试

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. 结果在哪里

结果默认写回实验目录:

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-containernative(按实验配置自动选择)

跨机测试时可用 --client docker --client-image lmsysorg/sglang:latest 指定外部 client。

7. pro6000RTX 6000D平台说明

实验目录 experiments/pro6000/,部署 profile 见 deploy/profiles/pro6000/

可测实验:

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 单机):

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.110.101.0.11 / 174.1.51.5HTTP API 所在)
  • worker 节点 pro6000D.310.101.0.13 / 174.1.51.7,纯计算)
  • --url 固定指向 head 节点端口tp16/eagle: 30000glm52: 30031 bench client 在 head 节点跑worker 由部署层通过 ssh 管理:
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_servingDOCKER_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 重入):

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*.shserver 启停已统一走 deploy 层); sskj.bench 可用于 --dry-run 场景清单核对与连通性验证。

9. 常见问题

  • 服务不健康:确认 --url 的端口可从测试机访问,服务已启动且 /health 可通。
  • 数据集缺失:仓库 datasets/ 下没有 ShareGPT 文件时,统一 CLI 会自动退回 random-ids,可用于连通性验证;正式矩阵前先放好数据集。
  • P95 指标P800 使用容器内 bench_serving,解析层会从逐请求数据补算 P95 与旧实验口径一致。
  • 不要执行部署命令:python -m sskj.deploy 仅模型团队使用。