APP下载

基于需求预测的PaaS平台资源分配方法

2019-08-27徐雅斌彭宏恩

计算机应用 2019年6期
关键词:多元回归需求预测资源分配

徐雅斌 彭宏恩

摘 要:针对缺乏PaaS平台下资源需求的有效预测与优化分配的问题,提出一种资源需求预测模型和分配方法。首先,根据PaaS平台中应用对资源需求的周期性来对资源序列进行切分,并在短期预测的基础上结合应用的多周期性特征,利用多元回归算法建立综合的预测模型。然后,基于MapReduce架构设计实现了一个Master-Slave模式的PaaS平台资源分配系统。最后,结合当前任务请求和资源需求预测结果进行资源分配。实验结果表明,采用该资源需求预测模型和分配方法后,相比于自回归模型和指数平滑算法,平均绝对百分比误差分别下降8.71个百分点和2.07个百分点,均方根误差分别下降2.01个百分点和0.46个百分点。所提预测模型的预测结果不仅误差小,与真实值的拟合程度也较高,而且利用较小的时间开销就可以获得较高的准确度。此外,使用该预测模型的PaaS平台的资源請求的平均等待时间有了明显的下降。

关键词:云计算;平台即服务;需求预测;资源分配;多元回归

中图分类号: TP393.09;TP391

文献标志码:A

Abstract: In view of the lack of effective resource demand forecasting and optimal allocation in Platform-as-a-Service (PaaS) platform, a resource demand forecasting model and an allocation method were proposed. Firstly, according to the periodicity of the application demand for resources in PaaS platform, the resource sequence was segmented. And on the basis of short-term prediction, combined with the multi-periodicity characteristics of the application, a comprehensive prediction model was established by using the multiple regression algorithm. Then, based on MapReduce architecture, a PaaS platform resource allocation system based on Master-Slave mode was designed and implemented. Finally, the resources were allocated based on current task request and resource demand prediction results. The experimental results show that, compared with autoregressive model and exponential smoothing algorithm, the proposed resource demand forecasting model and allocation method has the mean absolute percentage error drop of 8.71 percentage points and 2.07 percentage points respectively, root mean square error drop of 2.01 percentage points and 0.46 percentage points respectively. It can be seen that the prediction result of the prediction model has little error and its fitting degree with real value is high, while high accuracy costs little time. Besides, the average waiting time of PaaS platform with the proposed prediction model for resource requests decreases significantly.

Key words: cloud computing; Platform-as-a-Service (PaaS); demand forecasting; resource allocation; multiple regression

0 引言

云计算以其便捷、高可靠性的资源服务方式获得了人们的青睐并得到了快速的发展[1],越来越多的应用开始部署在云中。在云计算的三层服务体系中,作为承上启下的平台即服务(Platform-as-a-Service, PaaS)层通过为应用程序提供完备的部署和运行环境,使开发者在开发的过程中只需关注应用开发本身,而不需要关心软件及硬件环境,这可以在很大程度上节省开发人员的工作量,缩短开发周期。

PaaS平台中资源需求量的获取主要有两种方式:一种是实时获取应用对资源的访问次数及使用量,并估算出当前应用对资源的需求量。由于PaaS平台中的应用一般规模较大,并发程度较高,且资源需求变化较快[2],这种实时获取的方法不可避免地会有一定的滞后性,给资源分配策略带来较大的压力,甚至会违反服务等级协议(Service-Level Agreement, SLA)[3]。另一种方式是采用预测算法对PaaS中应用的资源需求量进行预测,根据历史数据,预测应用在未来一段时间可能的资源需求量。一旦获知未来的资源需求量,资源分配器就可以提前制定相应的策略[4]。这种方式能够为PaaS平台的资源分配提供更加科学、合理的决策支持,对PaaS平台的资源优化配置以及系统的稳定运行有直接的影响。因此,资源需求预测是目前PaaS平台资源分配研究的重点。

目前的云计算资源预测模型可以分为两类:第一类是基于时间序列的基础预测模型;第二类是基于神经网络、支持向量机(Support Vector Machine, SVM)等机器学习方法的预测模型。

