多进程模式#

LMCache 多进程 (MP) 模式将 LMCache 作为一个 独立服务 运行,vLLM 实例通过 ZMQ 连接到该服务。每个节点的 LMCache 服务器可以为多个 vLLM pod 提供服务,提供进程隔离、共享缓存和独立资源扩展。

关键好处#

  • 进程隔离 -- LMCache 和 vLLM 在独立的进程(或容器)中运行,因此与缓存相关的问题不会导致推理引擎崩溃。

  • 推理路径上没有 GIL 争用或 Python 开销 -- 通过在单独的进程中运行 LMCache,它的 Python GIL 和 CPU 工作(哈希、内存管理、L2 I/O)不会与 vLLM 的推理线程竞争。

  • 跨 Pod 共享缓存 -- 同一节点上的多个 vLLM 实例共享一个 L1 缓存,最大化 KV 重用。

  • 独立资源扩展 -- 为缓存分配 CPU 内存,与用于推理的 GPU 显存独立。

  • 多层存储 (L1 + L2) -- 由持久化 L2 存储通过 NIXL (GDS、POSIX、HF3FS 等) 支持的内存 L1 缓存。

  • 内置可观察性 -- 开箱即用的 Prometheus 指标和遥测事件系统。

先决条件#

  • 建议使用最新版本的 vLLM 以获得最佳兼容性

  • LMCache 最新开发分支

服务器变体#

LMCache 提供三个服务器入口点:

入口点

描述

lmcache server

推荐。 ZMQ + FastAPI HTTP 前端(为 K8s 探针添加 /healthcheck/clear-cache/status — 参见 HTTP API)。使用 --engine-type blend 启用 BlendEngineV2 以实现跨请求的 KV 重用。

python3 -m lmcache.v1.multiprocess.server

(遗留) 仅使用 MPCacheEngine 的 ZMQ 服务器(没有 HTTP 端点)。请使用 lmcache server

python3 -m lmcache.v1.multiprocess.blend_server_v2

(遗留)启用 CacheBlend 的服务器。建议使用 lmcache server --engine-type blend