在生产环境中部署大语言模型服务时,单一后端往往难以满足高可用、低延迟和成本优化的需求。企业通常会部署多个模型实例(如 GPT-4、Claude、国产模型等),或在同一模型的多地域部署之间进行选择。此时,推理网关作为统一入口,承担起动态路由、健康检查与流量分发的核心职责。本文聚焦这一工程实践,给出架构设计与关键参数。
动态路由的核心要素
多后端场景下的路由决策并非简单的轮询,而是一个基于多维特征的智能匹配过程。路由策略需要考虑以下维度:模型类型与版本、请求的 Prompt 长度与复杂度、用户的优先级或配额、目标后端的当前负载与延迟表现、以及成本因素(如某些模型按 token 计价)。
常见的路由算法包括加权轮询、最少连接数、延迟感知路由以及基于实时权重的动态分配。加权轮询适合后端性能差异明确的场景;最少连接数能够在请求分布不均时自动平衡负载;延迟感知路由则通过实时采集各后端的响应时间,将新请求导向延迟最低的实例。对于 LLM 推理服务而言,延迟感知路由尤为关键,因为推理耗时受模型大小、上下文长度和 GPU 负载影响显著,静态配置难以适应动态变化。
工程实践中,建议将路由决策耗时控制在 10 毫秒以内。实现方式可采用本地缓存后端状态信息,通过定期同步或 Pub/Sub 机制更新,避免每次请求都进行远程查询。若使用 Envoy 或 NGINX 作为网关底层,可利用其内置的加权负载均衡策略,结合自定义过滤器实现业务感知的路由。
健康检查机制的工程实现
健康检查是保障后端可用性的第一道防线。在 LLM 推理场景中,传统的 HTTP 健康检查(仅验证服务响应)往往不够,因为模型服务可能处于 “假死” 状态 ——HTTP 200 正常返回但推理极度缓慢。有效的健康检查应当分为被动检测与主动探测两部分。
被动检测基于实际请求结果进行判断。当连续失败次数超过阈值(建议设为 3 次)时,将后端标记为不健康;同时记录错误类型,如超时(504)、模型过载(529)或服务不可用(503)。被动检测的优势在于零额外开销,但响应速度较慢。
主动探测则定期发送轻量级请求验证后端真实可用性。对于 LLM 服务,推荐使用模型专属的探测 Prompt(如简单的文本补全任务),而非通用的 ping 检查。探测间隔建议设为 30 秒,连续 2 次成功则恢复为健康状态。值得注意的是,主动探测应当设置独立的超时时间(建议 5 秒),避免因探测本身占用后端资源。
熔断机制与健康检查紧密配合。当后端被标记为不健康后,进入熔断窗口(建议 60 秒),期间所有请求直接绕过该后端。熔断结束后,系统会逐步引入流量(所谓 “半开” 状态),通过连续 2 次成功请求验证后端已恢复。
流量分发与权重动态调整
流量分发的核心在于权重的动态计算与分配。权重反映后端的处理能力与服务质量,常用指标包括:CPU/GPU 利用率、队列长度、平均响应时间、错误率以及成本系数。权重更新周期不宜过短,建议设为 30 秒,避免频繁震荡。
一种实用的策略是基于延迟的自适应权重:计算各后端的 p99 延迟,将权重设置为基准权重除以延迟比值。例如,若后端 A 的 p99 延迟为 2 秒,后端 B 为 4 秒,则权重比值应为 2:1。这种方式能够自动将流量导向更快的实例,同时保持一定的容错空间。
对于多模型场景,路由层需要维护模型与后端的映射关系。某些后端可能仅部署特定模型此时路由策略应优先匹配模型可用性,再考虑负载均衡。此外,流量镜像功能在灰度发布和 A/B 测试中非常有用 —— 将请求副本发送至新版本后端,通过对比结果验证效果,而不影响主请求。
工程实践参数清单
以下是生产环境中推荐的关键参数配置,可作为初始化参考:
- 健康检查间隔:30 秒,平衡检测及时性与资源消耗
- 连续失败阈值:3 次,避免因单次波动误判
- 恢复探测次数:连续 2 次成功,确保真正恢复
- 熔断窗口时长:60 秒,给后端充分的恢复时间
- 权重更新周期:30 秒,减少震荡同时保持实时性
- 路由决策超时:10 毫秒,避免成为瓶颈
- 探测请求超时:5 秒,独立于业务请求
- 延迟 SLA 阈值:p99 小于 5 秒,根据业务要求调整
- 最大重试次数:2 次,建议设置指数退避
这些参数并非一成不变,建议在灰度环境中进行压力测试,根据实际后端数量、流量规模和业务 SLA 进行微调。
监控与可观测性建设
动态路由系统的可观测性直接决定故障定位速度。核心监控指标包括:各后端的请求量与成功率、平均与 p99 延迟、路由决策命中分布、健康检查状态变更事件、熔断触发次数以及权重分布变化。建议将网关层的 metrics 通过 Prometheus 采集,结合 Grafana 可视化大盘。
在链路追踪方面,每次请求应携带路由决策上下文(如选中后端、权重、匹配策略),便于在出现异常时追溯完整路径。当后端返回错误或超时时,日志中应记录完整的路由决策链,为后续分析提供依据。
多后端 LLM 推理服务的动态路由与负载均衡,本质上是在可用性、延迟和成本之间寻求平衡。通过合理的路由策略、精细的健康检查、灵活的流量分发以及完善的监控体系,能够构建一个具备故障自愈能力的推理入口层。上述工程参数与实践建议可帮助团队快速落地,同时在运行中持续优化。
资料来源:Envoy Proxy 官方文档负载均衡部分;Kubernetes Service Mesh 最佳实践。