显存用量比例是什么
vLLM 的 --gpu-memory-utilization 控制引擎对单卡显存的使用比例,默认 0.9:比例越高,能划给 KV 池的显存越多,可并发序列数就越高,但留给同卡其他进程的余量越小。它只改变显存划分,不改变单卡的算力上限,因此它不是性能开关,而是容量与共存策略的开关。
基本信息
| 参数 | vLLM:--gpu-memory-utilization |
|---|---|
| 默认值 | 0.9 |
| 影响 | 决定 KV 池大小,进而决定并发上限 |
| 调低场景 | 与驱动、监控、其他服务共用同一张卡 |
| 留档建议 | 把比例、KV 容量、并发上限三项一起记入部署台账 |
典型使用场景
- 多进程共用一张卡:下调比例给监控、其他推理实例留出空间
- MIG 或共享卡场景:避免某实例把切片显存吃满,影响同切片的其他进程
- 单实例独占卡:在压测基础上把比例调到兼顾并发与稳定的档位
- OOM 排查:核对比例是否过高,以及是否有计划外进程占用显存
- 容量台账:记录比例与对应的 KV 容量,扩容估算可直接复用
设置与核对
设置与核对
# 与其它进程共存时下调比例
vllm serve <模型路径> --gpu-memory-utilization 0.85
# 启动日志会给出可用 KV 池容量,用它反推可并发序列数
# 同卡多实例时:各实例比例之和要明显小于 1,并给框架与驱动留余量
# 现场核对:看卡上还有谁在占显存
nvidia-smi --query-compute-apps=pid,used_memory --format=csv比例取值的权衡
| 取值 | 收益 | 风险 |
|---|---|---|
| 0.8 左右 | 与同卡进程共存友好 | KV 池偏小,并发上限略低 |
| 0.9 默认 | 多数独占卡场景的平衡点 | 同卡其他进程需求大时会紧张 |
| 0.95 以上 | 并发上限最高 | 偶发 OOM,运行期间容易踩边界 |
| 多实例合计 | 同卡服务多个模型 | 合计超 1 直接启动失败 |
调低比例后并发上限随之变化:参数改动要配合压测重新确认容量结论,不要沿用旧数字。
除了 KV 池,加载权重与激活也需要显存:比例再高也装不下权重时,报错会出现在加载阶段,此时要减少模型规模或改用张量并行。