文献[5]利用动态趋势预测的思想,通过当前负载与上一时刻负载的比较来预测负载上升或下降的趋势,并且通过当前负载与历史负载均值的比较,调整负载增加或减少的幅度,计算下一时刻的负载值。该模型简单快速,但是预测误差率相对较大。

文献[6]采用指数平滑的技术实现对即将到来任务的预测,在云计算系统中获得最近的任务序列,采用指数平滑(Exponential Smoothing, ES)算法,通过任务的历史信息预测即将到来的任务的趋势,如到达时间、任务大小和执行时间。

文献[7]提出了云计算中的弹性资源扩展预测方案,在该方案中,采用轻量级的信号处理技术与统计学方法,实现动态的资源需求的在线预测。具体方法为:利用快速傅里叶变换技术分析资源需求序列的特征,在没有相似负载模式时使用离散的马尔可夫过程对资源需求进行预测。

文献[8]综合考虑最小化成本与SLA,采用基于二阶自回归移动均值的预测模型。通过建立用户行为模型,对用户的历史行为进行分析,计算出未来短期内负载所需的资源量。该算法中将部分变量赋予固定值,这可能会影响算法的适应能力以及算法的灵活性。

文献[9]中基于虚拟机的外部表现,提出了利用TCP-like模式计算指数加权移动平均值来预测服务器上的CPU负载。模型中最重要的是稳定性与响应能力的折中因子a,通过实验确定合适的a,并且通过调整a的正负性,实现对负载波动趋势的预测。

以上基于时间序列的传统预测方法具有模型简单、收敛速度快等特点。但是,由于PaaS中應用业务内容的多样性以及服务时间的不一致性的影响,导致应用对资源的需求量具有很强的不确定性。传统的基于时间序列的预测模型在这种情况下会不可避免地产生较大的误差,不仅可能会引发违反SLA问题,而且可能导致资源浪费。因此,许多研究者将机器学习方法应用到资源需求预测中。

文献[10]采用两层的前向反馈径向基函数神经网络来对云计算环境中单虚拟机能耗进行预测。由于神经网络具有较强的非线性拟合能力,可以通过训练逼近复杂的非线性函数[11],得到较好的近似解。

针对传统的单值预测所包含的信息量过少、不能支持完善的自适应调整策略、会引发不必要的调整等问题,文献[12]利用SVM对云环境中用户的并发量进行预测,并采用梯度下降粒子群算法进行优化。

文献[13]采用两层模式进行资源预测。第一层采用包括自回归、移动均值、神经网络等多个子模型的自回归组合,并且根据预测误差对组合中的每个预测子模型的权重进行调整。该模型的第二层利用不同虚拟机之间的关系以及不同序列之间的相关性来消除噪声数据的干扰,提高预测的健壮性。这个预测模型综合考虑了不同虚拟机的交叉相关性,但是在云服务中,仅能根据虚拟机的外在表现(如CPU、内存的使用情况)判断其不同虚拟机之间的差别,而这种差别是微弱的。

综合云计算中资源预测的发展趋势以及国内外研究现状得出,传统的基于简单时间序列的预测方法很难适应云计算环境中复杂多变的环境。而目前基于机器学习的预测方法,无论是神经网络、SVM还是其他一些算法,大部分是针对IaaS层的,是以虚拟机为基本对象的预测算法[14],而针对PaaS层面资源预测方法的研究相对较少。由于PaaS层主要面向的对象为应用,导致其与IaaS层有较大的不同,主要表现在:

1) 资源需求变化幅度不同。一般情况下,IaaS平台中的资源短期内变动幅度较小,而PaaS平台中的资源变动幅度较大,并且可能出现激增的情况。

2) 资源需求的周期性不同。在云计算环境中,应用多采用跨虚拟机以及跨服务器的部署方式[15],因此一个应用可能存在多个实例,并且部署在不同的虚拟机中,这种情况下,单个虚拟机的资源需求量没有明显的周期性,而对于PaaS平台中的某个应用而言,通过分析是可以发现其周期性的。

