模型服务显存告警与自动降载

给本地部署的开源模型服务配一套显存告警与自动降载脚本:先降并发,再拒绝长请求,最后告警。

更新于 4天前

适用场景

  • 自建 GPU 机器跑开源模型,夜里经常 OOM 挂掉
  • 要给运维一套出了事能自己救回来的脚本
  • 大促前需要压测并设定承载上限
PROMPT
运维在一台 80G 显存的机器上部署了开源模型做内部调用,最近半夜常因显存打满导致服务被 OOM 杀掉,需要一套能自动降载的脚本时用这个。

【需求】
写一套显存监控与自动降载方案:
1. 采集:每 10 秒读一次显存占用率与当前并发数,落 Prometheus 的 textfile collector;
2. 三级响应:占用超 80% 时把并发上限从 32 降到 16;超 90% 时拒绝 prompt 超过 8000 token 的新请求并返回明确错误;超 95% 时暂停接新请求 60 秒让队列排空;
3. 恢复:占用连续 3 分钟低于 70% 后逐级恢复,每次只恢复一档,间隔 1 分钟;
4. 告警:任一级触发都发一条到企业微信群,内容含当前占用、并发、被拒请求数。
服务是 vLLM,暴露了 /metrics。

【输出要求】
1. 给一个 Python 脚本,用 requests 抓 /metrics,用标准库写 textfile;
2. 降载与恢复的状态机用文字 + 代码双份说明,避免状态抖来抖去;
3. 给出 systemd timer 或 cron 的挂法;
4. 最后列出 3 个容易踩的坑(采集太频繁、恢复太快、告警风暴)及应对。

---
标签
运维 显存 降载