多区域LLM服务与KV缓存局部性
理解缓存感知路由如何避免跨区域预填充惩罚和灾难恢复陷阱
多区域LLM服务与KV缓存局部性
轮询负载均衡对缓存LLM推理主动有害。不落在持有其前缀的节点上的请求支付完整预填充成本——长prompt P50约800 ms vs 缓存命中约80 ms。2026年生产模式是缓存感知路由器(vLLM Router in Rust, llm-d router),消费KV缓存事件并按前缀哈希匹配路由。最近研究(GORGO)使跨区域网络延迟成为路由目标的显式项。商业”跨区域推理”产品(Bedrock跨区域推理, GKE多集群网关)将推理视为不透明——它们处理可用性,不处理TTFT。JPMorgan和Mayo Clinic在2024年11月运行us-east-1故障转移约22分钟。DR现实:32%的LLM DR失败因为团队备份了权重但忘记分词器文件或量化配置。
类型: 学习 语言: Python (stdlib, toy前缀缓存感知路由模拟器) 前置知识: Phase 17 · 04 (vLLM服务), Phase 17 · 06 (SGLang RadixAttention) 时间: ~60分钟
学习目标
- 解释为什么轮询负载均衡对缓存LLM推理有害。
- 描述缓存感知路由器如何消费KV缓存事件并按前缀哈希匹配路由。
- 说出32%的LLM DR失败原因(备份了权重但忘记分词器/配置)。
- 设计多区域LLM部署带缓存感知路由和DR计划。
问题
轮询将请求均匀分布到节点。对无状态服务好,对缓存LLM服务坏。每个请求有前缀(系统prompt、工具schema、历史)。如果请求落在持有其前缀KV缓存的节点上,它跳过预填充。如果落在不同节点上,它支付完整预填充成本。轮询确保大多数请求错过缓存。
概念
缓存感知路由
缓存感知路由器维护哪个节点持有哪个前缀的KV缓存。路由决策:
- 对请求prompt计算前缀哈希。
- 查找持有该哈希的节点。
- 如果找到,路由到该节点(缓存命中)。
- 如果未找到,路由到最不繁忙的节点(缓存未命中)。
vLLM Router(Rust实现)和llm-d router消费KV缓存事件(分配、驱逐)并实时更新路由表。
跨区域延迟
GORGO研究使跨区域网络延迟成为路由目标的显式项。不只是”路由到缓存节点”,而是”路由到缓存节点加最小网络延迟”。如果缓存节点在另一个区域(100ms RTT),可能比本地预填充(800ms)更好但仍比本地缓存命中(80ms)差。
DR现实
32%的LLM DR失败因为团队备份了权重但忘记:
- 分词器文件(模型特定)
- 量化配置(AWQ/GPTQ参数)
- LoRA适配器
- 服务引擎配置
完整DR需要备份整个服务栈,不只是模型权重。
JPMorgan/Mayo Clinic案例
2024年11月us-east-1故障转移约22分钟。原因:权重在S3但分词器在本地EBS。EBS不可用时模型无法加载。
实践
code/main.py模拟缓存感知vs轮询路由在多节点集群上。
输出
本课程产生outputs/skill-multi-region-router.md。给定区域布局和流量模式,设计缓存感知路由和DR计划。
练习
- 计算轮询vs缓存感知路由在5节点集群、80%前缀共享率下的平均TTFT。
- 设计DR计划:备份什么、存储在哪、恢复流程。
- 为什么跨区域推理产品不优化TTFT?它们优化什么?
- 阅读GORGO论文。描述路由目标函数。
- 你的团队在us-east-1和eu-west-1部署。设计缓存感知路由策略。
关键术语
| 术语 | 常见说法 | 实际含义 |
|---|---|---|
| 缓存感知路由 | ”前缀哈希路由” | 基于前缀哈希将请求路由到持有KV缓存的节点 |
| 前缀哈希 | ”prompt指纹” | prompt前缀的哈希;用于查找缓存节点 |
| 轮询 | ”均匀分布” | 请求均匀分布到节点;对缓存LLM有害 |
| DR | ”灾难恢复” | 灾难恢复;需要备份整个服务栈 |
| KV缓存事件 | ”分配/驱逐通知” | 节点发出的KV缓存分配和驱逐事件 |