机器学习模型在线服务容量规划

Bella336 +0/-0 0 0 正常 2025-12-24T07:01:19 DevOps · 容量规划 · 模型监控

机器学习模型在线服务容量规划

容量规划核心指标

核心监控指标:

  • QPS(每秒查询数):通过Prometheus采集model_requests_total指标,设置5分钟窗口滑动平均
  • 响应时间P95:监控model_response_time_seconds的95%分位数,阈值设为500ms
  • CPU使用率container_cpu_usage_seconds_total,目标控制在70%以内
  • 内存占用container_memory_usage_bytes,避免超过容器限制的85%

容量规划步骤

  1. 历史数据采集
# Prometheus查询语句
model_requests_total{job="ml-service"}[1h]
  1. 容量预测模型
import pandas as pd
from sklearn.linear_model import LinearRegression

def predict_capacity(requests_data):
    X = pd.DataFrame({'time': range(len(requests_data))})
    y = requests_data
    model = LinearRegression().fit(X, y)
    return model.predict([[len(requests_data) + 1]])[0]
  1. 自动扩缩容配置
autoscaling:
  minReplicas: 2
  maxReplicas: 20
  targetCPUUtilization: 70
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 70

告警配置方案

关键告警阈值:

  • QPS异常:连续5分钟QPS下降超过30%
  • 响应时间:P95超过500ms持续10分钟
  • 资源瓶颈:CPU使用率持续超过85%或内存使用率超过90%

告警通知:通过Webhook集成钉钉/企业微信机器人,设置不同级别告警(严重、警告)自动触发对应处理流程。

推广
广告位招租

讨论

0/2000
黑暗骑士酱
黑暗骑士酱 · 2026-01-08T10:24:58
QPS和P95监控要结合业务场景做动态阈值,别死守500ms,高峰期可以适当放宽,否则频繁告警掩盖真实问题。
Rose834
Rose834 · 2026-01-08T10:24:58
容量预测用线性回归太简单了,建议加入时间序列特征如周期性、趋势项,比如ARIMA或LSTM模型更贴合流量波动。
大师1
大师1 · 2026-01-08T10:24:58
扩缩容配置里targetCPUUtilization设70%是保守策略,但实际部署时要考虑模型推理延迟和资源争抢,可调到65%避免突发负载打垮服务