sskj/experiments/dsv4_h200_sglang_vs_vllm
yy-fighting 0bb8adf2d9 feat: add SLO status field to per-backend reports and results.json
- parse_backend.py for sglang_vs_vllm and dspark_vs_default:
  - compute slo_status per scenario (TTFT P95 < 3000ms, TPOT mean < 50ms)
  - append slo_status to results.json
  - add SLO column to report.md
- BENCHMARK_WORKFLOW.md documents slo_status in schema and checklist
2026-07-08 08:28:37 +00:00
..

DSV4 H200 SGLang vs vLLM 对比实验

在 8x NVIDIA H200 上,用统一控制变量对比 SGLang 与 vLLM serving DeepSeek-V4-Flash。

设计原则

  • 两个 backend 都使用 TP=8,绑定全部 8 张卡。
  • 压测客户端统一使用 sglang.bench_serving
  • 场景矩阵、并发、输入/输出长度、请求数对两个 backend 完全一致。
  • 每个 phase 启动 server 后先做 warmup再跑正式压测。
  • 短上下文和长上下文分阶段启动 server避免 max-model-len / max-num-seqs 显存冲突。
  • 每次 server 启动的完整命令行参数会写入 results/<RUN_ID>/<backend>/results.jsonconfig.phase1_server_args / config.phase2_server_args,方便在 P800 等其他平台复现时保持参数一致。

场景矩阵

Phase 1短上下文吞吐max_model_len=32k

Concurrency Input Output Num prompts
1 512 256 32
32 512 256 128
128 512 256 128
1 4000 512 32
32 4000 512 64

Phase 2长上下文max_model_len=210k

Concurrency Input Output Num prompts
1 32768 1024 8
1 65536 1024 4
1 131072 1024 2
1 200000 1024 1

ShareGPT 真实对话数据max_model_len=32k

Concurrency ShareGPT context len Output Num prompts
1 32768 256 32
32 32768 256 128

使用 datasets/ShareGPT_filtered_chat.json--sharegpt-context-len 32768 会自动过滤超长请求。

快速运行

bash experiments/dsv4_h200_sglang_vs_vllm/run_bench.sh

结果保存在 experiments/dsv4_h200_sglang_vs_vllm/results/<RUN_ID>/

results/<RUN_ID>/
├── sglang/
│   ├── results.json
│   ├── report.md
│   └── raw_outputs/      # gitignored
├── vllm/
│   ├── results.json
│   ├── report.md
│   └── raw_outputs/      # gitignored
├── comparison.md
└── logs/

文件说明

文件 作用
config.env 公共配置:模型路径、端口、场景矩阵、虚拟环境
start_sglang.sh 按 phase 启动 SGLang server
start_vllm.sh 按 phase 启动 vLLM server
run_bench.sh 总 orchestrator跑 SGLang → 跑 vLLM → 生成对比报告
warmup.py sglang.bench_serving 发送少量预热请求
parse_backend.py 解析单个 backend 的 raw jsonl 为 results.json + report.md
compare.py 读取两个 backend 的 results.json,生成 comparison.md

环境

  • SGLM server: /data/user1/yy/envs/sglang
  • vLLM server: /data/user1/yy/envs/vllm
  • Benchmark client: /data/user1/yy/envs/sglang(统一用该环境的 sglang.bench_serving