首页/AI/大模型部署与运维速查/显存曲线:峰值出现在哪个阶段

显存曲线:峰值出现在哪个阶段

显存峰值可能出现在三个阶段:模型加载(含精度转换缓冲)、大输入 prefill、并发爬坡后的 KV 高位;估算与排查都按阶段看曲线。

峰值出现在哪个阶段

显存峰值可能出现在三个阶段:模型加载(含精度转换缓冲)、大输入 prefill、并发爬坡后 KV 走到高位。估算与排查都要按阶段看曲线,否则很容易把预分配的池占位误当成泄漏,或者忽略加载阶段那个转瞬即逝的高点。

基本信息

阶段一模型加载与精度转换
阶段二长输入 prefill
阶段三并发爬坡后的 KV 高位
观测方式轮询显存用量
常见误判把池占位当成泄漏

典型使用场景

  • 上线前估算峰值是否越线
  • 排查 OOM 具体发生在哪个阶段
  • 判断扩容应该加卡还是先降窗口
  • 区分真实增长与预分配占位
  • 把三段快照写进发布检查表,作为回归对照的基线
  • 把显存曲线与发布记录对齐,快速判断某次改动是否推高了峰值

滚动观察

滚动观察
# 加载与压测期间滚动采样,观察曲线形状
nvidia-smi --query-gpu=memory.used --format=csv -l 1
nvidia-smi        # 进程表看单进程占用

三个阶段怎么看

阶段特征处理
加载一次性冲高后回落留足主机内存与转换缓冲
prefill随输入长度冲高限制单请求长度
KV 高位与并发正相关降并发或扩容 KV 池
按利用率预分配之后,运行期的已用显存大部分是 KV 池占位,不代表泄漏;判断泄漏要看长期趋势,而不是某个瞬时读数。
记录方法:加载、预热、压测三段各抓一次快照并标注时间点,让曲线与操作时间对齐,结论才站得住。
默认采样间隔较粗,加载阶段那种瞬时高点可能被直接漏掉:排查时把间隔压到最小,或用更细的方式采集。
多进程共用一张卡时先按进程拆开看:把邻居的占用算到自己头上,会让排查方向从一开始就偏。

易错点

  • 把池占位当泄漏:先确认预分配机制,再看数值是否真的持续增长
  • 只在稳态看显存:加载阶段的瞬时高点常常才是 OOM 的触发点
  • 用单次快照下结论:显存随阶段变化很大,需要连续采样
  • 混淆主机内存与显存:加载失败常来自主机内存或磁盘,不是显存不够
  • 只看总量不看构成:预留与实际占用之间的差额正是碎片与预留,两者要分开读

数据来源与参考

  • vLLM 官方文档:显存占用与调优(docs.vllm.ai)
  • NVIDIA nvidia-smi 文档(docs.nvidia.com/deploy/nvidia-smi)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