论文阅读-一个用于云计算中自我优化的通用工作负载预测框架
论文标题:A Self-Optimized Generic Workload Prediction Framework for Cloud Computing概述
正确地预测未来的工作负载,如作业到达率和用户请求率,对于云计算中的资源管理和弹性非常关键。然而,计划一个通用的工作负载预测器,并使其适用于各种类型的工作负载,具有很大的挑衅性,因为工作负载的种类繁多且随着时间动态变化。由于这些挑衅,现有的工作负载预测器通常是手动调优的,以便在最大程度上提高精度,针对特定(类型的)工作负载。这种需要个体调整预测器的须要性,也使得从先前研究中复现效果变得非常困难,因为预测器的计划与工作负载之间存在猛烈的依赖关系。
在本论文中,我们提出了一种新颖的通用工作负载预测框架LoadDynamics,它可以为任何工作负载提供高精度的预测。 LoadDynamics接纳了Long-Short-Term-Memory模子,并可以主动优化其内部参数,以实现高精度的个体工作负载预测。我们使用表现公共云应用程序、科学应用程序、数据中心作业和Web应用程序的混合工作负载跟踪来评估LoadDynamics。评估效果显示,LoadDynamics的均匀预测误差仅为18%,至少比最先辈的工作负载预测技能低6.7%。在每种工作负载中,LoadDynamics的误差也仅比通过穷举搜刮找到的最佳预测器高1%。当应用于Google Cloud时,启用了LoadDynamics的主动缩放策略通过将作业周转时间至少镌汰24.6%和将虚拟机过分设置至少镌汰4.8%而优于先辈的预测器。
关键词-云计算; 工作负载预测; 长短期记忆; 自我优化框架; 资源管理;
I. 引言
正确预测未来的工作负载,例如在下一个时间隔断内到达的作业或用户请求的数量,长期以来一直被认为是有效弹性伸缩(它使得云基础办法可以或许根据负载的变化主动调整资源)的重要要求 - 。通过正确的工作负载预测,用户或云服务提供商可以计划更好的主动缩放策略或虚拟机调度管理器,提前得当地设置虚拟机(VM)或容器,以避免资源过分或不足设置,以及资源冷启动,所带来的负面性能影响,这可能导致服务级别协议(SLA)违规或过高的云使用本钱。
然而,由于工作负载模式(例如周期性、突发性或增长)在差别作业类型之间存在大量变化,因此正确的工作负载预测是一个具有挑衅性的题目。图1显示了来自Google数据中心,Facebook数据中心和维基百科的作业工作负载跟踪。如图1所示,差别云应用程序之间的工作负载模式差别很大。例如,维基百科的工作负载表明存在猛烈的季节性,而其他工作负载则没有显着的周期性。此外,工作负载内的模式也可能随时间而变化,如Google工作负载前半部门的高峰和Facebook工作负载的高波动所示。工作负载模式的多样性要求工作负载预测器针对每个工作负载进行调整和优化,以确保高正确性。工作负载内的变动要求预测器足够复杂,可以或许识别并正确预测一个工作负载内的各种模式。
https://img-blog.csdnimg.cn/direct/b8ea9497e636485d974536d2d140422a.png
通常,没有统计、时间序列和机器学习方面专业知识的平凡云用户很可能难以为自己的工作负载计划出如此复杂的预测器。理想环境下,应该提供一种通用的工作负载预测框架(例如由云服务提供商提供),可以为各种动态工作负载生成正确的预测器,以帮助平凡云用户最大程度地利用主动缩放的好处。
之前的研究中的工作负载预测器通常是针对特定工作负载或特定类型的工作负载开发的 - 。这些预测器没有被计划成通用的,通常在应用于其他工作负载时预测精度较低。此外,需要针对每个(类型的)工作负载手动调整预测器的须要性,还使得很难复现从前研究所呈现的预测效果。我们之前也探索了通用的工作负载预测框架,但是这个先前的框架的正确性仍有提高的空间。
在这篇论文中,我们提出了一个名为LoadDynamics的通用工作负载预测框架,可以为各种动态工作负载生成高精度的工作负载预测器。LoadDynamics接纳了机器学习模子——长短期记忆(LSTM)来进行预测。然而,机器学习模子无法主动为任何工作负载生成正确的预测器,除非进行得当的超参数调整,例如调整模子的层数。为了办理这个题目并提高对个体工作负载的预测正确性,LoadDynamics还通过使用贝叶斯优化来主动优化为每个工作负载练习的模子的超参数。通过这种自我优化,LoadDynamics可以或许生成针对个体工作负载进行优化的高精度预测器。此外,与平凡的前馈神经网络和许多其他机器学习技能差别,LSTM模子可以或许追踪数据中相对较长的依赖关系,使其有可能在过细选择超参数的环境下检测和预测工作负载中的各种模式,。
我们将LoadDynamics应用于云中四种差别类型的工作负载的14种工作负载设置。使用LoadDynamics的工作负载的均匀预测误差为18%,表明LoadDynamics可以为具有动态变化的各种类型的工作负载提供高精度的预测。与三种最先辈的工作负载预测器相比,LoadDynamics的预测误差分别减小了6.7%,14.1%和14.5%。为了证明LoadDynamics的更高正确性确实可以改善主动扩展,我们还在Google Cloud上使用LoadDynamics实现了一种预测性主动扩展策略。实验效果显示,与两种最先辈的预测器相比,使用LoadDynamics的主动扩展将云应用程序的均匀完成时间镌汰了24.6%和38.1%。LoadDynamics还可以通过镌汰虚拟机过分设置来提高云资源服从,镌汰了4.8%和17.2%。
本文的贡献包罗:
[*]1)计划了LoadDynamics,一个工作负载预测框架,可以或许主动优化其预测器以为个体工作负载提供高正确性的预测,相对于最先辈的工作负载预测技能,LoadDynamics提供了显著更高的正确性。
[*]2)对14种具有差别模式和应用类型的工作负载设置进行全面评估,以证明LoadDynamics确实可以为具有动态变化的各种工作负载提供高精度的预测。
[*]3)通过案例研究证明白LoadDynamics的高精度预测可以进一步提高实际公共云上主动扩展的效果。
本文的其余部门构造如下:第二节正式定义了工作负载预测题目;第三节详细先容了LoadDynamics的计划,包罗其LSTM模子、超参数优化和工作流程;第四节给出了LoadDynamics的实验评估;第五节讨论了限制和未来工作;第六节讨论了相关工作;第七节总结了本文。
II. 题目定义与动机
A. 题目定义
对于典型的执行机器学习练习/推断作业、高性能计算应用程序和提供网络请求的云体系,一系列作业或请求在差别时间到达。这些作业或请求可以被分别为时间隔断,并用每个时间隔断中到达的作业或请求数量来描述。例如,图1a中显示的Google工作负载被分别为30分钟的时间隔断。在第一个30分钟的时间隔断内,有814k个作业。在第二和第三个时间隔断内,分别有757k和791k个作业。图1b中的Wikipedia工作负载也被分别为30分钟的时间隔断,前三个时间隔断分别有5.4、5.2和4.9百万个用户请求。
假设在某个时间隔断,用户盼望提前为下一个时间隔断到达的作业/请求分配虚拟机(VM)。对于用户来说,最好的选择是分配恰恰可以或许容纳下一个时间隔断的作业/请求的VM。分配过少的VM(欠设置)会导致在作业/请求已经到达后需要按需创建额外的VM,可能违反性能目的。分配过多的VM(过设置)会导致部门VM闲置运行,浪费金钱。为了分配准确数量的VM,用户需要知道下一个时间隔断中将到达的作业/请求数量。
本文办理的题目是预测下一个时间隔断中将到达的作业/请求数量。在本文的其余部门,我们定义第i个时间隔断的作业到达率(JAR)为该时间隔断内到达的作业/请求数量。不失一般性,假设在第(i-1)个时间隔断,当前和前一个时间隔断的JAR已知,而且要预测第i个时间隔断的JAR。为了确保我们的预测框架适用于各种类型的工作负载,第i个时间隔断的JAR仅基于前n个时间隔断的JAR进行预测。设Ji−1 ... Ji−n表现从(i-1)个时间隔断到(i-n)个时间隔断的实际JAR。设Pi表现第i个时间隔断的预测JAR。则Pi的预测题目可以表现为:
https://img-blog.csdnimg.cn/direct/4488ff89569c4d3fbe2bfdc241be7470.png
其中f是一个预测模子,n是在预测中使用的过去JAR的数量。LoadDynamics的重要任务是确定每个工作负载的这个函数f。需要注意的是,这里做出的一个隐含假设是Ji与前n个JAR相关并依赖于它们,这对于真实工作负载通常是准确的。然而,确切的前几个JAR的数量(即n的值)与Ji的相关性是特定于工作负载的。因此,还需要确定n的值。
B. 研究目的
图2显示了使用先前研究基于三种差别预测方法(CloudInsight 、CloudScale 和Wood等人的预测器)对图1中的三种工作负载进行的预测误差(MAPE,在第四节定义)。这些预测方法按照原始作者的建议实现了设置。需要注意的是,CloudInsight是一个集成预测器,它从一组预测模子(如随机森林、ARIMA和SVR)中选择最佳预测器。因此,CloudInsight代表了过去使用这些模子的研究中最好的预测正确性。
https://img-blog.csdnimg.cn/direct/7a6dbfee0af94367ac00b5c68c317faf.png
正如图中所示,这些现有的预测方法都无法始终对所有工作负载实现低于50%的误差。其中一些预测方法是针对具有显着季节性趋势的Web工作负载计划的。因此,对于非季节性数据中心工作负载,它们的正确性较低。这种高误差通常会导致严峻的资源欠设置和过设置题目。这些误差也表明有改进预测正确性的空间和须要性。
III. LoadDynamics的计划
A. LSTM和超参数优化
工作负载中的模式通常可以通过连续时间隔断的JAR中的长期和短期趋势/依赖关系来表现。例如,工作负载的长期趋势(JAR依赖性)可能是天天作业数量持续增长,而短期趋势(JAR依赖性)可能表明作业数量根据一天中的时间波动。然而,云工作负载经常产生复杂的非线性依赖关系,传统的时间序列预测模子(如ARIMA及其变种)可能无法捕捉到这些趋势/依赖关系。为了捕捉这些趋势/依赖关系,我们提出使用长短期记忆(LSTM)网络,因为它被计划用于有效地学习长期依赖关系。
图3显示了LSTM如何预测第i个时间隔断的JAR,即Pi。M代表练习好的LSTM单元。C是作为时间状态信息的长期记忆的细胞记忆。h是从先前的LSTM单元(M)输出的隐藏状态。给定长度为n的输入序列Ji−n,...,Ji−1,LSTM网络递归地更新值以得到Ci−2和hi−2。最后,将丢失的输出hi−1馈送到全连接层T以产生终极输出Pi。
https://img-blog.csdnimg.cn/direct/cb511a20a9c64148b892f8a9d586183a.png
C和h都由LSTM单元(M)的内部操作确定,如图4所示。
https://img-blog.csdnimg.cn/direct/cb62991421834e2094dd18487322491a.png
设t为LSTM网络中时间隔断的一般情势,t ∈ {i − n, i − n + 1,...,i − 1}。M中的四个门(it,ft,ot和gt)通过调节信息在网络中的流动量计算Ct和ht的值。在时间隔断t,网络以Jt、ht−1和Ct−1作为输入,并按以下方式更新内存和门的值:
https://img-blog.csdnimg.cn/direct/0e8dd63f0793456ebde40502ea695487.png
其中,符号https://latex.csdn.net/eq?%5Cbigodot表现两个矩阵的Hadamard乘积,σ是sigmoid函数,Wa、Ua和ba分别表现门的权重和偏置。输入门it确定从输入中写入细胞记忆的新信息量,忘记门ft答应网络擦除过去的信息Ct−1。输出门ot控制从Ct输出的信息量。通过增长更多的LSTM层或增长LSTM单元(即记忆细胞Ct的大小)来控制LSTM网络学习依赖关系的能力。这种控制意味着LSTM网络的正确性取决于其超参数值的准确选择,如LSTM层数、Ct的大小和历史长度(输入序列的长度n)。
然而,找到一组好的超参数是一个非常复杂的任务。例如,当历史长度n太小时,模子很难学习超过较长时间的依赖关系。另一方面,当n太大时,模子可能会学习到不相关的依赖关系,并遭受爆炸/消散梯度题目,导致预测正确性差并产生高计算开销。雷同的题目也存在于细胞记忆C的大小(单元数量)和LSTM层数。细胞记忆由长度为s的向量C ∈ Rs表现。如果C向量的大小and/or层数太大,会增长LSTM模子的复杂性。复杂模子通常需要更大的练习数据集,但在实践中可能无法收集到。增长的模子复杂性还可能导致过拟合的风险增长,即练习的LSTM模子可能与练习数据过分拟合,失去了可靠预测未来数据的能力,而这些数据不肯定与练习数据非常相似。增长的模子复杂性还可能导致更高的计算本钱。另一方面,如果C向量的大小和/或层数太小,LSTM模子所表现的预测器类可能无法捕捉数据中的复杂时间依赖关系,导致预测正确性差,。除了历史长度、细胞记忆向量大小和层数之外,第四个超参数也可能显著影响练习的LSTM模子的正确性,这就是练习数据批次的大小。尽管批次大小不像其他三个超参数那样影响LSTM模子的内部布局,但它可能会影响练习过程的有效性,从而影响练习模子的正确性。因此,我们在LoadDynamics中将批次大小也视为超参数。
超参数n(历史长度)、s(C向量的大小)、批次大小和层数的得当值取决于工作负载,而且需要在练习M之前确定。图5比较了对Google工作负载(图1a)上进行了100个差别LSTM模子的预测误差(MAPE),其中x轴上的值对应差别的超参数组合。效果表明,选择更好的超参数组合可以将预测误差镌汰三倍。不幸的是,鉴于各种工作负载及其动态变化的多样性,手动选择每个工作负载的最佳超参数是不可行的。由于组合数量的组合爆炸,穷举搜刮最佳超参数也是不切实际的。
https://img-blog.csdnimg.cn/direct/cd25db81a40b45338b120789b312bfa6.png
为了办理这个挑衅,我们使用贝叶斯优化来智能地搜刮每个工作负载和/或工作负载的一部门的更好的超参数集。贝叶斯优化(BO)通过一种称为高斯过程(GP)的非线性回归技能来搜刮更好的超参数。BO是一个迭代的优化过程。在每次迭代中,BO使用已经探索过的超参数集和使用这些超参数构建的LSTM模子的正确性来建立一个带有GP的回归模子。然后,使用回归模子预测一组新的可能更好的超参数。这组新的超参数用于练习一个新的LSTM模子,并使用交叉验证数据集评估其正确性。经过固定次数的迭代,从这些迭代中找到的最佳LSTM模子被选择为预测器。
除了BO,先前的工作还提出了其他优化技能来优化超参数。特殊是,我们还实验了随机搜刮和网格搜刮,。然而,在我们的实验中,网格搜刮在改善超参数方面效果不如BO。随机搜刮可以找到与BO确定的超参数具有相似正确性的超参数。然而,根据我们的经验,随机搜刮通常需要更长的执行时间。因此,LoadDynamics只接纳了BO。
B. LoadDynamics的工作流程
LoadDynamics的一般工作流程由三个阶段组成:(i)模子练习,(ii)超参数优化,(iii)预测阶段。
对应于这三个阶段,工作负载中的过去和未来JARs(Java Archive?表现工作负载)包罗三个部门:(a)用于练习模子M和T的l个样本的练习数据集,(b)用于超参数优化的m个样本的交叉验证数据集,(c)JAR的预测。前两个部门(a和b)来自过去(已知)的JARs,第三个部门(c)用于未来(未知)的JARs。图6显示了LoadDynamics的整体工作流程。请注意,图6中带有数字的每个矩形表现LoadDynamics中的一个内部步骤。图7显示了工作负载JARs的这三个部门。
https://img-blog.csdnimg.cn/direct/4a1540373ee6455e89eb93a41bdba2f7.png
如图6所示,练习阶段从随机选择的一组超参数开始。这组超参数用于设置初始LSTM模子,然后使用练习数据集进行练习(步骤1)。练习后,生成一个新的LSTM模子A。该模子A包罗一个新的LSTM模子M和一个全连接层T,如图3所示。在步骤2中,使用模子A对交叉验证集中的JARs进行验证。对于所有Ji−1 ...Ji−m的JARs,使用A生成相应的预测Pi−1 ...Pi−m。然后将预测的JARs与实际JARs进行比较,计算A的均匀预测误差。在验证完成后,将A及其预测误差存储在数据库中。对于步骤3,还使用A的超参数和误差来使用贝叶斯优化从预定义的可能超参数搜刮空间中选择一组新的、可能更正确的超参数。然后,使用新的超参数设置和练习一个新的LSTM模子(步骤1)。这个练习和优化过程将重复maxIters次。在这些迭代之后,将比较所有经过验证的模子,并选择具有最低误差的模子M作为实际的工作负载预测器f(步骤4)。然后,将该预测器f用于预测未来的JARs(步骤5)。
https://img-blog.csdnimg.cn/direct/ddc9a2d79f294d00a3e7d4ee6e835439.png
IV. 评估
本节提供了LoadDynamics的实验评估。这些评估重要关注LoadDynamics的正确性,以及其对主动扩展的好处。
A. 实验设置
工作负载。使用了来自四个类别的五个工作负载来评估LoadDynamics。这些工作负载包罗:1)来自Wikibench 的维基百科(Web应用程序)工作负载;2)来自Grid Workload Archive 的高性能计算(HPC)工作负载;3)来自Microsoft Azure 的公共云工作负载;4)来自Google 的数据中心工作负载;以及5)来自Facebook 的数据中心工作负载。Google、Facebook和维基百科工作负载的迹线如图1所示,Azure和LCG工作负载的迹线如图8所示。这些工作负载的特征总结在表I中。
https://img-blog.csdnimg.cn/direct/dc008ea7e8834d1b8497605f0a8d76c8.png
https://img-blog.csdnimg.cn/direct/bd5e9312b86647c6a7a5ab20e80a1de2.png
为了评估LoadDynamics在差别的时间粒度(可能具有差别的工作负载模式)下是否正常工作,这些工作负载被评估了差别的隔断长度。对于维基百科、Google和LCG工作负载,隔断分别为5、10和30分钟。对于Azure工作负载,由于5分钟隔断下的JAR文件非常小,因此评估隔断为10、30和60分钟。Facebook工作负载相对较短(仅覆盖一天)。为了提供足够的练习样本,Facebook工作负载只评估了5和10分钟的隔断。总体而言,使用了14种差别的工作负载和隔断组合来评估LoadDynamics。在本文的其余部门,我们将具有特定隔断的工作负载称为工作负载设置。
度量标准。预测误差定义为每个预测的绝对百分比误差。对于每个工作负载设置,报告所有预测误差的均匀绝对百分比误差(MAPE)。MAPE的计算公式为https://img-blog.csdnimg.cn/direct/b928831cd334462b9843d1ecfed68ecb.png。
基线。为了比较,我们还报告了来自三种最先辈的工作负载预测器的预测误差,包罗CloudInsight 、CloudScale 和Wood等人。CloudInsight是一个聚集模子,它从21个预测器池中动态选择最佳预测器,每个预测器都接纳差别的建模技能。其中许多技能被之前的工作在工作负载预测中使用过,例如、、、、。所有这21个预测器都列在表II中。CloudInsight还在每隔五个隔断后动态重建其预测器。CloudScale基于快速傅里叶变动(FFT)和离散时间马尔可夫链。它使用FFT检测工作负载中的重复模式,然后将检测到的模式与马尔可夫链一起用于预测工作负载。Wood等人接纳鲁棒线性回归来预测工作负载。用线性回归构建的模子在线进行改进以顺应变化。
实现。LoadDynamics使用了Tensorflow 1、Scikit-learn 2和GpyOpt 3进行实现。LoadDynamics的练习和推断是在一台16核Intel Xeon Platinum 8153 CPU上执行的。对于LSTM模子的练习,我们使用“均方误差”作为损失函数,Adam优化算法 作为优化器。对于贝叶斯优化,使用了高斯过程 作为概率模子进行回归,使用“期望改进” 作为获取函数选择下一组要检查/验证的超参数。
练习集(l)和交叉验证集(m)的大小定义如下。每个工作负载的前60% JAR被设置为练习集,接下来的20%用作交叉验证集,最后的20%用于测试LoadDynamics的正确性。
使用贝叶斯优化搜刮更正确的超参数需要定义搜刮空间。这个搜刮空间表现潜伏超参数值的范围,包罗历史长度(即n的值)、C向量大小、LSTM层数和批量大小的范围,如第III节所讨论的。表III给出了每个超参数的潜伏值范围。除了Facebook工作负载外,其他四个工作负载使用了相同的范围。选择这些范围是因为它们足够大,以涵盖潜伏更正确的超参数值。正如背面的评估效果所示,LoadDynamics选择的最佳超参数通常小于范围的最大值。因此,即使对于本文未评估的工作负载,这些范围也可能足够大。对于Facebook工作负载,由于其较短,因此无法支持较大的历史长度,因此其历史长度和C向量大小的范围被缩小以与练习数据大小兼容。除了搜刮空间,使用贝叶斯优化还需要定义优化迭代次数(即maxIters图6)。这个迭代次数表现将使用BO生成的超参数集的数量。生成的聚集越多,找到高正确性聚集的时机就越大,但是更多的迭代也需要更多的执行时间。在我们实现的LoadDynamics中,对所有的工作负载迭代计数设置为100。
https://img-blog.csdnimg.cn/direct/d0cde44dfd7e467994eaa3a2394561cc.png
B. LoadDynamics正确性评估
如前所述,通过LoadDynamics得到的每个工作负载的工作负载预测器然后在该工作负载的最后20% JAR上进行测试,以进行正确性评估。在图9中报告了LoadDynamics针对每个工作负载设置的最后20%测试数据的MAPE。为了比较,图9还包罗了来自之前工作的基线预测器的MAPE。图9还包罗了每个工作负载的最佳LSTM预测器的MAPE(标有“LSTMBruteForce”的条形)。最佳LSTM预测器是通过在超参数优化空间中进行穷举搜刮(雷同于表III中所示的搜刮空间)得到的。一个工作负载的一次穷举搜刮可能需要长达6周的时间。意思就是找到了最好的超参数,但是需要耗费很长时间。
https://img-blog.csdnimg.cn/direct/8d258b56d96a4731bc67f544aa40c432.png
如图9所示,LoadDynamics可以为评估的工作负载设置提供高度正确的预测。当预测三个维基百科设置时,LoadDynamics的最低MAPE仅为1%。除了隔断为10分钟的Azure,LoadDynamics的MAPE始终低于CloudScale和Wood等人的预测器的MAPE。除了隔断为10分钟的Azure,LoadDynamics的MAPE也要么低于CloudInsight的预测误差,要么与其相似。均匀而言,LoadDynamics的MAPE比CloudInsight低约6.7%,比CloudScale低约14.1%,比Wood等人的预测器低约14.5%。CloudScale和Wood等人的预测器接纳的是不太能跟踪复杂工作负载模式/依赖关系的预测方法,导致误差较高。CloudInsight接纳多种预测技能来处理惩罚各种模式。然而,CloudInsight中的这些预测技能也受到其超参数的很大影响。由于CloudInsight使用固定的超参数,如果这些固定的超参数不适合当前的工作负载,其正确性会受到负面影响。此外,LoadDynamics的均匀MAPE仅比穷举搜刮的预测器的均匀MAPE高1%,这表明我们的超参数优化方法可以或许确定出几乎最佳的超参数。这种接近最佳的正确性也是以更低的本钱得到的。与穷举搜刮需要1天至6周的搜刮时间相比,LoadDynamics在每个工作负载设置上最多只耗费了三个小时。值得注意的是,使用LoadDynamics的模子进行推断所需的时间要小得多,不到4.78毫秒。
总体而言,除了一些5分钟或10分钟隔断的环境外,大多数LoadDynamics的MAPE都小于30%。所有14种工作负载设置的均匀MAPE仅为18%。这些低误差表明,LoadDynamics确实可以或许对各种类型的工作负载进行高精度预测。此外,如图1和图8所示,Google、Facebook、Azure和LCG工作负载都具有模式变化。即使在这些模式变化下,LoadDynamics仍旧可以或许提供高精度的预测,表明LoadDynamics的计划使其可以或许检测和预测一个工作负载中的多个模式。
LoadDynamics最高的MAPE是43%,用于预测5分钟隔断的Facebook工作负载和10分钟隔断的Azure工作负载(这两个工作负载设置的LoadDynamics都有43%的误差)。这种高误差重要是由于每个5分钟或10分钟隔断的相对较低的JAR造成的。总的来说,我们观察到LoadDynamics的MAPE在时间隔断更小的环境下更高,例如Facebook、LCG和Azure工作负载。对于这些工作负载,较小的时间隔断通常具有较小的JAR。这些较小的JAR更容易受到随机突发性的影响,使其更难以预测(随机波动通常缺乏可追踪的模式/依赖关系)。对于较大的工作负载,例如Google和Wikipedia,即使在小隔断下进行预测,其JAR仍旧相称大。因此,即使使用LoadDynamics在小隔断下进行预测,它们的预测误差仍旧很低。
表IV给出了LoadDynamics选择的超参数的值(通过BO进行选择)。由于空间限制,我们无法提供每个工作负载设置的选择的超参数。相反,报告了所有隔断的最小值和最大值。正如表IV所示,所选的超参数值具有非常高的变异性,这表明如果要手动确定超参数,则可能非常具有挑衅性和耗时。因此,LoadDynamics提供的主动超参数优化过程对于构建正确和通用的工作负载预测技能是不可或缺的。这种高变异性还表明有须要为每个工作负载单独优化LSTM模子。此外,对于大多数工作负载设置,所选的超参数值通常低于搜刮空间的最大值,这表明搜刮空间很可能足够大。
https://img-blog.csdnimg.cn/direct/07893394c85d45138ea419aa02b6a5c1.png
C. 使用主动伸缩评估LoadDynamics
为了证明 LoadDynamics 带来的更高正确性确实可以提高云体系的性能和资源服从,我们将 LoadDynamics 应用于管理在 Google Cloud 中执行的 VM 的主动扩展策略。为简单起见,在这个主动扩展评估中,我们假设所有作业都在一个时间隔断的开始时到达。该主动扩展策略的算法描述如下:
在每个时间隔断,预测下一个时间隔断的作业到达率(JAR)。不失一般性,假设下一个时间隔断是第 i 个时间隔断,Pi 在第(i-1)个时间隔断进行预测。在预测之后,预先在第(i-1)个时间隔断创建 Pi 个 VM,预期 Pi 个作业将在第 i 个时间隔断到达。在第 i 个时间隔断的开始时,到达的作业被发送到创建的 VM 中执行,每个作业一个 VM。如果第 i 个时间隔断到达的作业数大于 Pi(即 Ji> Pi),则发生了 VM 设置不足,需要按需创建更多的 VM 来容纳额外的作业。在 VM 设置不足的环境下,由于 VM 有启动时间,额外的作业需要额外的时间完成。如果第 i 个时间隔断到达的作业数少于 Pi(即 Ji < Pi),则发生了 VM 过分设置,多余的 VM 将空闲运行。在 VM 过分设置的环境下,额外的 VM 会产生不须要的本钱。
在这个主动扩展评估中,由于财政限制,我们使用了 Google Cloud 的 n1-standard-1 VM。由于同样的本钱题目,只评估了工作负载和预测技能的子集。对于工作负载,仅评估了 Azure 工作负载,时间隔断为 60 分钟。此外,为了符合 Google Cloud 的资源配额并确保合理的实验本钱,Azure 工作负载的 JAR 被缩小了 100 倍,以使每个时间隔断到达的作业数少于 50(即每个时间隔断需要创建的 VM 数量少于 50)。我们验证了缩小 JAR 对预测技能的正确性没有影响。对于预测技能,仅评估了 LoadDynamics、CloudInsight 和 Wood 等。CloudScale 的正确性与 Wood 等预测器雷同,因此在此评估中被放弃。Cloud Suite 的 In-Memory Analytics 基准用作作业执行,模拟一个处理惩罚机器学习练习和推断请求的体系。在每个时间隔断,记录完成所有到达作业所需的时间(即周转时间),并记录虚拟机设置不足和过分设置的百分比(相对于实际所需虚拟机数)。
图 10 显示了所有时间隔断的均匀作业周转时间,以及均匀虚拟机设置不足和过分设置率。如图所示,在 LoadDynamics 管理下,作业完成的速度比 CloudInsight 快 24.6%,比 Wood 等预测器快 38.1%。这种改进的性能重要是由于 LoadDynamics 下较低的虚拟机设置不足率所致,如图 10b 所示。具体而言,LoadDynamics 的虚拟机设置不足率比 CloudInsight 低 4%,比 Wood 等预测器低 10%。除了性能外,LoadDynamics 还通过较低的虚拟机过分设置率提高了资源利用服从。LoadDynamics 的虚拟机过分设置率比 CloudInsight 低 4.8%,比 Wood 等预测器低 17.2%。这些效果表明,LoadDynamics 带来的高正确性确实可以转化为实际的性能提升和资源服从改进。
https://img-blog.csdnimg.cn/direct/38bb9a7598774d2c82f875e305b9c8f5.png
V. 讨论和未来工作
其他超参数。除了本文探究的四个超参数之外,练习和LSTM模子布局还涉及其他超参数。例如,可以使用与tanh函数差别的激活函数。其他损失函数和练习/优化算法也可能影响练习模子的正确性。尽管在我们的实验中,我们观察到调整这些超参数并没有提高评估工作负载的预测正确性,但这些附加的超参数可能会影响将LoadDynamics应用于其他工作负载时的正确性。这些附加的超参数也可以通过LoadDynamics当前的主动优化过程进行优化。然而,由于搜刮空间更大,建立预测器可能需要更长的时间。
在线自顺应建模 LoadDynamics可能会在工作负载完全改变为任何练习数据中未表现的新模式时出现高预测误差。在这种环境下,需要建立一个全新的预测模子以实现高正确性的预测。为了处理惩罚这种环境,LoadDynamics需要可以或许检测到从前未观察到的新工作负载模式的出现。它还需要可以或许自顺应地重新练习其模子以处理惩罚这种剧烈的模式变化。我们计划在未来探索LoadDynamics的这种自顺应变体。
VI. 相关工作
有大量的研究提出了从云端、、,高性能计算/网格和Web应用程序等各种工作负载(例如作业到达率、资源需求)进行预测的方法。最常见的方法是将这些工作负载表现为时间序列数据,因此已经应用了各种时间序列模子,例如ES/WMA 、、–,AR –,ARMA 、,ARIMA 、。此外,还接纳了基于机器学习和统计分析的方法(如LR 、、、,SVR ,随机森林 ,梯度提升 和FFT ),以预测未来工作负载并计划主动资源管理机制。然而,以往的工作负载预测器每每针对特定工作负载进行优化/练习。正如中所评估的那样,差别的预测器仅对特定工作负载产生正确的预测效果,这表明由于缺乏通用性,将这些预测器应用于差别或未知的工作负载模式非常具有挑衅性。
为了克服上述方法的局限性,研究人员已经探索了基于多预测器的方法、、–。这些方法接纳一组预测器(如多个时间序列和机器学习模子),并通过智能地使用/组合预测器来提高对差别工作负载或工作负载突变的顺应性。特殊是,CloudInsight 接纳用户选择的任何预测器,利用多类回归来估计预测器在近期的未来正确性,并将更多权重分配给体现最好的预测器。不幸的是,基于多预测器的方法需要并行处理惩罚多个预测器,因此在进行预测时会产生不须要的计算开销。此外,这些方法中使用的预测器必须由用户选择,因此对于没有工作负载预测和特征化配景的平凡用户来说,选择框架中使用的预测器是具有挑衅性的。此外,这些研究中也存在超参数调优题目。错误选择的超参数仍旧可能对这些多预测器方法的预测正确性产生负面影响。
由于深度学习的遍及,已经有一些实验将深度学习模子应用于预测云工作负载–。这些工作与LoadDynamics在使用LSTM 或 LSTM 变体作为基础预测器方面具有相似之处。不幸的是,这些方法通常具有以下缺点。起首,LSTM模子仅从有限的工作负载练习,每每导致对练习数据集过拟合,而且对真实世界跟踪的评估并不全面。此外,这些方法如何调整/更新模子超参数尚不清楚,而这每每会改变预测正确性。实际上,如果不知道这些超参数,很难重现从前研究中的预测正确性。与以往的工作差别,LoadDynamics利用贝叶斯优化来进行超参数调整,因此LoadDynamics更加自顺应,可以快速调整LSTM预测器,从而有效地处理惩罚差别的云工作负载。在第四部门,我们评估了来自Google、Azure、HPC和Web应用程序的多个工作负载的LoadDynamics,效果显示LoadDynamics始终优于最先辈的工作负载预测器,表明LoadDynamics足够通用以处理惩罚各种工作负载。在LoadDynamics框架中使用模子自我优化也使得更容易复现LoadDynamics的效果。
VII. 结论
本文先容了LoadDynamics的计划,这是一种用于云计算的通用工作负载预测器。LoadDynamics的目的是提供一种通用且主动化的预测技能,以便正确预测用户应用程序在云上可能遇到的各种动态变化的工作负载。为了实现这一目的,LoadDynamics接纳具有主动调整超参数的长短期记忆(LSTM)模子,使其可以或许构建经过特定工作负载优化的预测器。我们使用来自四种类型云应用的五个真实工作负载跟踪评估了LoadDynamics。评估效果显示,由LoadDynamics构建的预测器在所有工作负载上具有较低的预测误差。LoadDynamics的均匀预测误差仅为18%,远低于最先辈的工作负载预测器。我们还将LoadDynamics应用于实际云中的主动扩展策略。相比最先辈的预测器,LoadDynamics启用的主动扩展策略将转换时间缩短了最多38.1%。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]