新上8卡RTX 5090 限时特惠 Read more

达拉斯 H100 跑 vLLM 推理:怎么看 PagedAttention 的 KV Cache 命中率 - 云数方舟

达拉斯 H100 跑 vLLM 推理:怎么看 PagedAttention 的 KV Cache 命中率

vLLM 是当前最流行的 LLM 推理框架,核心优化是 PagedAttention——像操作系统管理内存一样管理 KV Cache,大幅提升显存利用率和吞吐量。在 达拉斯 8×H100 上跑 vLLM,怎么确认 PagedAttention 的 KV Cache 命中率是否正常?云数方舟 教你查看。

第一步:启动 vLLM 并开启 metrics。启动命令:
python -m vllm.entrypoints.api_server --model meta-llama/Llama-2-70b-hf --tensor-parallel-size 8 --port 8000
vLLM 默认在 http://localhost:8000/metrics 暴露 Prometheus 格式的指标。

第二步:查看 KV Cache 相关指标。用 curl 获取:
curl http://localhost:8000/metrics | grep kv_cache
关键指标:
vllm:kv_cache_usage_ratio:KV Cache 显存占用比例。应 < 0.9(超过会触发抢占或拒绝请求)。
vllm:num_requests_waiting:等待 KV Cache 释放的请求数。应为 0 或很小。
vllm:gpu_cache_usage_perc:GPU 显存中 KV Cache 的占比。
这里说的”PagedAttention 的命中率不是传统 CPU 缓存的命中率”,这个是指它衡量的是”能否成功为请求分配 KV Cache 块”,而不是”块是否已在缓存中”。

第三步:计算有效命中率。vLLM 的 PagedAttention 允许不同请求共享相同的 KV Cache 块(如相同 system prompt)。通过日志观察:
– 启动 vLLM 时加 --log-stats 参数,每秒输出统计信息。
– 关注 cache_hit_rate(如果有)或 num_shared_blocks / total_blocks
– 理想情况下,对于多轮对话(相同历史),共享块比例应 > 50%。

指标健康值异常值含义
kv_cache_usage_ratio< 0.8> 0.95KV Cache 快满了
num_requests_waiting0-5> 20请求排队严重
gpu_cache_usage_perc0.5-0.8> 0.95显存几乎耗尽

行动建议。达拉斯 8×H100 上部署 vLLM 时,建议:
1. 设置 --max-num-seqs 控制并发请求数(避免 KV Cache 耗尽)。
2. 设置 --max-model-len 限制上下文长度(减少 KV Cache 占用)。
3. 用 Prometheus + Grafana 监控 vLLM 指标(参考 Day18 晚篇监控部署)。
4. 如果 KV Cache 命中率低,考虑用 --enable-prefix-caching(vLLM 0.4+ 支持),让相同前缀的请求共享 KV Cache。
记住:vLLM 的 PagedAttention 是推理吞吐量的关键——KV Cache 管理得好,8×H100 可以比原生 HuggingFace 推理多跑 3-5 倍的并发。


📌 查看云数方舟达拉斯 H100 方案:
云数方舟官网达拉斯显卡服务器(8×H100)

本文由 云数方舟 技术团队原创发布,转载请注明出处。

云数方舟
  • 3216651636
  • support@yunark.cn