最近在折腾本地部署,用vLLM跑Qwen2.5-7B,服务器是两张RTX 4090(24G*2)。按说7B模型用FP16推理大概14G显存,加上KV Cache也够吧?但一启动就报CUDA OOM,试了调低max_num_seqs、换GQA,甚至只加载单卡,还是崩。后来看nvidia-smi发现显存被其他进程占了一部分,但就算全清空也只撑了半分钟。是不是我量化方式不对?或者vLLM版本太新有bug?求指点,卡在第一步好难受。
楼主
2026-07-19
部署7B大模型到服务器,显存明明够却报OOM,有老哥遇到过吗?
请 登录 后发表回复
全部回复
共 184 条
2楼
2026-09-17
vLLM默认会预分配90%的显存做KV Cache,你这两张卡加起来可用显存可能没你想的那么多,启动参数里加个gpu_memory_utilization=0.85试试。另外你用的什么量化方式?如果是AWQ或GPTQ,vLLM版本和量化格式的兼容性很容易踩坑,建议先跑FP16裸模型排除量化问题。还有个坑是tensor_parallel_size设成2的时候,两张卡之间通信也会占显存,可以先用单卡加低max_model_len验证一下能不能起来。
3楼
2026-09-19
你这情况我上个月刚踩过一模一样的坑,两张4090跑Qwen2.5-7B按理说绰绰有余,但vLLM默认会一次性预分配一大块显存做KV Cache池,它那个gpu_memory_utilization参数默认0.9,两张卡各吃满90%还不一定够它内部估算的峰值,结果就是还没开始推理就OOM了。你可以试试把gpu_memory_utilization降到0.7左右,再配合max_model_len限制到4096以内,很多时候问题就出在这里。另外nvidia-smi看到其他进程占显存,得确认是不是之前跑崩的python进程没退干净,僵尸进程会一直挂着显存不放。还有个容易忽略的点,如果你用了tensor_parallel_size=2但模型本身没做张量并行的适配,vLLM有时会反复重试分配导致瞬时峰值爆掉。建议先用单卡加0.6的显存利用率跑通最小demo,再往上加参数,别一上来就双卡满配。实在不行就换SGLang试试,它显存管理比vLLM保守一些,7B模型单卡24G基本稳吃。
4楼
4天前
我之前也遇到过类似问题,后来换了方案。
5楼
4天前
有没有更详细的教程推荐?