通过对PaaS平台中应用对资源的需求进行准确的预测,可以优化PaaS平台的资源配置,合理、有效地进行资源分配,从而提高云平台的应用效率,确保PaaS平台上应用的稳定运行[16]。准确的预测算法能使PaaS平台预知应用负载的变化趋势,并根据负载变化趋势更好地实现资源的有效配置和弹性分配,使PaaS平台上的应用可以高效平稳地运行,避免不必要的开销。因此,资源需求预测技术可以有效提高资源分配的科学性和准确性。

为此,本文提出并设计了面向PaaS平台的资源需求预测模型和资源分配方法,通过基于时间序列的短期预测与周期性预测相结合进行综合预测,从而对PaaS平台的资源进行科学、合理的分配。

1 基于时间序列的短期预测

短期预测对于云计算的资源配置有着重要的意义[17]。短期时间序列预测的主要思想是利用某一事物过去的行为来预测其将来的可能变化,即通过一段时间内的历史数据来预测将来短期内该事物的变化趋势。相较其他方法而言,由于自回归模型具有高效、简洁的特点,因而我们采用自回归模型进行短期时间序列预测。

自回归模型(Autoregressive Model)的特点是用自身作回归变量,是一种利用前期若干时刻的随机变量的线性组合,预测即将到来的短时间内变量变化趋势的线性回归模型[18]。具体形式如式(1):

为了获得自回归模型的最佳拟合系数,需要找到一种参数拟合方法。最小二乘法是一种数学优化技术,通过最小化误差的平方和寻找数据的最佳匹配,其特点是简洁高效,不需要大量迭代。为此,本文中使用最小二乘法进行参数拟合,使其与实际值的拟合误差最小。通过求得模型中参数的最优值,解决回归问题。

在回归模型中,使总的拟合误差(即拟残差)达到最小作为选择拟合曲线有三种方法:

1)用“残差和最小”确定直线的位置。但是这个标准存在一些不足,如果只是对误差进行简单的相加求和,会出现“残差和” 相互抵消的问题。

2)为了解决“残差和”会抵消的问题,可以使用“残差”绝对值的和最小作为标准,但是绝对值计算起来比较麻烦。

3)以“残差平方和最小”为标准,使用最小二乘法解决问题。采用这种方法,不仅计算比较方便,得到的估计量还具有优良的特性。

在本文的回归模型中,采用第三种方法,需要使所有的观测值的“残差平方和”最小,通过计算得到自回归模型的平方损失函数:

2 基于多元回归模型的综合预测

单独使用基于时间序列的算法或回归算法的预测结果都是不准确的。因为,短期时间序列算法只能根据近期的数据进行趋势预测,不能充分利用历史数据,因而预测的精度不高;如果只考虑周期性预测,虽然能充分利用历史数据,但是不能很好地掌握当前资源需求的变化趋势,尤其是在资源需求波动性较大的情况下,会产生较大的误差。在本文的模型中,充分考虑了这两者的不足,结合时间序列与回归分析的优势来预测PaaS平台中应用的动态资源需求。

在本文提出的预测模型中,因为要综合考虑资源需求的短期趋势以及周期性,这时采用自回归以及一元回归分析进行预测是难以奏效的。因此,在本文的预测算法中,采用多元回归模型作为综合预测的基础。

多元回归是自然科学领域的一种非常重要的多元统计分析方法,它以数理统计为基础,通过对大量观测值或者历史数据的分析,确定各个变量之间的相关性。在一个变量受多个因素影响的问题中,多元回归算法是一种行之有效的方法[19]。在本文的问题中,假设需要预测的值为y,样本变量为x,每组样本数量为p,n组观测值为:

使用梯度下降算法计算时,b首先被初始化,然后通过不断迭代计算b的参数,最终结果收敛于最优值。

在梯度下降算法中,α决定了迭代搜索的速度。如果α取值较大,可能在迭代的过程中越过最小值,出现overshoot minimum的现象;如果α过小,会造成迭代次数过多,导致算法的速度很慢。因此,应该依据问题的具体情况确定合适的α值。

梯度下降算法的步骤如下:

