机器学习模型在线服务容量规划
容量规划核心指标
核心监控指标:
- 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%
容量规划步骤
- 历史数据采集:
# Prometheus查询语句
model_requests_total{job="ml-service"}[1h]
- 容量预测模型:
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]
- 自动扩缩容配置:
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集成钉钉/企业微信机器人,设置不同级别告警(严重、警告)自动触发对应处理流程。

讨论