GPU memory泄漏?如何监控推理服务的GPU memory泄漏?
推理服务长时间运行后显存持续增长、最终 OOM,或 nvidia-smi 显示进程占用显存只增不减,多为显存泄漏。常见原因:每请求分配临时 buffer 或 KV cache 未释放、CUDA graph 或缓存未清理、模型推理中创建中间 tensor 未释放、第三方库或 driver 层泄漏。
(1)进程级:定期采集 nvidia-smi 或 DCGM 的 per-process 显存,看随时间是否单调增;设告警阈值与增长率。(2)框架级:PyTorch 用 torch.cuda.memory_allocated()、memory_reserved() 在请求前后或周期打点,对比是否回落;Triton 等看 backend 提供的内存统计。(3)请求级:对单次请求前后打显存快照,定位是否某类请求导致增长。(4)工具:Nsight Systems、cuda-memcheck 做长时间或单次追踪,看分配栈与未释放块。
结合监控确定是「每请求涨一点」还是「偶发大涨」;再通过请求类型、模型路径、版本缩小范围。修复:确保每次推理后释放临时 buffer、正确管理 KV cache 生命周期、避免在热路径上重复建大 tensor;升级框架或 driver 以修已知泄漏。
| 返回模块 | 返回总览 |