做链家房产的网站怎么做的,黄山网站建设怎么做,网络营销专业背景,网站描文本怎么做论文名称#xff1a;Cloud Workload Turning Points Prediction via Cloud Feature-Enhanced Deep Learning
摘要
云工作负载转折点要么是代表工作负载压力的局部峰值点#xff0c;要么是代表资源浪费的局部谷值点。预测这些关键点对于向系统管理者发出警告、采取预防措施以…论文名称Cloud Workload Turning Points Prediction via Cloud Feature-Enhanced Deep Learning
摘要
云工作负载转折点要么是代表工作负载压力的局部峰值点要么是代表资源浪费的局部谷值点。预测这些关键点对于向系统管理者发出警告、采取预防措施以实现高资源利用率、服务质量QoS和投资收益至关重要。现有研究主要只关注于工作负载未来点值的预测而没有考虑基于趋势的转折点预测。此外在预测过程中最关键的挑战之一是传统的趋势预测方法在金融和工业领域等方面虽然取得了成功但它们表示云特征的能力较弱这意味着它们无法描述高度变化的云工作负载时间序列。本文提出了一种基于云特征增强的深度学习的新型云工作负载转折点预测方法。首先我们建立了一个考虑云工作负载特征的云服务器工作负载转折点预测模型。然后设计了一个云特征增强的深度学习模型用于工作负载转折点预测。在最著名的谷歌集群上的实验展示了我们的模型与最先进模型相比的有效性。据我们所知本文是第一篇通过云特征增强的深度学习对云工作负载时间序列的基于转折点的趋势预测进行系统研究的文章。
索引术语——云计算转折点预测深度学习云特征增强时间序列分析
1 引言
过去十年云计算的商业使用需求激增其高可扩展性、灵活性和成本效益特性能够满足新兴的大规模计算需求。云计算现在正日益成为不可或缺的计算基础设施[1][2][3]这得益于其高可扩展性、动态资源共享、细粒度资源调度等优点。云工作负载是一个重要的时间序列由云数据中心执行期间的时间戳、事件类型和机器工作负载的事件记录组成对于分析云工作负载的波动非常重要。准确预测云工作负载趋势是实现细粒度高资源利用率、服务质量和云数据中心经济利润的关键步骤。
趋势预测任务可以分为三类i) 预测下一个点相对于当前点是上升还是下降[4]ii) 预测下一个趋势段的斜率和持续时间[5]iii) 预测下一个点是否为转折点[6]。然而随着云工作负载规模的增加准确预测云工作负载趋势仍然是一个巨大的挑战因为云数据中心的工作负载呈现出越来越高的变异性和波动性[7][8][9]。以谷歌集群追踪数据为例这是最著名的云工作负载追踪之一图1展示了工作负载的波动谷歌云服务集群中服务器编号为207776314的CPU工作负载。从图1中我们可以看到工作负载序列随时间持续波动包括一些代表工作负载压力的局部峰值点或通常代表资源浪费的局部谷值点。这些点被称为云工作负载转折点。然而现有的云工作负载预测方法更多地关注于未来工作负载点值的预测方法这些方法生成预测工作负载的单个点的预期值。对于以未来工作负载点值为中心的预测尽管可以预测未来的工作负载值但很难推断出动态变化趋势即是否存在代表工作负载压力的局部峰值或代表资源浪费的局部谷值因为我们只知道每个点的值但无法判断最关键的特征是峰值点还是谷值点。即现有的点值研究更多地关注于特定值而不是它是谷值点还是峰值点。此外传统的以工作负载点值为中心的预测基于回归理论、启发式方法或传统神经网络这需要明显的模式或清晰的工作负载趋势才能进行准确预测。最近为了处理高度非线性的工作负载一些深度学习模型已经引起了人们对工作负载预测[10][11]的日益浓厚的兴趣。 为了应对工作负载预测中的这些挑战我们提出了CloudTrend——一种通过云特征增强的深度学习进行云工作负载转折点预测的方法。本文的主要贡献总结如下 据我们所知我们是第一个在云环境中基于云特征增强的深度学习进行服务器工作负载转折点预测的系统研究。我们的初步工作发表在论文[12]中展示了一些现有问题和有限的解决方案分析。在本文中我们通过扩展背景和思想提供更全面的最近相关工作调查并深化架构、分析过程和实验的设计使我们的方法系统化。 考虑到云服务器场景我们首次对云服务器工作负载转折点预测问题进行建模包括云工作负载时间序列、波动特征、云工作负载转折点及相应的工作负载趋势预测。这些模型为成功的云工作负载转折点预测奠定了初步的理论分析基础。 作为CloudTrend的核心我们设计了一个高效的云特征增强的多任务云工作负载转折点预测算法命名为FEMT-LSTM通过基于规则过滤的PLR分段线性表示算法和特征增强的LSTM来捕捉和学习工作负载趋势的长期依赖性。它可以捕捉到易变波动中的基本云特征通过巧妙地引入时间维度来提高预测性能并且能够很好地适应云环境。 使用来自谷歌的最著名的真实世界工作负载模式进行了广泛的实验以验证所提出的云工作负载预测方法的有效性。结果表明我们的方法优于五种经典的基线预测方法。
2 相关工作
在本节中我们对云工作负载预测中使用的一些经典方法进行分类并简要回顾。然后我们介绍了用于云时间序列预测的机器学习和深度学习方法。最后我们总结了相关工作的不足之处。
2.1 云工作负载预测中的分类
云工作负载时间序列分析和预测对于资源利用率分析[13][14]任务失败分析[15][16]等非常有用。云工作负载时间序列预测可以分为以点值为中心的预测或在以下简称为点值预测和趋势预测后者更多关注上游或下游预测。
点值预测等同于预测未来某一时间点或多个时间点的工作负载值。Di等人[17]提出了一种基于统计特征的贝叶斯模型用于预测谷歌云服务集群中服务器的CPU使用情况。Buchaca等人[18]采用了基于循环神经网络的序列到序列模型以预测共同执行作业对资源的占用情况。在[10]中Kumar等人提出了一种使用神经网络和自适应差分进化算法的工作负载预测模型。Chen等人[19]将时间序列分析TSA和带门控单元GRU块的循环神经网络RNN集成在一起用于工作负载值预测。2018年Zhang等人[20]使用了一种时间序列聚类算法结合双向长短期记忆网络以预测服务器的CPU利用率。2019年Duggan等人[3]提出了一种基于循环神经网络的服务器CPU和网络带宽占用预测模型以辅助云环境中的虚拟机迁移。对于点值预测尽管可以预测未来的工作负载值但很难了解服务器的内部状态和工作负载的动态变化趋势。
趋势预测如前所述大致可以分为三种类型 预测下一个点相对于当前点是上升还是下降。例如2019年Deng等人提出了一个知识驱动的时间卷积网络KDTCN用于股票趋势预测该网络结合了知识图研究和股票趋势预测中的价格值[4]。 预测下一个趋势段的斜率和持续时间。例如在2017年Lin[5]等人使用了一个时间序列线性分割算法来划分趋势段然后使用长短期记忆网络和卷积神经网络的混合结构来构建模型以预测下一个趋势段的斜率和持续时间。 预测下一个点是否为转折点。例如Xia等人[6]使用了一个时间序列线性分割算法在原始时间序列中标记转折点然后构建了一个机器学习模型来预测下一个点是否为转折点。然而他们的特征不适用于云服务器工作负载转折点预测准确性有待提高。
2.2 云工作负载时间序列预测中的机器学习和深度学习方法
在过去的十年中许多研究使用深度学习算法或基于统计的算法来预测云工作负载。除了上述在第2.1节中提到的方法之外论文[17]设计了一种基于贝叶斯模型的预测方法用于预测长期时间间隔内的平均工作负载以及连续的未来时间间隔。论文[10]提出了一种使用神经网络和自适应差分进化算法的工作负载预测模型。论文[19]提出了一种基于深度学习的云工作负载预测算法该算法集成了顶层稀疏自编码器和带门控单元块的RNN以提高预测准确性。论文[11]使用了在线稀疏双向长短期记忆网络以辅助云环境中的虚拟机迁移。
Ashutosh Kumar Singh等人[21]考虑了预测过程中的量子因素并提出了一个进化量子神经网络模型以更好地预测云工作负载。我们提出的方法不仅选择了各种适合的工作负载波动特征还通过特征增强改进了LSTM以更准确地捕捉隐含信息。Kee Kim及其团队[22]和[23]设计了一种集成的深度学习方法用于时间序列预测。论文[24]选择了与图结构紧密匹配的图神经网络GNN架构以预测云计算工作流的负载。论文[25]使用了一个在线云资源预测模型OCRPM。
与我们的工作最相似的是Xia[6]在2018年提出的一种转折点预测模型称为加权支持向量机WSVM。WSVM[26]是SVM的修改版本。SVM[27]的主要思想是生成一个分类超平面将两种类型的数据从最大边界分开。当每个训练实例具有不同的权重时标准SVM被扩展到加权SVM使得普通点和转折点对要最小化的损失函数提供不同的贡献。Xia[6]使用了分段线性分割算法来生成虚拟机请求中的断点然后使用WSVM和基本的窗口化特征来预测虚拟机请求在下一步是否会突然改变。与虚拟机请求的数量相比服务器工作负载的变化是非线性的且更加易变这对转折点预测提出了更高的挑战。
2.3 现有方法的不足总结
总的来说现有方法存在以下不足 现有的云预测模型主要集中在点值预测而不是趋势预测上。但正如之前提到的点值预测并不能处理需求中的峰值或谷值趋势变化此外它也不能反映未来时期工作负载的属性因为它没有捕捉到代表工作负载过程历史动态的趋势变化。 转折点本质上是波动变化的反映而现有方法中使用的特征大多是时间窗口内的基本统计特征如均值和方差这些特征对于反映云工作负载波动较弱。 现有的最优转折点预测模型如WSVM主要关注预测点附近的单个时间窗口但它们忽略了沿时间维度可能的系统状态长期变化这是考虑资源需求实际波动的一个重要特征。
在本文中我们提出了一种基于云特征增强的多任务LSTM模型的云工作负载转折点预测方法。为了克服上述缺点我们的模型从根本上关注趋势预测。然后我们的算法创造性地捕获了四个时间序列云特征以更好地描述云工作负载波动。此外我们使用的改进的LSTM模型考虑了历史变化。最后我们在Google Cloud Service集群跟踪、阿里巴巴开放集群跟踪和属于Grid工作负载档案的HPC跟踪上进行了实验这些实验提供了丰富和权威的时序信息。与以前的相关研究相比我们的模型是创新的。
3 问题建模
在本节中我们建模了如何在云服务器场景下预测云工作负载转折点的问题包括工作负载时间序列的模型、转折点及相应工作负载趋势和云工作负载的波动特征。
3.1 建模云工作负载波动
云环境中的工作负载充满了波动性高质量的特征将帮助模型捕捉工作负载时间序列的局部趋势特征。在文献[6]中使用了两种类型的特征来描述虚拟机请求数量的变化一是虚拟机请求的元信息包括请求虚拟机服务的用户分布和当前时间窗口中请求的虚拟机类型分布。另一种是观察窗口中的统计特征包括当前的请求数量、请求数量的平均值和请求数量的方差。在本文中我们提出了一组基于云转折点的特征这些特征列在表1中缩写中的代表字母加粗。除了三个基本统计特征当前工作负载、工作负载平均值、工作负载方差外我们提出了四个额外的波动特征以尽可能反映观察窗口附近点的工作负载趋势。我们还绘制了一个皮尔森图来测试它们的相关性。 工作负载趋势。由于云工作负载一直在变化它经常在指定的特征观察窗口中显示出上升和下降。如果上升点的总量高于下降点则整个观察窗口可能显示出上升趋势而当下降点的数量较大时在观察窗口中出现相反的趋势。上升或下降趋势的变化比例与趋势的强度呈正相关这反映了不同场景中的不同波动特征相对于股票分析中的相对强度指数[31]。计算方法如公式(1)所示其中I(x)是指示函数。如果x为真则I(x)的值为1否则为0。frsi是趋势强度指标等于总的上升趋势。xup和xdown的和代表了全部变化。frsi越接近于1上升趋势的可能性就越大。当它接近1/2时意味着两种趋势具有相同的概率。例如在图2所示的特征观察窗口中由于xup xdown 2d我们得到frsi 2d/(2d 2d) 1/2这意味着这个窗口中的上下趋势强度相同。 功能观察窗口。当t4时特征观测窗口长度n为4。此窗口中的工作负载值为x1x2x3x4我们假设x2-x1x4-x31/2(x2-x3)d。因此当t4时我们可以计算出此时由一组特征组成的特征向量。 工作负载变化的绝对值之和。由于frsi只能衡量观察窗口中的整体趋势强度当两次变化相等时它无法反映太多信息。因此我们计算观察窗口中工作负载变化的绝对值之和fasc作为公式(2)。fasc越大观察窗口中的工作负载变化就越剧烈否则变化就越稳定。例如在图2中fasc d 2d d 4d。 工作负载的二阶差分的平均值。记为fmsdc公式(3)衡量了工作负载变化的“加速度”即变化的速度。这个值越大观察窗口中的工作负载序列变化就越快即波动就越强。 工作负载的线性趋势斜率。我们使用线性函数y ax b来拟合窗口中的工作负载并将直线的斜率a作为特征之一。使用最小二乘法进行拟合我们的目标是最小化拟合误差。这个值的绝对值越大观察窗口中的工作负载序列就越陡峭反映了更强烈的趋势倾向。
考虑到云工作负载的波动在特征提取之后我们评估了波动特征之间的相关性。添加多个特征的目的是提高分类准确性。然而如果特征选择不当特别是如果选定特征之间的相关性强分类器的准确性会受到冗余信息产生的影响。我们对Google云服务集群中服务器908054生成的29天CPU使用工作负载序列进行特征提取并制作了7个特征之间的皮尔森相关系数图。图3是相关图其中特征观察窗口的长度设置为3和18个时间步每个时间步为5分钟。颜色越深表示的相关性越强。基本上深色元素位于图的对角线附近表明本文提出的特征之间没有强相关性。 3.2 建模云工作负载转折点
工作负载转折点的正式定义如下对于给定的工作负载时间序列X (x1; x2; ... ; xT)T是工作负载时间序列的总长度其中工作负载转折点是工作负载局部趋势逆转的点。x的值代表工作负载跟踪数据CPU使用等将在第5.1节中详细描述。工作负载转折点xi这里我们假设点xi是一个转折点i ∈ [1; T])要么是代表系统压力的峰值点要么是代表系统空闲的谷值点两侧显示相反的局部趋势。非转折点是最接近它的上一个转折点。整个工作负载时间序列X由转折点和非转折点组成。
云工作负载趋势是连续工作负载点值的时间序列反映了一段时间内的服务器工作负载状态趋势的变化反映了状态转换。如第1节简要提到的与点值预测相比基于趋势的转折点预测有两个优点 它不容易受到单点抖动噪声的影响。云环境中的服务器工作负载可能在下一刻时间经历强烈的抖动。如图4所示如果在时间t0预测时间t1的工作负载值由于时间t1的抖动它偏离了现实。基于此时预测的点值的资源分配可能发生多个错误。 它包含丰富的长期状态信息。趋势的转变代表了旧趋势和新趋势的交替可以反映未来时期的工作负载状态。因此可以采用更合适的资源配置方法来应对变化。 图5显示了Google云服务集群中服务器编号为908054的CPU工作负载约20小时的变化其中转折点标记为红色三角形。图6展示了图5的两个典型案例。图6a中标记的点显示了一个典型的谷点点两侧的虚线代表局部趋势。我们可以观察到左侧显示下降趋势右侧显示上升趋势。相反图6b中标记的点显示了一个典型的峰值点左侧有上升趋势右侧有下降趋势。图6中显示的两种类型的点是本文所指的转折点。由于局部趋势的反向特征可以通过左侧的局部趋势符号轻松区分这两个转折点。我们论文的目的是预测即将到来的工作负载点是否是一个转折点。 4 云趋势算法设计
本节介绍基于云特征的云趋势工作负载预处理和基于云特征增强的多任务LSTM预测的整体框架。
4.1 整体框架
本文提出的CloudTrend框架如图7所示它由两部分组成一个工作负载预处理模块和一个特征增强的多任务LSTM预测模块。模型的输入是云环境中服务器的追踪数据这可以是由CPU、内存和其他工作负载组成的时间序列。工作负载预处理模块负责从原始工作负载时间序列中提取波动特征并生成用于模型训练的标记数据所有这些数据都被发送到后续的预测模块。用于工作负载转折点预测的特征增强多任务LSTM模块设置为预测转折点并输出相应的预测标签。关键步骤包括以下几点
输入云服务器的工作负载追踪数据基于云特征的工作负载预处理执行特征增强的多任务LSTM预测输出云转折点集合。 以下各节将介绍这两个模块的关键步骤和算法。
4.2 基于云特征的工作负载预处理
我们使用监督学习模型预测云服务器工作负载转折点因此需要包括特征和标签的监督数据。工作负载预处理模块从原始工作负载时间序列生成转折点标签并同时提取观察窗口中的时间序列波动特征。本节介绍云工作负载时间序列的分割算法、我们的规则过滤转折点标签生成方法和波动特征提取方法。
4.3 将云工作负载时间序列分段以基于分段线性表示建模工作负载趋势
定义工作负载趋势是工作负载转折点预测中的一个关键问题。尽管有很多建模方法我们选择了一种相对快速的方法即使用分段线性表示或分割算法PLR[32]该算法被认为适用于在线预测[26]。时间序列线性分段算法的目标是将给定的时间序列X分割成一系列段 其中且。在等式(4)中Sj是工作负载时间序列的第j段xij-1和xij是第j段的边界下标ij的x代表在原始工作负载序列中的位置索引。核心思想是在每个段内拟合一条直线以最小化总拟合误差。简而言之PLR在每一步使用最小二乘法拟合最佳直线。PLR分段算法通常根据边界分割策略分为三类滑动窗口、自顶向下和自底向上[32]。
本文采用自顶向下方法[6]来分割工作负载时间序列这已被证明是描述局部趋势的好方法。自顶向下分割的复杂度为。[6]仅根据前一片段和当前片段的端点值的大小标记了转折点。然而PLR仅基于最小拟合误差原则进行边界分割并不能保证边界点两侧的斜率相反即趋势相反。因此本文认为段的边界只是转折点的候选集需要根据两侧端点值的大小进行过滤以确保两侧有相反的趋势。假设使用PLR分割出三个连续的线段Sj-1 {xij-2 ... xij-1}, Sj {xij-1 ... xij}, Sj1 {xij ... xij1}。xij-1对应于第j段Sj的左边界xij对应于第j段Sj的右边界。为了更好地理解我们绘制了相应的分段示意图如图8所示。这些点的标签在等式(5)和(6)中定义 在上述等式中标签1表示转折点标签0表示正常点非转折点。通过计算左右相邻点和点的大小我们确保该点是正确的峰值或谷值点。
给定历史观察窗口中的工作负载时间序列xt (xt-w1, xt-w2, ... , xt)其中工作负载定义为某一资源的利用率例如CPU利用率工作负载转折点预测的目标是学习转折点指示函数yt f(xt)以判断点xt是否为工作负载时间序列中的转折点yt ∈ {0, 1}yt 0表示xt不是转折点yt 1表示xt是转折点。w是历史观察窗口的大小与第4.5节中的特征观察窗口不同表示用于预测转折点的历史工作负载数据量。示意图如图9所示。 工作量转折点预测示意图。空心点表示已知的当前点xt虚线表示未知的未来工作负荷趋势。历史观测窗口w的大小设置为3。 总之定义为局部趋势变化点[26]转折点筛选通常需要线性分段算法PLR[32]。我们采用自顶向下方法递归分割工作负载时间序列。为了充分考虑给定时间序列的每一个可能的分割位置首先我们设置一个适当的阈值并遍历整个时间序列除了两端我们至少需要为两个点拟合一条线。我们遍历每一个可能的位置使用当前位置和两端在后续迭代中为子端作为新段的端点。然后我们拟合一条线并使用最小二乘法来最小化拟合误差这也给出了下一次迭代的最佳位置。如果误差超过阈值则需要使用自顶向下算法递归分割新段直到所有段的拟合误差都小于给定的阈值。自顶向下PLR的最终结果是Xseg {S1, S2 ... Sj ... SN}如等式(4)所示。
4.4 基于过滤规则生成转折点标签
如上一节所述PLR生成的段边界不一定是转折点。因此执行无关点的过滤操作是很重要的但这一步骤经常被现有研究忽略。本文提出了一种基于过滤规则的转折点标签算法其复杂度为O(n)如算法1所示。过滤规则如等式(5)、(6)和第4.3节所述。 经过PLR分段后从原始服务器工作负载时间序列X (x1, x2, ... xT)中获得一系列段Xseg。具体来说Xseg是一系列向量的序列由每个段的左右端点组成Xboundary {x1, xi1, ... , xiN-1, xiN}就像图8中的示例所示。Xseg是过滤算法的输入输出Ylabel是每个时刻xi的标记序列。由于第一个段的左端点是起始位置第1行将此点的标签设置为0第2行开始遍历可能的段点序列第3和第4行获取两个连续段的端点其中前一个段的右端点和下一个段的左端点重合记录为x1。第5至第13行获取三个连续的端点并通过比较它与其他两点x0和x2的值来判断中间值x1是否为转折点。如果x1是这三个点中的最小值或最大值则将其标记为转折点否则它是非转折点。最后我们获得每个二进制段组的标签。其他点(X/[Xboundary])被标记为0从而获得整个工作负载标签序列。
4.5 基于滑动窗口的序列特征提取
如文献[6]、[17]中讨论的云环境中工作负载的时间序列特征通常在固定大小n的时间窗口内提取这称为特征观察窗口。在时间t特征观察窗口中的工作负载数据可以表示为xt-n1; xt-n2 ... ; xt。这一步骤的目的是从原始数据中提取反映工作负载趋势的构建特征不同的特征揭示了不同的趋势。因此我们的模型可以更好地理解工作负载的趋势并执行更高的预测准确性。在本文中应用了一种基于窗口的方法来提取工作负载的局部趋势特征。
使用长度为n的特征观察窗口我们的方法可以从序列xt-n1; xt-n2; ... ; xt中提取3个基本特征和4个波动特征其中xt是每个时刻的原始工作负载数据。文献[6]仅使用由xt确定的单个时间窗口内的特征。然而云计算系统的变化是惯性的下一时刻的工作负载趋势可能会受到前几个时刻波动特征的影响。一个明智的方法是使用前一段时间w内的特征序列并考虑原始工作负载序列。我们在此引入历史观察窗口的概念以定义预测的有效特征序列间隔w是考虑序列建模第4.3节的历史观察窗口大小它反映了特征对预测的影响范围。应当注意w不必然等于n其中n是提取波动特征的特征观察窗口的大小。为了构建训练样本需要根据w切割特征序列和原始工作负载序列。两个序列每隔w时间步被划分为一个样本。每一步之后窗口向前滑动一个单位如图7右端最右侧虚线框的左端所示。
4.6 基于多任务LSTM预测模型通过云特征增强预测转折点
我们首先定义历史观察窗口中的原始工作负载序列X为方程(7) 与原始工作负载序列Xw不同提取的特征序列Ft包含更丰富的高级波动特征。设特征序列为其中w代表历史观察窗口的大小d是特征数量。Ft的每一行是一个特征的序列。例如其中Ftmsdc包含所有fmsdcFtmsdc反映了工作负载加速度参见第3.1节的变化模式。
我们分别对特征序列和原始工作负载序列进行建模并将这两个特征的建模过程视为独立任务。考虑到LSTM[33]在捕获长期依赖性方面的杰出性能分别使用两个独立的LSTM网络分别对原始工作负载序列和特征提取序列进行处理。如方程(8)所示输入xt是时间t的原始工作负载LSTMraw是原始序列LSTM编码器输出hrt是此时刻的隐藏层表示其中融合了先前的原始序列信息。输入ft是时刻t的特征观察窗口中提取的特征向量LSTMfeature是特征LSTM编码器输出hft是此时刻的隐藏层表示其中融合了先前的特征序列信息。如图7所示原始序列LSTM编码器和特征LSTM编码器是相应的部分。 此外考虑到本文提出的四个波动特征主要衡量工作负载趋势和变化程度相同的特征值基于不同的原始工作负载值可能揭示不同的含义。例如当工作负载较重时frsi的大值可能表明上升趋势接近上限因此工作负载未来可能显示下降趋势当工作负载较低时frsi的大值可能表明工作负载尚未达到最大值因此它可能会继续上升。不同的原始工作负载值相当于不同的“参考点”特征值会在这些参考点下添加新的隐藏特征。为了捕获通过两个序列交互生成的隐藏特征并实现特征增强的效果我们使用另一个LSTM层显式融合每个时间步的原始序列LSTM编码器和特征LSTM编码器的隐藏层输出。结构如图10所示。 如图10所示hrt-w1; hrt-w2 ... hrt是每个时间步骤的原始序列LSTM编码器产生的隐藏层表示而hft-w1; hft-w2 ... hft是特征LSTM编码器在每个时间步骤产生的隐藏层表示。这两种表示被用作另一个LSTM的输入进行特征融合。融合层的每个时间步的输入为。在最后一个时间步整个序列的隐藏层表示为其中hrt是原始工作负载序列的隐藏层表示hft是特征序列的隐藏层表示而hut是融合层的前置隐藏层表示。最后使用带有sigmoid激活函数的单层神经网络表示为得到转折点概率值。
5 实验与结果分析
提出的方法的实验验证分为三个部分1) 波动特征的有效性实验为了验证本文提出的转折点波动特征的有效性首先在[6]中采用的传统机器学习模型上进行了比较实验2) 特征增强多任务LSTM模型有效性的实验为了验证本文提出的模型的性能与传统机器学习模型进行了比较实验3) 模型简化实验我们移除额外的特征序列和多任务结构进行实验验证模型各个模块的有效性。所提出的云工作负载预测模型是基于Intel(R) Core(TM) i7-9750H CPU时钟速度2.60 GHz16.0 GB RAM以及NVIDIA GeForce GTX 1060 with Max-Q Design GPU实现的。实验在Python版本3.6上进行使用TensorFlow-gpu 1.10.0, Scikit-learn 0.23.1, Keras 2.2.4, Talib 0.4.17, 和 Tsfresh 0.11.2。
5.1 云工作负载追踪数据
为了评估所提出模型的性能我们在开源的Google云服务集群追踪数据上进行了实验。该追踪数据是Google在2011年发布的是29天内超过670,000个作业的实际运行追踪日志包含了在12,500多个节点上大约25百万个任务的信息[16][28]。系统每5分钟报告每个任务的资源使用情况包括CPU、RAM等。在本文的实验中主要考虑了CPU使用情况。给定时间点的服务器工作负载是该特定节点上所有运行任务的总工作负载因此我们累计了每个节点上每个时刻所有任务的资源消耗作为工作负载。每个节点共有8352个样本数据点。在本文中随机选择了ID为207776314 (M1)、908054 (M2)和1237805 (M3)的三个节点作为三个实验数据集。由于每个数据集包含8352个点如果PLR算法的分割阈值太大转折点会非常少无法支持模型的训练。相反阈值太小将导致最终的转折点过多失去了转折点表征趋势的效果。在不同阈值0.1, 0.01, 0.001, 0.002, 0.003, 0.0015, 和0.0005的实验中0.0015结果达到了最佳平衡——分割适当且预测准确。因此我们的实验中算法的分割和标记阈值为0.0015。PLR的实现来自Keogh[32]等人。之后每个数据集被划分为训练集、验证集和测试集按时间顺序排列。前80%的数据用于训练然后10%的数据用于验证参数最后10%的数据用于测试。
此外我们还在属于Grid workload Archive [30]的高性能计算HPC网格工作负载和属于Alibaba Open Cluster Trace [29]的Web追踪上进行了实验。对于HPC追踪我们累积了每个周期内所有作业使用的CPU时间作为工作负载用作数据集(GA)共有7369个点。对于Ali追踪我们首先选择了ID为20的节点(ALI)并每10秒提取一次CPU利用率作为实验数据集共有8628个点以及属于100个ID的平均数据集(AVE)。类似于Google集群追踪我们在数据集GA、ALI和AVE上尝试了相同的阈值并为每个选择了合适的阈值——分别为0.0015、0.0015和0.00005。特别是在数据集AVE上属于ALI追踪的100个ID的平均值使CPU利用率的幅度和频率降低因此我们在这个数据集上使用了更小的阈值0.00005使分割算法更敏感以便最终的转折点数量不会太少。PLR的实现和训练与测试数据的划分与Google集群追踪保持一致。
标记训练集的效果如图11a、11b和11c所示。红色三角形代表标记的转折点蓝色点代表普通点。 5.2 训练方法和评价指标
我们使用小批量随机梯度下降和Adam优化器来训练模型。学习率设置为0.001批量大小设置为64如Adam优化器推荐的那样。通过标准反向传播学习参数损失函数是二元交叉熵 N是样本总数yn是样本对应的真实标签是模型对样本的输出表示将样本预测为正例的概率。
F1分数被视为模型评估的主要指标由精确度和召回率计算得出。精确度反映了分类器的分类准确性表示在所有被预测为正的样本中正确预测的样本比例。召回率反映了分类器的召回能力表示在所有正样本中被正确预测的样本比例。如下方程(10)所示精确度和召回率是从三个指标计算得出的真正例(TP)假正例(FP)和假负例(FN) 5.3 基线算法
在选择基线算法时我们考虑了三个方面。首先我们将我们的模型与当前的经典模型如LR和WSVM进行比较以验证FETM-LSTM的有效性。其次我们比较增加波动特征前后的模型以验证本文中云工作负载波动特征的有效性。我们声称使用表1中列出的所有7个特征作为输入的基本算法被形成为基线-波动LR-Fluctuant等。第三我们对FETM-LSTM的核心是LSTM的模型简化实验与更基本的LSTM模型进行比较以验证FETM-LSTM的特征增强特性和多任务结构的有效性。参数和特征观察窗口的设置保持不变。基于上述分析选择的基线模型如下
LR-Basic和LR-Fluctuant。逻辑回归LR是一种广泛用于文本分类、欺诈检测等领域的线性分类方法。LR-Basic使用表1中列出的三个基本特征作为输入。对于此模型中的正则项参数C我们将搜索范围设置为1 × 10^-4; 1 × 10^-3; 1 × 10^-2; 1 × 10^-1; 0.5; 1; 10; 15; 20; 100; 对于特征观察窗口长度n我们将搜索范围设置为3, 6, 9, 18并取最佳F1分数的参数值组合。
WSVM-Basic和WSVM-Fluctuant。本文中使用表1中列出的基本特征作为输入的加权SVM被称为WSVM-Basic。详细内容在第2节中描述。正样本和负样本的权重被设置为训练集中样本数量的倒数比使用RBF核函数。惩罚参数C和核函数系数gamma的搜索范围与LR相同。
P-LSTM和S-LSTM。我们将仅使用原始工作负载序列作为输入的LSTM模型称为P-LSTM模型。为了验证FEMT-LSTM模型的特征增强效果P-LSTM模型被用作基线。仅使用单独的LSTM进行特征提取的模型被称为S-LSTM即每个时间步的输入是对应时刻的所有七个特征。S-LSTM也被采用为另一个基线以验证FEMT-LSTM模型的多任务结构的效果。
在P-LSTM、S-LSTM和FEMT-LSTM中使用的LSTM隐藏层神经元数量被设置为256。特征观测窗口的大小被设定为与WSVM-Fluctuant相同的大小n。历史观测窗口的大小w被设置为5或10。
5.4 实验结果与讨论
在三个数据集上的比较结果如表2和图12所示。FEMT-LSTM在所有六个数据集中获得了最高的F1分数。图12a展示了部分模型的F1分数。代表FEMT-LSTM的深色线显著高于其他模型。与我们的目标模型WSVM-Basic相比FEMT-LSTM在六个数据集上平均提高了6.6%分别提高了6.6%5.7%7.6%6.0%4.2%9.5%。此外我们记录了在运行不同模型时AVE数据集消耗的时间如表3所示。 5.4.1 波动特征的有效性分析
图12b展示了表2前半部分的四组实验比较它比较了在添加波动特征前后LR和WSVM的F1值。可以看出具有波动特征的机器学习模型比仅使用基本特征的模型更好。与WSVM-Basic在六个数据集上比较添加四个波动特征后WSVM-Fluctuant的性能分别提高了2.3%3.0%2.5%5.8%4.1%0.7%平均增加了3.1%。在将4个波动特征添加到LR-Basic之后尽管在M1、ALI和AVE数据集上的表现略低于基本特征的LRF1分数分别降低了0.4%0.8%和0.4%但在其他三个数据集上分别增加了1.4%1.3%和18%因此平均增加了3.2%。所有这些变化表明我们提出的特征对于转折点预测是有效的。同时可以发现LR的性能较差。这是因为LR模型是一个简单的线性模型。当特征数量少且样本难以区分时其效果往往不如使用核函数的WSVM模型。WSVM使用径向基函数作为核函数将原始输入数据投影到高维特征空间中以便更好地区分原始样本点。
5.4.2 特征序列的有效性分析
为了说明使用滑动窗口方法提取的特征序列的有效性图12c展示了P-LSTM和S-LSTM之间的实验比较它们使用滑动窗口提取序列特征以及WSVM它使用单一窗口提取特征。与将特征在单一时间窗口中作为输入的传统机器学习模型相比将一系列特征作为输入以考虑特征窗口之间的相关性的模型有更好的性能。两个LSTM基线模型P-LSTM和S-LSTM在M2和M3数据集上均优于WSVM-Fluctuant分别在M2上增加了1.8%和2.2%在M3上增加了3.6%和0.11%。根据图12c中的数据WSVM-Fluctuant、P-LSTM和S-LSTM在六个数据集上的平均F1值分别为0.5291、0.5216和0.5379。与使用所有7个特征形成特征序列的S-LSTM相比P-LSTM仅使用原始工作负载序列并且不考虑其他六个特征序列之间的相关性因此P-LSTM的效果不如S-LSTM。此外S-LSTM的性能优于WSVM-Fluctuant这表明使用多个特征窗口并将特征组合成一个序列可能会比仅使用单一窗口提取特征的模型取得更好的结果。
5.4.3 简化实验分析
为了说明模型结构的有效性图12d展示了简化实验的结果。与仅使用平原原始工作负载序列作为输入的P-LSTM相比FEMT-LSTM在六个数据集上的得分分别提高了10.6%0.9%1.4%0.7%0.2%和12.4%平均增加了4.4%。这表明在集成手工设计的波动特征之后通过学习特征序列之间的交互关系可以增强模型性能。同时可以看出FEMT-LSTM模型优于S-LSTM没有单独的结构并且在六个数据集上分别提高了5.1%0.5%4.9%0.2%0.3%和5.4%点平均增加了2.7%。因为原始工作负载序列和特征序列有不同的含义即特征序列是基于原始序列计算得出的并描述了人为指定指数的变化通过参考原始序列获取更有效的信息因此单独建模然后合并它们的策略是有效的。
6 结论
本文提出了CloudTrend——一种云工作负载转折点预测方法。CloudTrend采用了基于规则过滤的PLR分段线性表示算法和特征增强LSTM的云特征增强深度学习方法。它能够巧妙地通过引入时间维度来捕捉云特征中的重要波动从而提高性能并且能够很好地适应云环境。
我们设计了度量标准并进行了全面研究以评估我们的方法在广泛的大规模真实世界云工作负载例如大规模集群追踪、Web追踪和HPC工作负载追踪中的性能和开销。实验表明我们预测方法的核心算法FEMT-LSTM至少提高了6.6%的F1分数。与其他现有方法相比它在捕捉波动特征和长期过去信息方面也表现良好。
总之CloudTrend的分析和评估结果表明我们的方法能够解决具有动态和高变化性质的真实世界云工作负载的趋势预测问题。这项工作将帮助其他云研究人员和实践者设计新的基于时间序列分析的预测方法以自动扩展云资源。将CloudTrend应用于大规模资源管理和资源自动扩展平台是我们未来的工作。