塔斯娱乐资讯网

KV Cache 淘汰算法:从 LRU 到会话感知 vLLM 和 SGLang

KV Cache 淘汰算法:从 LRU 到会话感知
vLLM 和 SGLang 的 KV Cache 淘汰,默认都是 LRU 。它的名字就是操作手册:Least Recently Used,最近最少使用——给每块缓存记「最后一次被使用」的时间,满了删最久没人用的。

❓LRU 是什么
依据是 locality(局部性):最近用过的东西,大概率马上还会再用。实现是一条双向链表,命中挪队头、满了删队尾,每次操作O(1)。CPU 缓存、操作系统页面置换、数据库缓冲池,六十年都是它当家。

❓KV Cache 怎么用它
一块 KV「被使用」,就是新请求的前缀撞上了它。SGLang 在基数树上挂时间戳,vLLM 把空闲块按新旧排队——实现不同,算法同一个。两条铁律:资格线(引用计数为 0 才能删)+ 排序线(最旧的先走,只从叶子删)。

❓Agent 时代为什么失灵
Agent 一轮推理跑几分钟,会话前缀 KV 越排越旧,一个并发高峰就被挤出显存,下一轮几万 token 全部重算。SWE-bench 实测:命中率只有 42%(D-V4-Pro)和 5%(Qwen3.5)——LRU 手里只有时间戳,看不见会话。

🔑解法:会话感知驱逐
SGLang v0.5.19 新选项:给会话挂 session_id,先删无引用、再删低引用、高引用殿后,软保护不 pin 内存。实测 TTFT 降 2.9%~16.6%,命中率最高从 5% 涨到 34%。

缓存第一次能区分「暂时没人用」和「有人还在等」。

LLM推理 KVCache SGLang vLLM 大模型 Agent AI技术