Building py-kvcache: A Performance Characterization of External KV Caching for vLLM with NVMe SSDs
py-kvcache:vLLM 外部 KV 缓存的 NVMe 性能表征
🧭 LLM 推理 · KV cache 卸载优化
Vrije Universiteit Amsterdam · IBM Research Zurich
刻画外部 KV 缓存加载与重算的权衡,提出异步直接 I/O、有界 staging、调度感知预取,80k tokens 磁盘加载比 LMCache 快 2 倍
📌 工作参考价值(3 点)
- 在长上下文 LLM 服务(如 Agent 多步推理、长 prompt 推荐解释)中开启外部 KV cache 前,先用生产 trace 做 break-even 分析:H100 等强 GPU 上短前缀重算可能比磁盘加载更快,外部缓存应作为按场景开启的准入策略,而非全局默认。
- 缓存层设计要关注传输粒度与调度时序,而非只盯 NVMe 带宽:连续块传输 + 异步直接 I/O 绕过页缓存,并限制共享 staging buffer,避免挤占 GPU/CPU 内存;请求排队时就启动预读,让磁盘 I/O 与 prefill 计算重叠,可显著降低 TTFT。
- 对多轮对话和前缀链不规则场景,py-kvcache 的调度感知预加载有明确收益;若业务里 prompt 前缀复用度高(如推荐 agent 的固定 system prompt、RAG 检索后的公共上下文),可以在 CPU/NVMe 层缓存 KV,但需评估前缀长度分布和 GPU 算力后决定。