vLLM 起服务显存不够,报错信息骗了我半天

3863
sanshi楼主·发布于 2026-09-27·约 1 分钟读完·踩坑
  • sanshi

    24G 显存跑 14B 的模型,按说够,起服务报 CUDA out of memory。

    第一反应是减小 gpu_memory_utilization,从 0.9 调到 0.7,还是 OOM。

    后来发现真因不是权重占显存,是 KV cache 预分配。vLLM 启动时会按 max_model_len 预留 KV cache,长度设成 32768 的时候,光是 cache 就要好几个 G。

    改法:

    • max_model_len 降到 8192(实际业务用不到那么长)
    • gpu_memory_utilization 设 0.85
    • 开 enable_prefix_caching,重复的 system prompt 能复用

    改完正常起来了,并发还不错。

    另一条经验:报 OOM 的时候先看日志里「KV cache memory」那几行,vLLM 会打印详细的内存分配计划,比看显卡占用有用得多。

    主楼
  • alan

    这条对新手很不友好,建议补个最小示例。

    #1
  • kk

    补充一个:如果是多机部署,记得加分布式锁,不然会重复执行。

    #2
  • alan

    补充:证书这块记得验证链完整,openssl s_client 看一眼。

    #3

发表回复

登录后回复