正文
)的积分得到。
3 技术方案
为了解决这些问题,我们提出了 PASS(
Predictive Auto-Scaling System
),这是一种为企业大规模在线Web应用定制的预测弹性伸缩系统。为了保障预测框架准确性和鲁棒性,我们根据每个应用的特征,动态匹配和校准其适合的预测算法,有效应对了业务负载的多样性。我们进一步建立了基于在线历史日志的性能模型以保障多样化的QoS,可解释的同时不会对在线业务产生负面影响。除了基于负载预测和性能模型的主动伸缩以外,我们还设计了响应式的兜底策略,以及时应对因不准确的预测或意外事件导致的服务质量违例。在美团广泛的业务应用和真实负载下,相对于表1中其它方法,PASS 表现更优于SOTA,以更少的资源成本实现更高的负载预测准确度和更低的QoS违例。
PASS的整体架构如图2所示。ELPA(
Ensemble Learning-based Prediction Algorithm
)实时准确地预测业务负载的QPS时序数据。通过查询基于历史日志构建的性能模型,PASS在不违反QoS的前提下,预测伸缩到业务所需的实例数量。此外,PASS还持续监控QoS指标,如果发现由于预测不准导致的QoS违例,PASS会基于当前真实的延迟校正预测结果,并伸缩到适当数量的实例,以快速消除QoS违例。
图2 PASS整体架构,图中上半部分的黑线表示离线步骤,下半部分中的红线表示在线过程
| 3.1 ELPA预测模型
我们提出了ELPA(
Ensemble Learning-based Prediction Algorithm
)预测算法框架(
如图3所示
)。对于每一类业务的实时流量,ELPA采用一组相应的在线和离线模型来提供预测服务。我们首先从一系列不同的在线模型中选择一个能够为当前时间序列数据提供最准确预测的模型。然后,为了更好地预测“突变特征”,我们使用一个表现最好的离线预测模型代替在线模型。此外,我们使用振幅调整来改善离线预测时可能出现的“振幅偏差”问题,从而进一步增强预测性能。
图3 预测算法框架
ELPA中预测模型的选择:我们针对不同服务的负载特征采用特定的预测模型,以确保最佳的预测性能。在线和离线模型之间的选择过程涉及评估几个连续周期的预测结果,以确定哪种预测算法在当前服务负载时序特征表现出最佳性能。为了评估这些连续周期的结果,我们采用指数加权平均值,对更接近当前时刻的预测给予更大的权重,并逐渐减少对旧预测的权重。我们建立了预测性能的平均累积指数来评估当前的预测算法,如下两个公式所示:
其中t代表单个周期内时间点的数量。
代表单点预测性能的累积指标(
初始值为离线预算算法的误差值
),表示当前周期T之前(0, T-1)开始的每个周期内特定时间点i的绝对误差的总和。𝛽表示指数权重。