
LMCache配置指南4步跑通KV缓存配置加速长上下文LLM推理【免费下载链接】LMCacheLMCache: Supercharge Your LLM with the Fastest KV Cache Layer项目地址: https://gitcode.com/GitHub_Trending/lm/LMCacheLMCache是长上下文LLM推理加速工具用一层共享KV缓存减少重复的预填充计算。本文带你从最小配置起步按场景逐层加参数再给一份踩坑清单——部署完当天就能完成LMCache配置并用命中率验证每一步的收益。快速上手先跑通最小配置先只保留4个参数验证链路通了再谈优化。仓库里现成的最小示例在 examples/cache_with_configs/example.yaml# 场景单节点最小可运行配置 chunk_size: 256 # 缓存块大小缓存写入与命中的最小单元 local_device: cpu # 缓存放在CPU内存 local_cpu: True # 启用CPU缓存 max_local_cpu_size: 10 # CPU缓存上限单位GB 配置有两个入口按部署方式二选一YAML配置文件结构清晰适合写进部署模板全量字段见 docs/source/api_reference/configurations.rst环境变量参数都有LMCACHE_前缀的对应项如LMCACHE_CHUNK_SIZE适合容器化部署时不动文件两个入口同时存在时YAML配置文件优先生效环境变量被忽略。只保留一个入口避免排查时两边对不上。按场景配置单节点基础加速怎么配前缀重复的请求可以直接命中缓存这是收益最直接的场景。适用单机部署、同一系统提示词或高频多轮对话。chunk_size决定缓存最小单元的大小直接影响命中率与内存占用。默认256大模型建议512或1024max_local_cpu_size默认5.0GB偏小容易频繁淘汰按模型KV缓存的2倍起步cache_policy淘汰策略。对话场景用默认LRU批处理任务可换FIFO热点稳定用LFU# 场景单节点基础加速 chunk_size: 512 local_cpu: True max_local_cpu_size: 20 cache_policy: LRU多级存储内存-磁盘-远程怎么配CPU内存装不下全部缓存时把冷数据逐级下沉用容量换命中。适用单机、模型大、上下文长。local_cpu/max_local_cpu_size热数据留内存低延迟local_disk格式为file:///path中频数据落盘用max_local_disk_size限制容量示例100GBremote_url格式为protocol://host:port低频数据放远程容量大且可被多实例复用remote_serde设cachegen用压缩序列化省远程带宽# 场景CPU → 磁盘 → 远程 多级存储 local_cpu: True max_local_cpu_size: 20 local_disk: file:///data/lmcache/disk max_local_disk_size: 100 remote_url: mooncakestore://cache-server:6379 remote_serde: cachegen多实例KV缓存共享怎么配相同前缀的KV缓存只算一次、各处复用。LMCache支持P2P与集中式两种模式共享拓扑示意如下enable_p2p: True打开P2P共享走集中式模式则指向发现服务lookup_url服务发现地址实例靠它找到彼此如http://discovery-server:8080distributed_url实例间分布式通信地址如tcp://0.0.0.0:5555# 场景多实例共享KV缓存 enable_p2p: True lookup_url: http://discovery-server:8080 distributed_url: tcp://0.0.0.0:5555完整模板见 examples/kv_cache_reuse/share_across_instances内含 p2p_sharing 与 centralized_sharing 两套配置。分离式预填充怎么配把预填充和解码拆到不同节点、独立扩容是超长上下文的解法。预填充节点算完后解码节点经KV缓存数据平面直接读取enable_pd: Truepd_role预填充节点设sender解码节点设receivertransfer_channel: nixl走NIXL高性能传输通道pd_buffer_size传输缓冲区大小示例1GB1073741824字节建议约为单次传输数据的2-3倍pd_buffer_device: cuda缓冲放GPU内存省一次CPU-GPU拷贝# 场景分离式预填充1P1D / XPYD enable_pd: True pd_role: sender transfer_channel: nixl pd_buffer_size: 1073741824 pd_buffer_device: cuda部署模板带启动脚本examples/disagg_prefill/1p1d 与 examples/disagg_prefill/xpyd。高频参数速查表只列日常会动的参数全量字段查官方配置文档参数名环境变量默认值含义与何时调整chunk_sizeLMCACHE_CHUNK_SIZE256缓存块大小命中率低、模型大时调整local_cpuLMCACHE_LOCAL_CPUtrue是否启用CPU缓存纯远程方案可关max_local_cpu_sizeLMCACHE_MAX_LOCAL_CPU_SIZE5.0 (GB)CPU缓存上限按模型KV缓存的2倍设local_diskLMCACHE_LOCAL_DISK空磁盘缓存路径file:///path内存不够时启用remote_urlLMCACHE_REMOTE_URL空远程存储protocol://host:port多实例复用缓存时配cache_policy—LRU淘汰策略批处理换FIFO热点稳定用LFU进阶技巧选读NUMA感知内存多CPU服务器上把每个GPU的缓存内存放到最近的NUMA节点减少跨节点内存访问开销。手动指定映射# 进阶NUMA 感知 numa_mode: manual extra_config: gpu_to_numa_mapping: {0: 0, 1: 1}优先级控制多业务共用一套缓存时priority_limit只缓存数值≤阈值的请求防止低优先级流量把热点挤掉# 进阶优先级限制仅缓存优先级≤5的请求 priority_limit: 5缓存融合Blending长上下文由多个片段拼成时直接混合各片段缓存、只重算一部分token。blend_recompute_ratios控制重算比例示例0.15blend_check_layers用前几层判断重算位置blend_special_str是片段分隔符# 进阶缓存融合 enable_blending: True blend_recompute_ratios: 0.15 blend_check_layers: 2 blend_special_str: ### 完整示例见 examples/blend_in_process。踩坑与调优现象缓存命中率低原因chunk_size与请求前缀结构不匹配——块太大命中不了太小又互相干扰 解决按场景调chunk_size大模型试512/1024长上下文多片段场景启用缓存融合现象内存占用过高原因CPU缓存开得太满且未填满的不完整块也被写入缓存 解决调小max_local_cpu_size设save_unfull_chunk: false现象分布式节点间数据不一致或同步慢原因节点时钟漂移、网络MTU设置不一致 解决所有节点做时间同步统一网络MTU配置现象远程/分离式链路吞吐上不去原因序列化与传输路径开销大 解决远程存储配remote_serde: cachegen分离式场景换RDMA/UCXnixl_backends: [UCX]✅ 调优时盯住这几个指标缓存命中率目标70%以上预填充延迟分离式部署中应小于解码延迟的50%CPU缓存容量至少为模型KV缓存的2倍分离式缓冲pd_buffer_size约为单次传输数据的2-3倍建议从最小配置起步按部署形态单机→多级存储→多实例→分离式逐级加参数每加一层用命中率验证收益再结合监控数据针对性调整。更多可直接套用的配置examples/cache_with_configs/example.yaml、examples/kv_cache_reuse/share_across_instances、examples/disagg_prefill/1p1d全量参数参考 docs/source/api_reference/configurations.rst。【免费下载链接】LMCacheLMCache: Supercharge Your LLM with the Fastest KV Cache Layer项目地址: https://gitcode.com/GitHub_Trending/lm/LMCache创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考