首页/AI/大模型部署与运维速查/到上游的连接复用

到上游的连接复用

网关到引擎启用连接复用:upstream 配 keepalive 并清空 Connection 头,减少每次请求的连接建立开销,高 QPS 下对尾延迟有实际收益。

到上游的连接复用

网关到引擎启用连接复用:上游配置保持一定数量的长连接,并在转发时清空连接头,可以减少每次请求建立连接的开销,高并发下对尾延迟有实际收益。漏掉其中任何一步,复用都不会真正生效。

基本信息

适用平台Nginx 网关到推理服务
配置要点上游连接池大小与连接头处理
数量估算按并发量与实例数评估
协议要求转发使用 1.1 版本才支持复用

完整片段

完整片段
upstream llm {
    server 127.0.0.1:8000;
    keepalive 64;
}

location /v1/ {
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    proxy_pass http://llm;
}

典型使用场景

  • 高并发服务:减少连接建立带来的尾部开销
  • 持续流量:长连接场景下收益更稳定
  • 容量调整:连接池大小随并发与实例数调整
  • 效果核对:从连接数与端口占用确认长连接真的建起来了
  • 变更回归:调整连接池后重跑并发压测,确认尾延迟确实改善

配置项与常见错误

配置项作用常见错误
连接池大小保持的空闲连接数设得过小,等于没有复用
连接头处理避免每次请求关闭连接漏掉这一步,配置形同虚设
协议版本决定是否支持复用沿用默认版本时无法复用
连接池数量按并发与实例数估算:过小无感,过大则两侧都多占资源。
配置完成后核对生效状态:从连接数与端口占用上确认长连接确实建立。
上游实例重启会断掉池中连接:排障时把这一点考虑进去,避免误判成网络故障。
复用生效后连接数会明显下降:把这个现象当作验证手段,比只看配置更可靠。
网关与上游都要设空闲超时:一侧提前关闭而另一侧还在复用,会出现偶发的请求失败。
长连接要和负载均衡一起看:连接池会让流量固定落在少数实例上,权重调整的效果会被削弱。

易错点

  • 只配连接池不清连接头:连接依旧逐请求断开,配置形同虚设
  • 连接池设得过大:两侧都多占资源,还可能把流量压在少数实例上
  • 转发不用 1.1 协议:默认版本下复用不会生效
  • 实例扩容后不调池大小:新实例分摊到的连接复用收益被摊薄

数据来源与参考

  • Nginx 官方文档:keepalive(nginx.org/en/docs)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