长时间跑推理服务,反复加载卸载模型之后,开始报 OOM。nvidia-smi 显示显存还有空间。
原因:显存碎片。CUDA 的分配器对碎片处理不好,明明总量够,但没有连续的大块。
解法:
- 重启进程(最直接)
- 设 PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True,让分配器能合并
- 别频繁加载卸载模型,一次加载常驻
我的做法是常驻加定期重启(每天凌晨重启一次),配合健康检查。
另外:多个进程共用一张卡容易互相挤,最好一个进程独占一张卡,用 CUDA_VISIBLE_DEVICES 隔离。
主楼- 暂无回复
继续逛逛