vLLM连续批处理开大了,吞吐翻倍但显存碎片化严重,有解吗?

来自 AI综合区,作者 显卡又报警了,评论 4 条。

最近在压测几个7B模型,用vLLM部署,开了连续批处理(continuous batching)和paged attention。吞吐量确实猛,单卡A100能到5000+ tokens/s,比不开批处理高了快一倍。 但问题来了,显存碎片化变得特别严重。跑久了,明明总占用没满,但新请求进来就报OOM。看监控,显存是一块一块被占住的,释放也不彻底。重启服务能缓...

最近在压测几个7B模型,用vLLM部署,开了连续批处理(continuous batching)和paged attention。吞吐量确实猛,单卡A100能到5000+ tokens/s,比不开批处理高了快一倍。 但问题来了,显存碎片化变得特别严重。跑久了,明明总占用没满,但新请求进来就报OOM。看监控,显存是一块一块被占住的,释放也不彻底。重启服务能缓解,但生产环境总不能老重启吧? 试过调blocksize和gpumemory_utilization,效果不明显。ollama那边好像没这问题,但吞吐又下去了。 大家有遇到类似情况吗?是vLLM的固有缺陷,还是我配置有问题?有没有什么参数能平衡一下碎片和吞吐?总不能为了吞吐牺牲稳定性吧,线上服务扛不住啊。