1)确定移动步长的大小(Learning rate)。

2)给定一个初始值集合{b1,b2,…,bp} 。

3)确定一个梯度下降的方向,然后根据开始确定的移动步长向下移动,并更新b1,b2,…,bp。

4)当下降的高度小于定义的阈值的时候,则停止下降;否则继续迭代搜索。

在多元线性回归模型中,变量的权值确定分为两种:一种是参数学习法,一种是非参数学习法。在参数学习法中,模型通过训练数据得到一系列权值(参数),然后根据这些权值来预测数据。非参数学习法在预测的过程中,每次都需要重新训练新的数据,得到新的权值,这将导致每次训练得到的权值也是不一样的。

在本文的问题中,PaaS平台中资源需求量的波动性可能会比较大,所以选择非参数学习法进行资源需求的预测。

3 PaaS平台资源分配系统设计

为了能够提供最优的资源分配和计算服务,并获得整体更好的性价比和处理效率,就需要采用PaaS架构的云计算平台来进行资源分配和服务。在这种PaaS架构的云计算平台中可以综合考虑服务质量(Quality of Service, QoS)、资源使用情况、服务器与虚拟机数量等诸多因素[21]。为此,本文在原有的云计算平台基础上,基于Hadoop的MapReduce架构实现了一个Master-Slave模式的PaaS架构,并由此进行资源分配和计算服务,从而可以有效实现大型应用的分布式部署,将一个应用映射成多个应用实例,实现应用实例的跨虚拟机或者跨服务器部署。

为了能够有效地收集PaaS平台中的相关信息,并据此进行负载预测和资源分配,以进一步优化和提高PaaS平台的整体性能,构建了如图1所示的资源分配系统。

本文提出并采用的资源分配系统主要由APP Master节点和Web服务器集群组成,Web服务器提供对外访问服务,也是资源分配的主要对象。APP Master作为管理节点对集群的资源进行管理,主要负责外部访问的解析以及资源的分配,由请求解析模块、监控器、需求预测模块、资源分配器等组成。各个模块具体功能如下:

1)解析器主要负责对外部访问的解析,当有外部访问时,解析器会对其进行信息提取,并对这些信息进行相应的计算得到负载值,以便预测算法和调度模块更好地对资源进行预测与调度。

2)监控器会周期性地收集集群中各个服务器的资源负载信息,以及其中虚拟机、应用实例所占资源的比率,然后将这些信息提交给资源分配器。

3)需求预测模块中的预测算法能根据应用的历史负载信息预测应用在下一时刻的资源需求量,并将其提交给资源分配器,作为其资源分配时的重要参考指标。

4)资源分配器根据预测模块的预测值以及监控器提供的信息,利用其中的调度算法制定资源分配方案并实施。

在本调度系统中,APP Master是资源分配的核心节点,依据用户提交的请求或任务调度相应的资源。它不仅需要在SLA范围内及时响应用户的请求,而且还需要尽可能提高云计算服务的资源利用率。然而,盲目地提高服务器的资源利用率会严重影响其中应用的服务质量,因此需要一个需求预测模块来对云平台中的应用负载进行预测,提前知晓应用在下一时刻的负载,即资源需求量。这样,可以使Mater中的资源分配器制定出更加合理、有效的資源分配方案,在保证SLA的同时提高云平台的资源利用率。所以,需求预测模块有着极其重要的意义,也是本文的研究重点。在此模块中,本文设计了短期预测与周期性预测相结合的综合模型。通过记录在数据库中的历史数据,计算出PaaS平台中的应用在未来时刻对资源的需求量。

4 实验结果及分析

实验中,从如图1所示架构的PaaS平台资源分配系统的监控模块收集资源需求量数据,作为相应的数据集合。该PaaS平台主要用于提供Web访问以及数据处理功能,对外访问功能主要由Weblogic调度,数据处理功能由Oracle实现。对2016年10月到11月期间我们构建的资源分配系统监控模块获取的资源需求量数据进行实验。

