目前查看了vllm、Nvidia dynamo、mooncake都没有找到将kvcache卸载到SSD的方法,幸好lmcache支持。
以下进行lmcache+vllm实践,对比将kvcache分别卸载到CPU-ram和SSD上的TTFT性能差异。目前的query只是单并发,对比的效果已经比较明显了,可能多并发下对存储的要求就会更高了。
1. 环境部署配置
1.1 组件安装
pip install vllm lmcache
1.2 LM Cache 配置
创建 disk-offload.yaml 配置文件:
# KV Cache 存储策略配置
storage:
chunk_size: 256 # 内存页分配粒度(单位:MB)
local_cpu: true
max_local_cpu_size: 30.0 # CPU内存最大占用(GB)
local_disk: "/home/kv-cache" # SSD缓存路径(禁用时注释)
max_local_disk_size: 200.0 # SSD最大存储配额(GB)
1.3 vLLM 服务配置
创建启动脚本 vllm_serve_start.sh:
#!/bin/bash
# 服务启动参数配置
export LMCACHE_CONFIG_FILE="disk-offload.yaml"
export LMCACHE_USE_EXPERIMENTAL=True
vllm serve /ngc/hub/models--nim--meta--llama-3_1-8b-instruct/snapshots/hf-8c22764-nim1.3b/ \
--max-model-len 80000 \ # 最大上下文长度
--kv-transfer-config '{"kv_connector":"LMCacheConnectorV1", "kv_role":"kv_both"}' \
--gpu-memory-utilization 1.0 \ # GPU显存利用率调整
--swap_space 256 \ # 交换空间分配(GB)
--no-enable-prefix-caching # 禁用GPU前缀缓存
启动服务:
chmod +x vllm_serve_start.sh
./vllm_serve_start.sh
2. 性能验证测试
2.1 测试脚本创建
#测试文件创建
man bash > man-bash.txt
# 测试脚本 vim query-twice-new.py
import time
from openai import OpenAI
from transformers import AutoTokenizer
client = OpenAI(
api_key="dummy-key",
ba
LMCache与vLLM:探索KV缓存卸载技术

最低0.47元/天 解锁文章
1384

被折叠的 条评论
为什么被折叠?



