使用VLLM后GPU显存无法释放,如何解决重启LLM时的OOM问题?
彻底释放VLLM占用的GPU显存方案
一、显式关闭VLLM引擎资源
VLLM的LLM实例内部维护了GPU推理引擎与后台线程,仅删除对象无法完全释放底层资源,需先主动关闭引擎:
# 检查并关闭VLLM引擎 if 'llm' in locals(): llm.engine.shutdown() del llm
二、强制垃圾回收+清理Torch缓存
完成引擎关闭与对象删除后,触发Python垃圾回收并清空Torch的CUDA缓存:
import gc import torch gc.collect() torch.cuda.empty_cache()
注意:必须按「删除对象→垃圾回收→缓存清理」的顺序执行,否则无法彻底释放资源
三、排查显存残留(可选)
执行以下命令查看显存使用详情,定位是否还有未释放的资源:
print(torch.cuda.memory_summary(device=None, abbreviated=False))
四、重启Jupyter内核(终极方案)
如果上述方法仍无效,说明Jupyter进程中存在Python垃圾回收无法处理的C层面残留资源,直接重启Jupyter内核即可完全清空GPU显存占用。
额外注意事项
- 避免在同一单元格重复初始化
LLM实例,每次初始化前必须执行完整的释放流程 - 若使用VLLM的Ray后端,需额外执行
ray.shutdown()释放Ray占用的GPU资源
内容的提问来源于stack exchange,提问作者Zachary Schwehr
相关产品推荐
相关产品推荐