本文实验数据集包括20160条资源请求数据。选择其中的3/4作为训练集,剩下的1/4作为测试集。为了弥补数据量的不足,采用交叉验证的方法来检验资源需求预测模型预测的准确性和性能的穩定性。为了充分验证预测模型的有效性,本文在同一实验环境中重复进行多次实验,选择多次实验的均值作为实验结果数据。通过这种方法,可以有效排除偶然因素带来的实验干扰。

本文预测模型对资源需求量的预测值与实际值的对比结果如图2所示。其中,虚线代表预测值,实线代表测试获取的真实值。纵坐标为CPU数量,单位为台。横坐标为时间,单位为毫秒。由图2可以看出,资源需求预测结果与实际结果基本相同,虽然由于趋势惯性的影响,在峰值时会产生一定的误差,但很快就能收回来,与实际值保持一致。总的来说,本文提出的预测模型能够比较准确地预测资源需求量变化的趋势。

5 结语

针对PaaS平台应用负载具有周期性的特点,本文设计了一种在资源需求预测的基础上进行资源分配的方法。针对资源需求预测,将短期预测与周期性预测相结合,利用多元回归模型以及梯度下降算法对PaaS平台中的资源需求量进行预测。在资源分配上,基于MapReduce架构设计实现了一个Master-Slave模式的PaaS架构,并由此进行资源分配和计算服务。

实验结果表明,本文提出的模型和方法在预测准确性方面相较传统预测算法有明显的提高,资源消耗量和任务平均等待时间分别有不同程度的下降。通过资源需求预测结果进行资源分配,不仅能提高资源利用率,节省服务的成本,也能缩短对用户的响应时间,提升用户的服务体验,有效保证SLA的执行。但由于实验部分所采用的数据集是从自己团队构建的PaaS平台中获取的实验数据,数据量不是很大,而且不一定具有广泛的代表性,因此系统的性能指标可能会因实验环境和实验数据的不同而不同。接下来,我们将进一步搜集并采用公开的数据集来检验模型和方法的有效性。

参考文献 (References)

[1] ARMBRUST M, FOX A, GRIFFITH R, et al. A view of cloud computing[J]. Communications of the ACM, 2010, 53(4): 50-58.

[2] XU P, ZHANG Y, SUN S. PaaS cloud resource scheduling techno-logy research [J]. Journal of Huazhong University of Science and Technology (Natural Science Edition), 2013, S2(41): 53-56.

[3] XU L, ZHANG S, LI J. A density based performance prediction model for cloud services [C]// Proceedings of the 2013 International Conference on Cloud Computing and Big Data. Washington, DC: IEEE Computer Society, 2013: 92-99.

[4] HU Y, DENG B, PENG F, et al. Workload prediction for cloud computing elasticity mechanism [C]// Proceedings of the 2016 IEEE International Conference on Cloud Computing and Big Data Analysis. Piscataway, NJ: IEEE, 2016: 244-249.

[5] 周文俊,曹健.基于预测及蚁群算法的云计算资源调度策略[J].计算机仿真,2012,29(9):239-242.(ZHOU W J, CAO J. Cloud computing resource scheduling strategy based on prediction and ACO algorithm [J]. Computer Simulation, 2012, 29(9): 239-242.)

[6] WANG C, HUNG W, YANG C. A prediction based energy conserving resources allocation scheme for cloud computing [C]// Proceedings of the 2014 IEEE International Conference on Granular Computing. Piscataway, NJ: IEEE, 2014: 320-324.

[7] GONG Z, GU X, WILKES J. Press: predictive elastic resource scaling for cloud systems [C]// Proceedings of the 2010 International Conference on Network and Service Management. Piscataway, NJ: IEEE, 2010: 9-16.

[8] ROY N, DUBEY A, GOKHALE A. Efficient autoscaling in the cloud using predictive models for workload forecasting [C]// Proceedings of the 4th IEEE International Conference on Cloud Computing. Piscataway, NJ: IEEE, 2011: 500-507.

[9] SONG W, XIAO Z, CHEN Q. Dynamic resource allocation using virtual machines for cloud computing environment [J]. IEEE Transactions on Parallel and Distributed Systems, 2013, 24(6): 1107-1117.

