首页/AI/大模型部署与运维速查/滚动重启:先排空再动手
运维监控与排障50 条

滚动重启:先排空再动手

重启推理服务的安全顺序:从负载均衡摘除实例 → 等运行中请求清零(有界等待)→ 发 SIGTERM 优雅退出 → 重启 → 就绪后回流量;直接 kill 会把在途请求变成错误。

nginx 侧摘除(示意)

nginx 侧摘除(示意)
# 在 upstream 中注释目标实例后重载
upstream llm_backend {
    # server 127.0.0.1:8001;
    server 127.0.0.1:8002;
}
# nginx -t && nginx -s reload

等待在途请求完成后退出

等待在途请求完成后退出
while :; do
  running=$(curl -s http://127.0.0.1:8001/metrics | awk '/num_requests_running/ {print $2; exit}')
  [ "${running%%.*}" -eq 0 ] && break
  sleep 3
done
kill -TERM <引擎PID>
systemd 场景把 TimeoutStopSec 设为覆盖在途请求处理时间的上限,给优雅退出留时间。

易错点

  • 先杀进程再摘流量:顺序反了,客户端会先吃到一批连接错误

数据来源与参考

  • nginx 官方文档:upstream 模块与 reload 机制(nginx.org)
  • vLLM 官方文档:Production Metrics(docs.vllm.ai)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