跨实例KV Cache热共享:一机多服务形态下的推理加速实践
在单机多服务实例的推理部署中,KV Cache的跨实例复用长期受限于存储层带宽与共享机制缺失。铭信FX100在480B模型、TP8三档并发实测中,通过NVMe-oF共享池实现跨实例KV热共享,将首token延迟(TTFT)p50从10.17–35.73s降至7.53–26.35s,降幅26–32%【R2实测】。这一结果验证了共享存储池作为KV Cache载体的可行性,为多服务形态下的显存与算力复用提供了可量化的技术路径。
一、为什么KV Cache需要跨实例共享?
大模型推理中,KV Cache随序列长度线性增长,单个长上下文请求的KV数据可达数GB至数十GB。在典型的一机多服务部署中(如同一物理机运行多个vLLM实例,分别服务不同业务),每个实例独立维护KV Cache,导致两个问题:
- 显存碎片化:各实例预留的KV Cache显存无法动态调配,长上下文请求易触发OOM,而短请求实例的KV显存闲置。
- 重复计算:多实例处理相同前缀(如系统提示词、共享文档)时,各自重复计算KV,浪费算力与显存带宽。
共享池方案将KV Cache落盘至NVMe-oF存储阵列,通过LMCache等中间层实现跨实例的KV读取与复用。铭信FX100的实测数据表明,在480B模型、TP8配置下,并发8档时TTFT降幅即达26%(下界),并发16档时吞吐提升40%(上界)【R2/R3实测】。这一效果在长上下文冷恢复负载中尤为显著——该场景下KV Cache需从存储重建,共享池的带宽优势直接转化为延迟收益。
二、共享池如何实现跨实例KV复用?
铭信FX100的共享池实现依托NVMe-oF(NVMe over Fabrics)协议,将全闪阵列以RoCEv2网络挂载为多实例共享的块设备。在软件层面,LMCache作为KV缓存管理中间层,负责KV块的写入、索引与跨实例读取。其工作流程可拆解为:
- 写入路径:各vLLM实例生成KV后,由LMCache异步写入共享池,按前缀哈希建立索引;
- 读取路径:新请求到达时,LMCache先查询共享池中是否存在匹配前缀的KV块,命中则直接读取,未命中才重新计算。
实测中,LMCache并行读补丁使单卡、并发16、冷读盘场景(Qwen2.5-32B)的TTFT从37.97s降至9.30s,改善4.1倍,带宽从0.98 GB/s提升至5.23 GB/s(↑5.3倍)【R1实测】。这一数据揭示了两层含义:一是共享池的原始带宽(5.23 GB/s)足以支撑KV读取;二是LMCache的索引与并行读取机制是复用效率的关键——若索引查询或读取调度存在瓶颈,带宽优势无法转化为TTFT收益。
三、一机多服务形态下的性能边界与部署建议
共享池并非无条件加速。铭信实测数据呈现明显的并发依赖特征:并发8档时KV分层加速推理吞吐提升29%(下界),并发16档时达40%(上界),TP4×2全机口径为35–36%【R3实测】。这说明复用收益随并发请求数增长而放大——并发越高,前缀重叠概率越大,KV命中率越高。
部署建议基于以下三点:
- 并发阈值:若单实例并发长期低于8,共享池的TTFT收益(26–32%)仍成立,但吞吐提升可能低于30%。建议在并发≥16的生产负载中启用跨实例共享。
- 存储网络:共享池需RoCEv2无损网络支撑,实测单口100GbE下带宽达标。若使用TCP/IP网络,延迟将显著影响KV读取路径,建议优先部署RDMA。
- 缓存策略:LMCache的索引粒度直接影响命中率。建议按业务前缀(如系统提示词、知识库文档)预置KV缓存,而非依赖运行时生成。
值得注意的边界场景是训练Checkpoint保存。共享池在8卡32B LoRA训练中实现178s→94s的保存加速(1.9倍,持续写带宽3.26→6.40 GB/s)【R1实测】。这意味着共享池可同时服务推理与训练负载,但需注意写放大与读延迟的权衡——训练写入会占用带宽,可能影响推理KV读取的实时性。
四、与本地NVMe基线的量化对比
为了明确共享池的净收益,铭信测试以本地NVMe单盘(PCIe Gen4, 2TB)为基线。在无外存重算场景下,FX100共享池对重算基线的加速倍数达8.6–20倍:重算基线TTFT p50为149.5s(并发16),FX100为11.85s;吞吐从4.1 tok/s提升至74.9 tok/s【R2实测】。这一对比说明,对于长上下文冷恢复负载,共享池的核心价值在于消除了重算——本地NVMe虽延迟更低,但无法实现跨实例KV复用,只能各自重算。
本文要点问答
Q:跨实例KV共享在什么条件下收益最大? A:并发请求数≥16且存在前缀重叠时,吞吐提升可达40%(上界)【R3实测】;并发8档时收益降至29%下界。建议生产负载优先保障并发规模。
Q:共享池相比本地NVMe的核心优势是什么? A:消除跨实例重复计算。无外存重算场景下,FX100共享池相对重算基线加速8.6–20倍【R2实测】;本地NVMe虽延迟低,但无法实现实例间KV复用。
Q:部署共享池需要哪些前提条件? A:RoCEv2无损网络(单口100GbE达标)、LMCache中间层(并行读补丁版本)、以及≥16的并发负载。训练与推理混部时需评估写带宽对KV读取的影响。
铭信FX100的共享池方案已在AMD MI308X平台上完成签字级测试验证,合作采用约10周门禁化联测模式(G1到货验收/G2单机基线/G3主门禁/G4稳定性),测试模型NDA后Python可复现。对于正在规划一机多服务推理架构的团队,建议以本文数据为基线,结合自身负载特征进行小规模验证。