[10] 徐浩.基于神經网络的虚拟机能耗预测模型研究[D].北京:北京邮电大学,2015: 41-49.(XU H. Research on neural network based virtual machine's power prediction model [D]. Beijing: Beijing University of Posts and Telecommunications, 2015: 41-49.)

[11] 王维,张英堂.BP 神经网络进行时问序列预测的不足及改进[J].计算机工程与设计,2007,28(21):5292-5294.(WANG W, ZHANG Y T. Analysis and improving way of BP ANN in predicting time series data [J]. Computer Engineering and Design, 2007, 28(21): 5292-5294.)

[12] 孟煜,张斌,郭军,等.云计算环境下云服务用户并发量的区间预测模型[J].计算机学报,2017,40(2):378-396.(MENG Y, ZHANG B, GUO J, et al. Prediction interval estimation model of user concurrent request for cloud service in cloud environment [J]. Chinese Journal of Computers, 2017, 40(2): 378-396.)

[13] JIANG Y, PERNG C, CHEN R, et al. ASAP: a self-adaptive prediction system for instant cloud resource demand provisioning [C]// Proceedings of the 2011 IEEE 11th International Conference on Data Mining. Piscataway, NJ: IEEE, 2011: 1104-1109.

[14] PARK S, MUN Y. Prediction method about power consumption by using utilization rate of resource in cloud computing environment [C]// Proceedings of the 2016 International Conference on Big Data and Smart Computing. Piscataway, NJ: IEEE, 2016: 265-268.

[15] 温鉴荣.PaaS云平台中Java Web应用调度机制的研究与实现[D].北京:北京邮电大学,2013:10-19.(WEN J R. Research and implementation of Java Web application scheduling mechanism in PaaS [D]. Beijing: Beijing University of Posts and Telecommunications, 2013: 10-19.)

[16] CHEN H, FU X, TANG Z, et al. Resource monitoring and prediction in cloud computing environments [C]// Proceedings of the 3rd International Conference on Applied Computing and Information Technology/2nd International Conference on Computational Science and Intelligence. Piscataway, NJ:IEEE, 2015: 288-292.

[17] XU D, ZHANG X. An incremental clustering pattern sequence-based short-term load prediction for cloud computing [J]. International Journal of Grid and Utility Computing, 2016, 7(4): 304-312.)

[18] SHUMWAY R H, STOFFER D S. Time Series Analysis and Its Applications: with R Examples [M]. Berlin: Springer, 2006: 84-165.

[19] 张显,王建学,王锡凡,等.考虑多重周期性的短期电价预测[J].电力系统自动化,2007,31(3):4-8.(ZHANG X, WANG J X, WANG X F, et al. Short-term electricity price forecasting based on price subsequences [J]. Automation of Electric Power Systems, 2007, 31(3): 4-8.)

[20] 沈富可,张卫,常潘.应用时间序列分析进行网络负载预测[J].中山大学学报(自然科学版),2009,48(S1):84-86.(SHEN F K, ZHANG W, CHANG P. Time series analysis used to predict network load [J]. Acta Scientiarum Naturalium Universitatis Sunyatseni, 2009, 48(S1): 84-86.)

[21] 赵宏伟,申德荣,田力威.云计算环境下资源需求预测与调度方法的研究[J].小型微型计算机系统,2016,37(4):659-663.(ZHAO H W, SHEN D R, TIAN L W. Research on resources forecasting and scheduling method in cloud computing environment [J]. Journal of Chinese Computer Systems, 2016, 37(4): 659-663.)

猜你喜欢

多元回归需求预测资源分配
基于深度Q学习的工业多任务资源分配方案
高质量发展背景下大型建筑企业融资需求预测与结构优化策略研究
基于动态规划理论的特种设备检验资源分配研究
基于动态规划理论的特种设备检验资源分配研究
云环境下公平性优化的资源分配方法
江苏省实施税收优惠政策促进科技创新的实效性研究
我国大学生人生规划自主性的现状和影响因素
中国装备制造业阶段竞争力研究
上证综指收益率的影响因素分析
“一带一路”战略下广西区域物流需求预测研究