我读到的主要的一些亮点:
- 阿里云机器需求是高度不确定的(因为集群是多租户需求的总和),使用高斯过程来量化t+1时刻的不确定性
- 使用transformer模型中的attention机制来学习时间序列中复杂的依赖模式(非论文原创,之前一些论文也有这样的思路),设计了一种新颖的基于多尺度注意力算法来提取时间序列的特征
- 将scaler的缩放过程建模为强化学习中的MDP过程
- 使用蒙特卡洛方法,即采样有限视野的值来近似未来无限时间的最优成本策略
预测性自动扩展是优化阿里云计算平台云资源分配的关键推动因素,它根据预测的用户需求动态调整弹性计算服务 (ECS) 实例,以确保服务质量 (QoS)。然而,云中的用户需求往往非常复杂,高度的不确定性和尺度敏感的时间依赖性,因此对准确预测未来需求提出了巨大挑战。 论文提出了一种创新的基于预测的云资源主动弹性伸缩框架 MagicScaler,该框架主要包含一个基于多尺度注意力高斯过程的预测模型和一个考虑需求不确定性的弹性伸缩优化决策器。首先,预测器仔细地结合了两种成功预测方法的优点:多尺度注意力机制,擅长捕获复杂的多尺度特征;随机过程回归,可以量化预测的不确定性,从而实现了包含量化的不确定性下的准确需求预测。 其次,缩放器将量化的未来需求不确定性纳入具有随机约束的明智设计的损失函数中,从而实现运行成本和 QoS 违规风险之间的灵活权衡。 在中国不同城市的阿里云三个集群上进行的广泛实验证明了 MagicScaler 的有效性和效率,它优于其他常用的缩放器,从而证明了我们的设计选择是合理的。
阿里云的Autoscaling工具是阿里云IAAS的基础工具,可以提供on-demand使用云资源的方式。传统的Autoscaling策略陷入了两个极端:如图1a这种基于历史需求数据的方式提供了超量的ECS实例方式,这种方式保证用户的需求总是能满足,但是带来了巨大的资源浪费,另一个极端是如图1(b)所示的被动策略,根据瞬时用户需求及时调整ECS实例数量,导致服务质量(QoS)下降。 这主要是由于实例的冷启动——启动新实例以增加云的容量需要一些时间。
预测性自动伸缩更接近图1(c)所示的理想策略,它提供了一种替代解决方案,通过使用预测模型来预测未来的需求,从而可以提前启动ECS实例,避免冷启动。 尽管此类研究正在研究中[1,2,17,30,45],但由于以下三个限制,它们不能直接应用于我们的场景。
L1:缺乏对不确性需求的支持。现有方法[1,30,45]倾向于关注确定性预测自动扩展,其预测模块可能无法成功预测阿里云中常见的不确定需求。 例如,图2描述了特定Cluster-HZ的25天需求波动,其不确定性很高。 造成这些高度不确定的波动的原因是集群级需求是所有用户级需求的总和(公有云集群提供多租户模式),而这些异构用户可能具有完全不一致的行为模式。 这给预测性自动伸缩的实施带来了巨大的挑战。 也就是说,如果没有正确考虑高不确定性,不正确的确定性需求预测可能会导致 ECS 自动扩展的错误决策,最终影响 QoS。 为了解决这个问题,考虑需求预测和自动扩展阶段的不确定性的预测性自动扩展框架将是明智的。
L2:忽略规模敏感的依赖关系。 考虑图 2 中所示的示例,该示例检查了阿里云中 Cluster-HZ 的分钟、小时和日级别的需求变化。 显然,它们都不具有明确的周期性,这使得传统的基于周期检测的预测算法无法获得任何单一尺度序列的有效周期信息。 因此,基于单一尺度的预测自动伸缩框架无法实现精确的自动伸缩。 根据这一见解,考虑两种时间依赖性是有意义的——一种是尺度之间的依赖性(尺度间),另一种是单个尺度内的依赖性(尺度内)。 我们将这两种尺度敏感依赖关系的组合称为尺度敏感依赖关系,它具有捕获不确定性的复杂波动的巨大潜力,从而提高预测自动缩放的准确性。
L3:无法适应特定的业务场景。 尽管现有的缩放器(例如[25, 45])已经证明了实例缩放的显着性能改进,但它们没有考虑到更具体和复杂的业务场景。 例如,在阿里云中,每个实例可能处于启动、运行和耗尽(draining)阶段,每个阶段都需要时间并产生不同的成本。 此外,当实例处于耗尽阶段时,可以立即重新启动。 然而,大多数缩放器在构建正式建模时都会简化这些现实场景。 在特定的业务环境中,可能会出现新的冲突,特别是在客户需求突然下降又迅速激增的情况下。 如果根据客户需求实时耗尽或启动实例,则更换资源的间接费用可能会很大。 相反,维持当前的实例数量可能会增加与资源利用相关的成本。 遗憾的是,简化建模的不足常常忽视了当前特定业务场景固有的复杂性。 为此,我们的MagicScaler旨在通过考虑实际业务场景中的这些复杂性因素,纳入需求预测的不确定性,以平衡实例成本和QoS。
本篇论文的贡献。为了解决上述限制,我们提出了一种新颖的预测自动缩放框架 MagicScaler,由基于多尺度注意力高斯过程的预测器和不确定性感知缩放器组成。 首先,预测器仔细地结合了两种成功预测方法的优点:多尺度注意力机制,擅长捕获复杂的多尺度特征;随机过程回归,能够量化预测的不确定性,从而通过量化来实现准确的需求预测。 不确定性水平。 其次,缩放器将量化的未来需求不确定性考虑到明智设计的损失函数中,并考虑到运行成本和 QoS 违规之间的灵活权衡,具有随机约束。 最后,我们列出我们的贡献如下:
(1)我们设计了一种新颖的基于多尺度注意力高斯过程的预测器,以准确预测具有量化不确定性的未来需求。 该预测器利用两阶段(即内部与外部)多尺度特征提取来捕获尺度敏感的时间依赖性,并利用提取的多尺度特征之上的高斯过程来实现准确的未来不确定需求预测。
(2)我们开发了一种具有感知不确定性能力的缩放器,它通过对 QoS 违规的不同容忍级别的随机约束来内化预测的不确定性,从而实现运行成本和 QoS 违规之间的灵活权衡。
(3) 针对需求预测和自动扩展进行了大量实验,证明了我们建议的有效性和效率。
存在各种时间序列分析方法,包括预测,例如统计方法、深度学习方法等[7,8,11,14,19,20,32,39,43,44,46,50]。为了简洁起见,我们从最先进的基于 Transformer 的方法开始。Transformer [35] 模型非常适合时间序列预测,因为它们可以捕获数据中的长期依赖性以及短期相关性。通过使用Transformer模型,预测调度算法可以对未来工作负载做出准确有效的预测,并通过资源分配做出更好的决策。
最近,时间序列Transformer [40,42,47]被引入用于预测任务,利用自注意力机制从时间序列数据中学习复杂的模式和动态。Binh和Matteson [33]提出了一种基于概率、非自回归Transformer的模型,并集成了状态空间模型。通过将稀疏性引入注意力机制中,利用Informer模型[48]的ProbSparse注意力和logSparse注意力机制,将原来的二次复杂度降低到$O(LlogL)$。虽然这种注意力机制是在逐点的基础上运行的,但Autoformer [22]使用基于互相关的注意力机制在子序列级别上运行。Triformer [10]引入了一种具有线性复杂度的新颖补丁注意力机制。当堆叠多个补丁注意力层时,提出了一种三角形结构,使得层大小呈指数缩小,从而保持线性复杂度。FEDformer[49]采用频率变换将序列分解为多种频域模式来提取特征,进一步提高了Autoformer的性能。然而,公共数据集中往往存在某些易于挖掘的模式(例如天气规律和电力的时空特征),这使得这些最先进的模型在它们上取得了近乎完美的结果。然而,当面对很少规律且高度不确定的需求序列时,这些方法可能无法取得令人满意的结果。
预测性自动伸缩用于动态添加或删除实例、CPU、内存等计算资源,以紧密匹配不断变化的计算需求。 该技术对于云计算中有效的资源利用和令人满意的服务质量至关重要。 预测性自动缩放算法使用预测模型来预测未来的工作负载并做出有关资源分配和调度的决策。
现有的自动缩放器基于控制理论、强化学习、排队论和基于规则的方法生成缩放决策[4,5,9,24,27,41]。 这些方法中的大多数要么根据平均需求估计做出扩展决策而不考虑不确定性,要么以启发式方式处理不确定性。 例如,[30]中采用模型预测控制进行预测自动缩放,利用ARMA模型进行工作负载预测,并使用前瞻控制器进行资源分配,而不考虑不确定性。 自动缩放方案 RobustT2Scale [18] 将模糊控制器与在线学习机制集成在一起,可以应对不确定性,但不够通用,无法处理可变的周期性模式 [16, 38]。 相反,我们通过表达 QoS 要求的随机约束直接将工作负载不确定性纳入扩展决策中,以得出稳健的扩展决策。
最近,钱等人。 提出了一种名为 RobustScaler [25] 的新自动缩放框架,该框架使用非齐次泊松过程 (NHPP) 建模和随机约束优化来实现实例成本和服务质量 (QoS) 之间的卓越权衡。 但需要注意的是,RobustScaler 是针对按查询扩展的场景而设计的,这与本研究中的按集群扩展的场景不同。 在按查询扩展的场景中,实例通常在单个查询完成后终止,并且它们的利用率不会扩展以适应后续查询。 然而,我们的场景有所不同,因为我们的实例拥有跨多个查询重用的固有能力。 以类似的方式,薛等人。 [45]提出了一种基于端到端预测元模型的强化学习(RL)算法来维持云中稳定的CPU利用率。 他们的方法使用深度注意力周期模型来预测工作负载并通过注意力神经过程计算 CPU 利用率。 最后,基于模型的强化学习用于找到最佳的缩放决策器。 然而,这种方法没有考虑 CPU 利用率预测的不确定性和服务级别协议 (SLA) 的影响,因此不适合部署在现实世界的云服务中。 值得注意的是,RobustScaler 和基于 RL 的缩放器都忽略了各种业务场景的复杂性,其中每个实例可能处于启动、运行或耗尽阶段,且成本不同。 如果实例处于耗尽阶段,可以立即重新启动。 因此,RobustScaler 和基于 RL 的缩放器都不适合这种场景,因此,我们没有将它们用作基线方法。
我们首先介绍自动缩放中的关键概念。
- 实例:实例是ECS中资源调度的基本单位。实例包含特定的硬件配置(例如 2 核 CPU、4GB 内存)。供给和需求均由实例数量指定。
- 需求序列:时间序列由用户在每个时间戳下需求的实例数组成。
- 供应序列:时间序列由ECS 在每个时间戳提供的实例数组成。
基于上述概念,我们的问题定义如下。 在特定的时间戳
(1)资源成本:实例的生命周期分为三个阶段:启动、运行和耗尽。 该实例只能在运行阶段使用,在扩展阶段(即启动和耗尽)不可用。 然而,扩展阶段也有成本。 因此,实例的资源成本由两个主要部分组成,即运行成本和扩展成本。
(2)QoS 损失:在使用云服务时,客户通常通过与服务提供商的服务级别协议 (SLA) 指定不同的 QoS 要求。在本文中,我们将 QoS 损失定义为每个时间戳不满足客户 SLA 要求的实例数量。
基于上述关键概念,我们提出了全面的两阶段问题描述。
概率需求预测。给定时间戳
自动缩放。在时间戳
高斯过程[29]是遵循联合高斯分布的随机变量的集合。高斯过程回归是基于高斯过程的概率回归模型。它从多维点
假设我们有
其中
在推理阶段,我们将上述高斯联合分布作为先验。给定新窗口
其中
更具体地说,高斯过程通过遵循高斯分布
图3展⽰了该提案的概述。具体来说,MagicScaler由两个主要组件组成:Predictor和Scaler
(1)Predictor:预测器首先采用多尺度注意力特征提取器(MAFE)从历史需求序列中捕获多尺度特征。将提取的特征(而不是原始需求时间序列)输入高斯过程回归模型以预测未来的需求分布序列
(2)Scaler:缩放器将预测的未来需求分布作为输入,并将缩放决策建模为马尔可夫决策过程。 最后,通过考虑实例成本和 QoS 违规风险,缩放器返回最终的缩放决策,即启动新实例或删除现有实例
图4描述了预测器的整体工作流程。 预测器的输入是历史需求序列${\mathbb D}$。 通过内部和外部多尺度注意特征提取器(MAFE)提取多尺度特征$ξ_{t+1}$。 然后,将$ξ_{t+1}$输入到高斯过程回归(GPR)模型中,该模型推导出下一个时间戳
集成不同时间尺度的信息对于准确建模和预测时间序列至关重要。 考虑图2中所示的示例,该示例检查了阿里云中特定 Cluster-HZ 的分钟、小时和日级别的需求变化。 它们都不具有明确的周期性,这使得传统的基于周期检测的预测算法无法获得任何单尺度序列的有效周期信息。 在第 1 节中,我们展示了云计算服务中预测自动缩放的关键特征,激励我们提高预测准确性。 因此,我们提出了一种两阶段多尺度注意力特征提取器(MAFE)来捕获尺度敏感依赖性,主要分为外部阶段External-MAFE和内部阶段Internal-MAFE
我们首先提出External-MAFE来捕获尺度(scale)间的依赖关系,通过尺度之间的相关性提高预测效果的稳定性。 例如,如果多个尺度的时间序列都反映了某个时间段的流量峰值,则真正的流量峰值很有可能发生。如图5所示,External-MAFE以原始时间序列作为输入,并生成不同尺度的子序列,其中原始时间序列被视为最细尺度(标记为白色圆圈)的输入,而其他子序列通过平均池(average pooling)技术进行下采样(标记为不同颜色的圆圈)。通过从粗到细细化提取的特征,将捕获不同尺度之间的相关性。
External-MAFE从底部开始,即具有最粗尺度时间序列的输入时间序列(标记为蓝色)。我们直接获得Internal-MAFE提取的特征(将在4.1.2节中详细介绍,暂时可以将其视为黑盒函数)。然后,我们执行从粗到细的迭代步骤。在每一步中,输入时间序列都需要与上一步的特征融合,然后输入到新的Internal-MAFE中。算法1描述了External-MAFE的过程。首先,我们对尺度列表$L_{scale}$进行降序排序(第1行),以图5为例,排序结果为{12,4,2,1}。因此,我们处理的第一步是$scale = 12$的子系列。然后,迭代粗到细步骤(第2∼9行)与我们之前描述的相同。融合操作利用全连接的神经网络来调整上一步输出的特征的维度,然后与当前步骤的输入连接起来(concatenates)。请注意,第一步中没有融合操作,因为上一步没有输出。最后,我们得到原始时间序列的External-MAFE特征$ξ$。
我们建议使用Internal-MAFE来捕获每个尺度中的注意力依赖关系(尺度内依赖关系)。与External-MAFE不同,Internal-MAFE一次性内在化了不同粒度的所有隐藏特征。 Internal-MAFE 将External-MAFE 确定的特定尺度的输入
注:6(a)中应该是
隐藏特征提取器。 在组织Internal-MAFE内的数据流逻辑之前,我们首先阐述一个基本算子,即隐藏特征提取器,用
其中
在介绍了基本算子
其中
下面我们就来介绍一下Internal-MAFE中的两个关键模块:
分层堆叠(Hierarchical Stacking)。首先,我们通过指定补丁大小列表
细粒度增强(Fine-grained Augmentation)。继续前面的例子,当第一阶段的patch大小为6时,细粒度信息将会丢失,因为每个patch只进行一次特征提取操作。但是,我们也不能直接将其转换为
高斯过程回归(GPR)可以很好地对不确定性进行建模,对于时间序列预测的每个时间戳都可以获得其高斯分布表示,如3.2节所述。给定用于训练的整个需求时间序列数据
对于子序列$S_i$,我们定义其未来需求$d_{i+H}$作为其标签,并在历史子序列$S_i$和时间预测观测值$d_{i+H}$之间建立时间相关性系列预测。换句话说,我们有
在我们的方法中,我们利用高斯过程回归中学到的多尺度特征。 具体来说,我们不使用从需求时间序列导出的子序列$S_i$,而是让子序列首先经过MAFE以获得相应的多尺度特征$MAFE(S_i)$。 然后,我们获得训练数据
给定一个新的子序列
有效且高效的自动伸缩策略对于云资源的弹性伸缩至关重要,因为它有助于控制资源成本并防止QoS损失。图7展示了我们框架的概述,包括概率需求预测、MDP(马尔可夫决策过程)、优化器(Optimizer)和扩展决策执行器(Scaling Decision Executor)。 特别是,我们的框架以概率需求预测
一般来说,马尔可夫决策过程(MDP)可以定义为5元组
考虑到现实世界的业务场景,我们将扩展策略的MDP制定为:
状态空间
动作空间
成本:实例成本涉及两个关键组成部分,即运行成本和扩展成本。 相比之下,在经典 MDP 中,我们最大化奖励,但在这里我们最小化成本。 为了优化总体成本,降低运行成本非常重要,运行成本可能会受到供应过剩的负面影响,并导致额外的闲置运行成本。 因此,我们在每个时间
$$ Cost(S_t, A_t) = \underbrace {W_1\mathbb E[(x_t-(l_t+w_t-ρ)+)+]}{C_1} + \underbrace {W_2λ_tη_t}{C_2} + \underbrace {W_3sd_{1t}+W_4sd_{2t} +W_5sd_{3t}}_{C_3} (8) $$
其中
同样,在时间戳
由于
在
$$ \begin{aligned} &x_{t+1} = x_t + λ_tη_t + (λ_t-1)η_t + λ_tβ_t &(9a) \ &sd_{1,t+1} = (1 - λ_t)η_t &(9b) \ &sd_{2,t+1} = (sd_{1t} - λ_tβ_t)+ &(9c) \ &sd{3,t+1} = sd_{2t} - (λ_tβ_t - sd_{1t})+ &(9d) \ &l{t+1} = \mathbb{E}[((l_t + w_t − ρ)+ - x_t)+] &(9e) \end{aligned} $$
其中方程(9a)描述了可用自动缩放资源的更新过程,等式:(9b)到(9d)描述了不同阶段draining资源的更新过程,(9e)表示未满足实例需求的更新过程。
将缩放公式化为MDP后,下一步就是通过优化器找到最佳的缩放策略,包括策略学习、价值函数估计以及采样和搜索。
据我们所知,策略学习的目的是将状态
其中
$$ \begin{aligned} &V_t(S_t) = \min_{A_t∈\mathbb{A}\approx(S_t)}{Cost(S_t,A_t)+\mathbb{E}[V{t+1}(S_{t+1}|S_t,A_t)]} &(11) \end{aligned} $$
其中$V_t(S_t) = \mathbb{E}[\sum_{t=t'}^{\infty}{Cost(S_{t'}A_{t'}\vert S_t)}]$是系统从时刻
正如第5.2.1节中提到的,直接求解方程具有挑战性,例如(11)在无限域中。为此,我们使用前瞻优化(即后退地平线最优receding-horizon optimal)来逼近价值函数,首先将无限域截断为有限的
$$ \begin{aligned} &\min{\sum_{i=0}^{F-1}{Cost(t+i)}} \ 满足 &x_{t+1} = x_t + λ_tη_t + (λ_t-1)η_t + λ_tβ_t &(12a) \ &sd_{1,t+1} = (1 - λ_t)η_t &(12b) \ &sd_{2,t+1} = (sd_{1t} - λ_tβ_t)+ &(12c) \ &sd{3,t+1} = sd_{2t} - (λ_tβ_t - sd_{1t})+ &(12d) \ &l{t+1} = \mathbb{E}[((l_t + w_t − ρ)+ - x_t)+] &(12e) \ &β_t ≤ sd_{1t} + sd_{2t} &(12f) \ &l_t ≤ E[w_td] &(12g) \ &x_t,sd_{1t},sd_{2t},sd_{3t},β_t,η_t,w_t ∈ N^+ &(12h) \ &λ_t ∈ \lbrace0,1\rbrace &(12i) \ &d ∈ [0,1] &(12j) \end{aligned} $$
其中(12a)至(12e)表示每个状态变量的状态转移方程。等式(12f)确保每个重新启动决策小于当前处于第一和第二draining阶段的实例的总和。接下来,等式(12g)将每个时间戳
5.2.3 Sampling and Searching
为了通过在时间戳
$$\mathbb E[((l_{t-1}+w_t-ρ)+-x_t)+] = \mathbb E[w_td]$$
导致
如算法3所示,我们使用蒙特卡洛方法采样$M$个样本$w_t^m,m = 1, 2, 3...M$。 特别是,我们使用
$$
\sum_{m=1}^{M}{((l_t+w_t-ρ)+-x_t)+/M}
$$
近似 $$\mathbb E[((l_t+w_t-ρ)+-x_t)+]$$
考虑到 $$\mathbb E[((l_t+w_t-ρ)+-x_t)+]$$ 是分段线性且单调递减的,其斜率落在
数据集。我们考虑具有不同特征的3个公共数据集和3个私有商业数据集:
(1)ETTh1、ETTm1(电力变压器温度)2:ETTh1每1小时进行一次观测,ETTm1每15分钟进行一次观测。每个观测值由6个功率负载特征组成,使其成为6个变量时间序列。训练/验证/测试数据涵盖12/4/4个月。
(2)Weather3:该数据集包含2010年至2013年美国近1,600个地点的当地气候数据,每1小时收集一次数据点。每个数据点由目标值“湿球”和11个气候特征组成。训练/验证/测试数据涵盖28/10/10个月。
(3)阿里云:私有业务数据包括来自中国3个城市杭州(Cluster-HZ)、上海(Cluster-SH)、北京(Cluster-BJ)的3个阿里云集群的资源需求时间序列。所有私营企业数据采集时间为2022年11月1日至2022年11月30日,采样频率为1分钟。与上述数据集相比,该数据集的采样粒度要小得多。训练/验证数据涵盖11月1日至11月25日,测试数据涵盖11月26日至11月30日。
基线。由于ARIMA等经典模型和基本RNN/CNN模型的性能相对较差,如[48]所示,我们主要包括三种最先进的基于Transformer的模型和一种概率预测模型进行比较,即FEDformer[49] 、Triformer[10]、Informer[48] 和GP作为基线模型。
指标。我们考虑3种随机训练和验证设置。结果是3次运行的平均值。对于所有数据集,我们进行标准化,使变量均值为0,标准差为1。我们使用以下评估指标,即预测的MAE和MSE值来衡量预测误差。此外,加权分位数损失,也称为ρ-risk,被广泛用作概率时间序列预测的指标。对于给定的分位数
实验配置。MAFE的参数
表1和表2总结了所有方法在多个数据集上的时间序列评估结果。最好的结果以粗体突出显示。如表1所示,我们可以观察到:(i)MagicScaler的预测精度几乎优于所有现有的最先进算法;(ii)MagicScaler的性能显着优于Triformer、FEDformer和Informer,因为它的多尺度特征提取器可以全面捕获不同尺度的模式,从而提高预测精度;(iii)MagicScaler在MAE上优于GP,平均下降 64.3%,这得益于深度神经网络强大的特征提取能力;(iv)MagicScaler在阿里云数据集上的出色表现表明,与其他基线模型相比,我们的模型更适合现实场景。
预测不确定性的量化结果如表2和图8所示。我们可以得到:(i)MagicScaler在0.5-risk和0.9-risk指标方面优于GP;(ii)从图8的可视化结果来看,MagicScaler 预测的置信区间(用蓝色阴影标记)能够在很大程度上覆盖真实值,甚至尖峰状点也能很好地覆盖在置信区间内。
为了验证MagicScaler关键组件的有效性,我们分别对External-MAFE、Internal-MAFE和MAFE的Cluster-HZ数据集进行了消融研究。我们可以得出这样的结论:所有组件都在一定程度上对最终的最先进结果做出了贡献。如表3所示,MagicScaler超越了去除MAFE的模型,证明了MAFE在提取多尺度特征信息和增强模型预测性能方面的有效性。通过External-MAFE和Internal-MAFE的比较可以看出,External-MAFE更擅长捕获不同尺度的特征信息。值得注意的是,w/o Internal并不意味着该组件被完全删除,而是将其层次结构转变为单个阶段,而不执行细粒度的增强操作。这种方法相当于将Internal-MAFE转换为基于注意力的特征提取器,用于删除组件。
图 9 显示了MagicScaler与FEDformer和Informer的训练时间(秒/epoch),其中我们比较了5次运行的平均实际效率。当改变
基线。在本节中,由于阿里云环境的独特性,很难将现有的自动伸缩方法公平地迁移到我们的场景中,因此我们在真实集群工作负载数据上比较以下伸缩方法。
- Passive:被动扩展方法是一种被动方法,涉及根据每个时间戳的客户需求做出资源启动和耗尽决策。虽然此方法可能具有较低的资源成本,但它也与较高级别的QoS损失相关。
- Statistics:这是一种自动缩放策略,它利用过去一周时间
$t$ 的数据来生成统计数据,然后使用这些统计数据来预测未来值并使用缓冲区值执行自动缩放(类似于第1节中描述的保守策略)。 - MagicScaler-D:MagicScaler-D 是MagicScaler 的确定性版本,它将概率ECS 需求预测的平均值作为输入,并返回最佳扩展决策。特别是,我们为MagicScler-D设置
$F = 12$ 和$d = 0$ ,这对于优先考虑超额配置实例以防止QoS损失的云服务提供商来说很有意义。 - MagicScaler:MagicScaler将概率需求预测作为输入,同时保持与MagicScaler-D相同的参数设置。
我们比较了统计、反应式缩放方法(被动)、MagicScaler及其变体在阿里云的三个数据集(集群HZ、SH和BJ)上的性能。图10说明了我们的评估结果。第一个观察结果是,MagicScaler-D和MagicScaler在Cluster HZ和Cluster SH上的资源成本和QoS损失方面优于其他产品。具体来说,MagicScaler的QoS损失显着降低,与Passive和统计相比,QoS损失仅为11.7%和4.9%,但资源成本比Passive和统计增加了1.2%和43.9%。值得注意的是,尽管Statistics在cluster-SH上的资源成本指标上具有显着优势,但这却导致了QoS的显着损失,这对于云服务提供商来说是不可接受的。可见MagicScaler能够很好地平衡资源成本和QoS损失。我们还观察到MagicScaler-D在Cluster BJ上的表现很差,四天的资源成本几乎为零,并且QoS损失明显高于Passive和Statistics。这是因为Cluster BJ中的物理资源覆盖了几乎所有的ECS需求,而MagicScaler-D无法捕获突发的ECS需求,导致QoS严重损失。相比之下,MagicScaler在Cluster BJ上表现良好,因为它可以捕获突发的ECS需求(即高不确定性),从而确保较低的QoS损失。最后,我们发现统计数据对于不同数据集的鲁棒性较差。尽管与Passive相比,Statistics在Cluster-HZ上的表现相当好(图11(a)和11(b)),但在图11(c)和11(d)中,它显示出相当低的资源成本和显着更高的QoS损失。这表明Statistics对于不同的ECS需求数据集没有表现出良好的鲁棒性。相比之下,我们的MagicScaler在不同的ECS需求数据集上具有良好的鲁棒性。
在本文中,我们提出了一种称为MagicScaler的新型预测自动缩放框架,它由预测器和缩放器组成。一方面,预测器利用了两种成功预测方法的优势:多尺度注意力机制,可有效捕获复杂的多尺度特征;高斯过程回归,可准确量化预测不确定性。另一方面,缩放器通过使用具有随机约束的复杂损失函数来考虑量化的未来需求不确定性,从而允许在运行成本和QoS违规之间进行灵活的权衡。需求预测和自动扩展的大量实验证明了我们提出的框架与其他广泛使用的基线方法相比具有优越的性能。特别是,MagicScaler的有效性已经通过阿里云的真实数据得到了证明。这表明我们的框架具有显着提高云计算系统中自动缩放的效率和有效性的巨大潜力。