首页/AI/大模型部署与运维速查/SGLang 与 RadixAttention 前缀缓存
部署形态与选型43 条

SGLang 与 RadixAttention 前缀缓存

SGLang 运行时用基数树(RadixAttention)复用请求间共享的 KV 前缀,多轮对话与固定系统提示场景的缓存收益明显;内置 OpenAI 兼容服务,默认端口 30000。

SGLang 与前缀缓存

SGLang 的运行时用基数树组织 KV 前缀(RadixAttention),让不同请求之间相同的开头部分共享已经算好的 KV 缓存。多轮对话天然共享前几轮历史,大量请求又常常共用同一段系统提示,这两种情况下的收益最明显。它内置 OpenAI 兼容服务,默认监听 30000 端口,另有原生生成端点。

基本信息

默认端口30000
缓存机制基数树(RadixAttention)复用请求间的共享前缀
接口OpenAI 兼容的对话接口,以及原生生成端点
启动入口python -m sglang.launch_server
并行方式张量并行与数据并行分开配置

启动服务

启动服务
# 单机启动:指定模型、监听地址与端口
python -m sglang.launch_server --model-path /models/Qwen \
  --host 0.0.0.0 --port 30000 --tp-size 2
# 验证接口与对外模型名
curl http://127.0.0.1:30000/v1/models
# 查参数:版本之间参数名有变动,以本机 help 为准
python -m sglang.launch_server --help | head -40

关键参数

参数作用
--model-path模型仓库名或本地权重目录
--host / --port监听地址与端口,默认使用 30000
--tp-size张量并行卡数,单卡装不下时切分
--mem-fraction-static静态显存占用比例,影响 KV 池大小
--context-length上下文长度上限,直接决定 KV 预留
--chunked-prefill-size预填充分块大小,影响长输入的调度表现

典型使用场景

  • 多轮对话服务:历史消息共享前缀,缓存命中后无需重复计算
  • 固定系统提示的网关场景:大量请求共用同一段提示,收益随并发放大
  • 需要高缓存命中率的业务:提示词模板化程度越高越合适
  • 结构化抽取:输入长、模板固定,前缀复用能显著降低首 token 延迟
  • 与现有 OpenAI 客户端集成:兼容端点可直接替换 base_url
前缀缓存只在请求开头真正相同时生效:提示词里掺入随机种子、时间戳或用户 ID 会把公共前缀切碎,命中率立刻下降。
启动参数较多,多卡配置写错会退化成单卡或直接显存不足:启动后先看日志确认并行度与显存占用,再开始压测。

易错点

  • 把随机内容放在提示词开头:公共前缀被打断,缓存收益消失
  • 多卡参数写错:日志显示按单卡运行,显存不足或性能远低于预期
  • 缓存命中率不做观测:参数调整后无从判断收益是否真的提升
  • 跨版本照抄参数名:不同版本参数有增减,先看本机帮助输出再写脚本
  • 直接对外暴露 30000:引擎无多租户鉴权,需由网关收口

数据来源与参考

  • SGLang 官方文档(docs.sglang.ai)
  • Zheng et al., SGLang: Efficient Execution of Structured LM Programs
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