云平台的负载预测及弹性伸缩方案研究

2024-03-15 10:15刘振博
铁路计算机应用 2024年2期
关键词:弹性卷积预测

刘 佳,王 冰,王 琛,刘振博

(1.中铁信弘远(北京)软件科技有限责任公司,北京 100844;2.中国铁路信息科技集团有限公司,北京 100844)

云计算自兴起以来,因其高效的资源管理、较低的经济成本、灵活的可扩展性等优势而受到广泛关注,已成为数字经济的基础设施和“互联网+”时代的重要支撑[1]。为保障云平台的高可用性和稳定性,通常采取弹性伸缩策略,根据实际负载情况来动态调整应用的资源配额[2]。如主流容器编排平台Kubernetes 采用响应式伸缩策略实现容器的水平伸缩,通过内部伸缩控制器周期性地轮询监控应用的负载状态,并根据处理器、内存等资源指标的阈值规则进行动态调整资源分配[3]。这种基于阈值规则的响应式伸缩策略原理简单,是一种根据阈值规则触发的弹性伸缩方法,阈值标准依赖于用户经验,存在指标设定困难、弹性滞后等问题[4]。

相较于传统响应式伸缩方式,主动式伸缩具有更强的主动性和智能性,可以有效提升资源利用率和服务质量。主动式伸缩策略的原理是根据历史负载数据建立预测模型,预测未来需要的资源,并基于预测值提前调整资源供给。主动式伸缩方法实现资源配置的有效性依赖于预测模型的准确度,由于云负载数据时序变化模式多样,具有波动性、持续性、多周期性等特征,构建精确的负载预测模型是一项具有挑战性的任务,需要综合考虑数据收集、特征工程和模型选择等方面[5-6]。针对这一难点问题,进一步优化云平台弹性伸缩策略,对于保障云平台平稳高效运行、提升云服务质量具有重要意义。

基于以上研究,本文分析研究了自回归移动平均(ARMA,Autoregressive Moving Average)、卷积神经网络(CNN,Convolutional Neural Networks)和支持向量回归(SVR,Support Vector Regression)等3 种典型预测模型,并结合3 种模型的特点,提出一种基于ARMA-CNN-SVR 的负载预测组合模型,提高了负载资源预测的准确度。通过所提出的负载预测模型对云平台中的资源使用情况进行预测,并根据预测的未来资源使用情况优化弹性伸缩策略,最终得出满足云平台高负载运行的弹性伸缩方案。

1 基于负载预测的弹性伸缩方案设计

1.1 典型预测模型

ARMA 模型、CNN 模型和SVR 模型都适用于对时间序列数据的分析和预测,在以时间计容量变化的扩缩容场景中,三者都是匹配度较高的分析预测模型,且具备各自明显特点,在算法融合方面有一定潜力可挖。

(1)ARMA 模型是一种常用于时间序列预测的统计模型。它基于时间序列的自相关性和移动平均性质,通过对数据进行拟合来预测未来的观测值[7-8]。其优点在于考虑了过去观测值和误差项之间的相关性,适用于对时间序列数据建模,但对于非线性、非平稳的数据拟合效果较差,难以处理长期依赖关系。

(2)CNN 模型是一种深度学习模型,其卷积层和池化层具有强大的计算能力,且能够降低数据在平移过程中的损失率,从而显著减少对特征向量的影响,经过不同的卷积层和池化层,可以有效地控制模型的拟合能力,从而降低拟合过程中特征向量的维数。用于时间序列预测是通过在时间序列上进行卷积操作提取局部特征,并利用池化操作实现特征的降维[9-10],但对数据前后关系表现不够充分。

(3)SVR 模型主要通过历史时间序列数据训练,也可以用于未来时间序列预测[11]。其核心思想是通过核函数将输入的序列数据映射到某个高维空间中,再对其进行线性回归,并将回归结果通过相反的映射方式映射回去,最后得到回归结果,解决了维数问题,其中,算法的复杂度和样本维数都是相互独立的。SVR 模型的优点在于使结构化风险降低至最小且对数据拟合表现效果较好。

1.2 负载预测组合模型

ARMA、CNN、SVR 等3 种预测模型各有优缺点,且存在融洽的优劣互补之势。基于此,本文提出了一种ARMA-CNN-SVR 组合模型,先通过ARMA 做预测值序列更新,再通过CNN 训练数据获取卷积层权重参数,最后将卷积层输出结果作为SVR 的输入特征向量进行训练,进行负载资源预测。基于该组合模型的负载预测方法如下。

(1)数据预处理。由于ARMA 模型需要时间序列满足平稳性和非白噪声的要求,因此利用差分法来实现数据的平滑处理,得到平稳序列,并通过单位根检验法(ADF,Augmented Dickey-Fuller)进行平稳性检验。

(2)ARMA 模型构建。基于信息量准则的方法确定模型阶数,通过最小二乘法确定模型参数,进而完成ARMA 模型构建。

(3)时间序列更新。通过构建的ARMA 模型进行时间序列预测,并将预测值与原始数据拼接起来,得到新的数据集。

(4)CNN 特征提取。构建CNN 模型,通过训练更新后的数据集进行特征提取,对ARMA 预测进行进一步修正。进行特征提取时,根据实际情况,通过用例进行反复交叉验证(训练)来选择最优的参数。

