影响显存占用的关键参数

参数作用建议值
--gpu-memory-utilizationGPU 显存预留比例单卡场景 0.85~0.9
--max-model-len最大上下文长度按实际业务设置,避免过大浪费
--max-num-seqs同时处理的最大序列数根据显存余量调整
--block-sizePagedAttention 分页大小默认 16,一般无需更改
--swap-spaceCPU 侧交换空间(GB)显存紧张时可设置 4~8

量化降低显存占用

对 7B 级别模型,FP16 大约需要 14GB 显存用于权重本身,加上 KV Cache 后往往超过消费级显卡容量。使用 AWQ 或 GPTQ 4-bit 量化可将权重显存需求降低到原来的 1/4 左右:

vllm serve Qwen/Qwen2.5-7B-Instruct-AWQ --quantization awq

提升吞吐的关键:Continuous Batching

vLLM 默认启用连续批处理,无需手动配置。但可以通过 --max-num-batched-tokens 控制单次调度的 token 总量,值越大吞吐越高,但延迟波动也会增加,需要根据 SLA 要求权衡。

多卡场景:张量并行

vllm serve meta-llama/Llama-3-70B-Instruct \
  --tensor-parallel-size 4 \
  --gpu-memory-utilization 0.9

--tensor-parallel-size 需与实际 GPU 数量匹配,且各卡显存尽量一致,否则会以最小显存的卡为瓶颈。

监控建议

结合 nvidia-smi -l 1 观察显存与利用率变化,同时关注 vLLM 自带的 /metrics Prometheus 端点,重点关注 num_requests_waitinggpu_cache_usage_perc 两个指标,用于判断是否需要扩容或调整批处理参数。