SGLang Model Gateway(SMG,前身是 SGLang Router)站在客户端和多个 worker 之间,负责选实例、转发请求,也负责健康检查、排队和故障处理。官方把它定位为生产级 Data Parallelism 的推荐入口,并明确提醒 Native DP 当前不建议用于生产。1
路由器在看什么
SMG 默认使用
cache_aware。它为每个 worker 维护一棵近似 radix tree,用请求文本的前缀匹配度估计「这台机器能不能复用已有缓存」;匹配度超过默认阈值 0.3 时,优先送到匹配度最高的 worker,匹配不足时再考虑缓存容量和负载差。23这和
round_robin 的思路不同:后者先追求分布均匀,cache_aware 先追求少做重复计算。对共享 system prompt、多轮对话和重复 RAG 文档,这个取舍更有意义;没有共享前缀时,别期待它凭空带来加速。一条请求怎么走
客户端请求先到 SMG,再由 SMG 选 worker 并把结果按原协议返回。它对外提供 OpenAI 兼容接口,也支持 worker 动态加入或移除。后台健康检查默认每 60 秒探测一次,连续失败的实例会暂时退出接流;队列满返回 429,等待超时返回 408。23
最小部署有两种入口:每个副本单独启动
sglang.launch_server,再用 sglang_router.launch_router --worker-urls ... 汇聚;或者直接用 sglang_router.launch_server --dp-size N 一体启动。生产环境要先确认入口、版本和实际 worker 拓扑,不要只因为参数名都叫 --dp-size 就把两者当成同一件事。1数字怎么读
SGLang v0.4 官方基准在 8× A100 80GB、Llama 3.1 8B Instruct、
dp-size=8、多组共享长前缀的负载下,报告吞吐从 82,665 token/s 提升到 158,596 token/s,缓存命中率从 20% 提升到 75%。这对应吞吐 +92%、缓存命中率 +275%,但它描述的是共享前缀条件下的结果,不是所有业务请求的通用加速承诺。4方案评估时再问三句
References
- 1DP, DPA and SGLang DP Router
docs.sglang.io
- 2SGLang Model Gateway 文档
docs.sglang.ai
- 3router_args.py 源码
raw.githubusercontent.com
- 4
- 5
- 6Sgl-router support PD+DP load balance
github.com
- 7Router HA 设计提案
github.com


Comments