(5)SVR 模型预测。构建SVR 模型,使用CNN提取的特征向量作为输入,SVR 模型不需要复杂的预处理,直接从输入数据中自动进行特征挖掘和提取,通过输入融合值,将二维输入空间映射到高维空间,在高维空间中构造一个最优函数,处理二维空间中的预测回归问题。

1.3 基于负载预测的弹性伸缩方案

传统响应式伸缩的水平扩展自动缩放(HPA,Horizontal Pod Autoscaler)策略虽然可以实现弹性伸缩,但该策略根据当前数据及阈值规则触发,存在指标设定困难、弹性滞后等问题[12]。本文提出一种基于ARMA-CNN-SVR 负载预测组合模型的弹性伸缩方案,根据预测出来的负载值提前对目标Pod 进行弹性伸缩,具体方案如下。

(1)监控模块调用Metrics Server 中的应用程序编程接口(API,Application Programming Interface)获取集群中央处理器(CPU,Central Processing Unit)利用率信息,Metrics 将得到的CPU 利用率信息返回给监控模块,监控模块对数据进行规范化处理后存储到数据库中。

(2)负载预测模块读取数据库中的CPU 利用率数据,将该数据输入到ARMA-CNN-SVR 预测组合模型中进行预测,并将预测结果进行处理后存储到数据库中。

(3)监听程序持续监听数据库存储的预测信息是否有更新,当有新的预测结果被存储到数据库时,监听程序将根据预测结果与应用被预测时所拥有的资源信息来判断应用是否需要进行弹性伸缩。

(4)根据CPU 利用率预测出的值,计算期望的目标Pod 的资源使用量。如果该使用量大于设定的数量,监听程序将启动一个定时触发的命令,在预测时间的前一段时间内向应用控制器发送扩容指令;如果小于设定的数量,则对应用控制器发起缩容指令,至此一个扩容或缩容完成,直到监听程序监听到新的预测信息并存储到数据库为止。

2 实验与结果分析

2.1 模型实验

2.1.1 实验模型选择

本次实验模型选择为:本文组合模型、ARMA模型、CNN 模型、SVR 模型,其中,本文组合模型为实验组,其余模型为对照组。

2.1.2 测试云环境准备

实验选取信创适配实验室中搭载的云平台作为研究对象,具体配置包括:21 台控制节点(鲲鹏920CPU,32Core@2.6 GHz),4 台网络节点(鲲鹏920CPU,32Core@2.6 GHz),27 台计算节点(鲲鹏920CPU,32Core@2.6 GHz),14 台存储服务器。以上节点均运行在Euler v2r10 操作系统中。

2.1.3 冷却规则设计

为了防止伸缩动作过于频繁可能影响服务的正常使用,造成应用混乱,伸缩控制需要有冷却时间。伸缩组在冷却时间内,会拒绝由告警策略触发的伸缩活动,其他类型的伸缩策略(如定时策略和周期策略)触发的伸缩活动不受限制。

2.1.4 测试用例

负载单位为标准虚拟机台数。负载变化时间与需求量如表1 所示。

表1 测试用例表

2.2 结果分析

使用ARMA 模型、CNN 模型、SVR 模型及本文组合模型得到的负载预测结果如表2 和表3 所示。

表2 负载预测模型预测结果

表3 负载预测模型预测结果对比

根据实验结果可以得出以下结论。

(1)ARMA 模型预测表现出明显的平均回归取向,且在负载变化较大的情况下反应迟钝。其平均预测偏移量达35%以上,在整个实验中成绩最低。

(2)CNN 模型预测偏离优于ARMA 模型,在算法上有一定优势,平均偏移量为31% 左右,与ARMA 模型35.8%的成绩相比,提高有限。

(3)SVR 模型预测偏离优于CNN 模型,平均偏移量在30%以内,且出现了实验中的最小偏离值1.1%,从结果上看,模型有效性得到进一步验证。

(4)本文组合模型通过3 种模型的融合和参数调整,最终结果有了显著的进步,平均偏移量达到了15.1%。

3 结束语

本文研究分析了ARMA、CNN 和SVR 等3 种负载预测模型,并结合这3 种负载预测模型的优缺点,提出一种基于ARMA-CNN-SVR 的负载预测组合模型,从实验结果可以得出,组合后的预测模型提高了预测结果的准确度。结合负载预测,进一步优化云平台弹性伸缩策略,从而更好地应对负载的波动和变化,有效地避免了资源浪费和不足的问题,提高系统的利用率,降低运营维护成本,提升用户体验。展望未来,云平台的性能优化在网络流量、响应时间等其他指标方面还有进一步的研究和改进空间。通过持续改进和创新,云平台有望在未来为大规模系统的管理和运营维护带来更多的便利和效益。

猜你喜欢
弹性卷积预测
无可预测
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
为什么橡胶有弹性?
基于3D-Winograd的快速卷积算法设计及FPGA实现
为什么橡胶有弹性?
注重低频的细节与弹性 KEF KF92
从滤波器理解卷积
弹性夹箍折弯模的改进
基于傅里叶域卷积表示的目标跟踪算法