目录

BigFlow-MaaS v2.1.0

BigFlow-MaaS 是面向多模型 MaaS 混部场景的 OpenAI 兼容推理网关。系统在一个中央有界队列中完成 SLO/成本感知调度,通过负载感知路由和每后端 AIMD 准入控制协调 vLLM 服务,并提供 GPU 显存准入、生命周期管理、Prometheus 指标与 Dashboard。

真实结论边界:仓库包含 RTX 4090 上的真实双模型实验。五次固定 Trace 网关模式 A/B 显示吞吐量提升 **59.67%**、P50 降低 **62.21%**、Benchmark SLO 达到 **100%**;同时 P95/P99 分别回退 **37.10%/69.53%**。按项目既定加权几何平均计算,综合提升为 **7.84%**,没有达到 25% 目标。

BigFlow 架构

已验证结果

实验采用相同 500 请求 Trace、客户端并发 40、泊松到达率 50 req/s,Baseline 和 Optimized 各运行 5 次。表中 ± 为两侧 95% Student-t 置信区间半宽。

指标 Baseline 均值 Optimized 均值 变化
吞吐量 19.50 ± 0.29 req/s 31.13 ± 2.86 req/s +59.67%
P50 1.943 ± 0.072 s 0.734 ± 0.139 s -62.21%
平均延迟 1.925 ± 0.020 s 1.128 ± 0.127 s -41.39%
P95 2.971 ± 0.145 s 4.074 ± 0.785 s +37.10%(回退)
P99 3.444 ± 0.164 s 5.838 ± 0.487 s +69.53%(回退)
Benchmark SLO 89.56% ± 5.78 pp 100.00% +10.44 pp
成功率 100% 100% 持平
加权综合分 1.000 1.0784 +7.84%

重复实验吞吐量

重复实验延迟

完整解释见 性能结果最终报告

核心能力

  • OpenAI 兼容 /v1/models/v1/chat/completions/v1/completions 代理;
  • 有界中央队列,支持 FIFO、EDF/SJF 与 aging;
  • 在线服务时间预测,按模型和工作量桶进行 EWMA 校准;
  • 健康后端筛选、负载/时延/GPU/KV 压力路由;
  • 每后端非阻塞 AIMD 容量预留,避免隐藏的后端 FIFO;
  • vLLM Prefix Caching、Chunked Prefill 与请求 Priority 配合;
  • GPU 显存与配额准入、静态/本地后端统一 reservation ledger;
  • SSE 流式透明代理、错误帧、取消和关闭路径;
  • Dashboard、/api/status/metrics 与 Native 生命周期 API。

Native 快速启动(本次实测路径)

环境要求:Python 3.10+、可用 NVIDIA GPU、已安装 vLLM。当前实测版本见 复现说明

1. 启动两个 vLLM 后端

分别在两个终端启动。参数来自 config.gpu.yaml

CUDA_VISIBLE_DEVICES=0 python -m vllm.entrypoints.openai.api_server \
  --model Qwen/Qwen2.5-0.5B-Instruct \
  --served-model-name qwen-0.5b --host 127.0.0.1 --port 8101 \
  --gpu-memory-utilization 0.28 --max-model-len 4096 \
  --max-num-seqs 96 --max-num-batched-tokens 8192 \
  --enable-prefix-caching --prefix-caching-hash-algo sha256 \
  --enable-chunked-prefill --scheduling-policy priority
CUDA_VISIBLE_DEVICES=0 python -m vllm.entrypoints.openai.api_server \
  --model Qwen/Qwen2.5-1.5B-Instruct \
  --served-model-name qwen-1.5b --host 127.0.0.1 --port 8102 \
  --gpu-memory-utilization 0.48 --max-model-len 8192 \
  --max-num-seqs 64 --max-num-batched-tokens 8192 \
  --enable-prefix-caching --prefix-caching-hash-algo sha256 \
  --enable-chunked-prefill --scheduling-policy priority

2. 启动 BigFlow Gateway

cd BigFlow-MaaS-v2.1.0
export PYTHONPATH=$PWD/src:$PYTHONPATH
export BIGFLOW_CONFIG=$PWD/config.gpu.yaml

uvicorn bigflow.app:create_app \
  --host 0.0.0.0 \
  --port 8080 \
  --factory

3. 验证

curl http://127.0.0.1:8101/health
curl http://127.0.0.1:8102/health
curl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/api/status

服务入口:

Dashboard   http://127.0.0.1:8080/
OpenAPI     http://127.0.0.1:8080/docs
Metrics     http://127.0.0.1:8080/metrics

运行 Benchmark

python benchmarks/benchmark.py \
  --gateway http://127.0.0.1:8080 \
  --mode optimized \
  --models qwen-0.5b,qwen-1.5b \
  --requests 500 --concurrency 40 --rate 50 \
  --prefix-groups 5 \
  --trace results/repeat/fixed-trace.json \
  --output results/local-optimized.json

消融可显式控制:

--scheduler-policy {fifo,sjf}
--prefix-aware {0,1}
--aimd-enabled {0,1}

结果和图表可重新生成:

python benchmarks/generate_report_assets.py

Docker / openEuler

Dockerfile.openeulerdocker/Dockerfile.gateway 均以 openeuler/openeuler:24.03-lts-sp1 为基础镜像。它们证明仓库提供 openEuler 容器交付定义;本次 GPU 性能实测宿主环境是 Ubuntu 22.04.5,不应表述为 openEuler 实测。

验证状态

pytest -q                         # 22 passed
python -m compileall -q src benchmarks tests
python scripts/validate_project.py

当前已知边界:官方负载为非流式,所以归档中的 TTFT 为 0;Benchmark SLO 使用 2.5/8/30 秒,而 Gateway 控制目标为 0.8/1.8/5 秒;每个模型只有一个后端,因此现有 Prefix flag 压力实验不能验证跨副本亲和收益。

文档导航

许可证

Apache-2.0,见 LICENSE

关于
1.6 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号