一种单物理机下多虚拟机的资源自适应调整系统及方法
技术领域
本发明属于云服务技术领域,具体是一种单物理机下多虚拟机的资源自适应调整系统及方法。
背景技术
云计算是继并行计算、分布式计算、网格计算后的更加新型计算模式。云环境下通常在资源池上部署多台虚拟机(VM),这些虚拟机共用此节点上的物理资源(CPU,内存等)。各个虚拟机作为服务器发布服务,用户通过Web方式访问服务并消耗服务器一定数量的物理资源。
在配置虚拟机时必须指定虚拟机各类资源的数量,由于各虚拟机并发用户请求不断变化,所以各虚拟机在不同时刻对各类资源的需求量不同。在做虚拟机初始分配时:若将虚拟机的资源需求峰值分配给虚拟机能满足虚拟机在不同时刻的资源需求,但这也造成资源浪费;若不将资源峰值分配给虚拟机,而是将资源的平均需求量分配给虚拟机,必将造成虚拟机在某些时刻处于资源短缺状态,影响服务性能,造成SLA违例。
若能动态调整单PM上各虚拟机硬件资源量来适应这种动态变化的资源需求,理论上将不会出现低负载的虚拟机资源过剩、高负载的虚拟机资源紧缺等现象。如何在单节点上根据并发用户请求量的变化动态调整各虚拟机资源量使服务性能得到最大程度地保障是本领域研究的问题。
对于单物理机上多虚拟机资源分配问题,本领域技术人员大多采用启发式方法来进行全局优化搜索。启发式方法基本是单点搜索,很容易陷入局部最优解。而且,大多数研究者采用迁移虚拟机的方法解决资源不足的问题,但虚拟机迁移会花费一定的时间,并与物理机上的其它活动产生相互影响,导致迁移时延的增加和应用性能的下降。
现阶段单物理机资源分配,主要分为以下三个研究思路,一是通过预测VM的资源需求量,根据预测值作分配决策;二是将VM(服务)等级考虑其中,在资源不足的情况下按等级分配资源;三是将前两种结合,通过历史资源使用信息计算出各VM的资源需求,然后综合考虑各个虚拟机的资源需求量作资源分配决策。
(1)通过预测服务的资源需求量,根据各个VM的资源使用及剩余情况,动态生成VM部署方案,解决了服务性能保障问题(Huang C J等人)。首先通过服务的SLA评估服务资源需求量,再根据资源剩余表及资源使用表生成资源的分配方案。该实验是在多VM的场景下实现的,通过评估服务资源需求量来确定与之对应的资源需求量。这等同于在资源有限的场景下通过动态修改VM资源量来保障服务性能。调整方法延迟很明显,创建和删除VM时会有很长的时间延迟,达不到预期效果。
(2)在竞争条件下,根据不同服务的优先级为虚拟机分配资源,并提供性能保障及负载均衡服务。Jiang C F等人首先通过历史及实时的性能分析及评估来描述用户行为和负载特性,根据目标VM的性能及需求(基于SA及性能反馈)分配资源。张伟哲等人的研究内容是在单一物理机中多VM内存的协同优化。当节点中VM对内存的需求量小于总内存时采用自发调节机制,即VM间自发进行调节;当节点中VM对内存的需求量大于总内存时采用全局调节,即物理机控制器根据各VM资源需求按比例为VM分配相应数量的内存。同样地,预测未来VM对资源的依赖情况时只是考虑历史资源使用情况,并未将时间因素和并发用户请求等因素加入到考虑范围中;在做综合决策时同等对待各个VM,也并未考虑VM中服务属性和资源的时间效应等因素。
(3)通过计算资源需量,根据各VM资源需求量及PM资源剩余生成分配方案(Pradeep P等人)。AC(AppControl,VM资源需求量预测)定期向NC(NodeControl,资源分配方案生成)主动发送资源请求,NC综合考虑各AC的资源请求量及其优先等级来决定资源的分配策略。但是Pradeep P等人只考虑了CPU和Disk I/O两种资源,并未考虑内存、Swap、Network I/O等因素,同时也忽略了资源间的互相作用。此外Pradeep P等人采用的是定期请求法,在周期内部若出现资源过剩或短缺无法得到解决。再者,在预测VM下一时间段对资源的依赖情况时只考虑了历史资源使用量,并未考虑时间及并发用户请求等因素对VM性能的影响,最后NC在做综合决策时只考虑了服务等级这一因素,并未考虑服务属性和调整周期等因素对决策的影响。
通过分析现阶段对该问题的研究思路,并参考现阶段研究成果,可以得知当前研究主要存在以下问题:
在对VM资源调整时,只考虑单一资源对性能的影响,忽略了多因素间的相互作用,这使调整策略具有片面性。在预测服务性能的方法中,只考虑历史资源使用量这一因素,并未考虑并发用户请求量对服务性能的影响。在做最优解生成时,多数研究者采用遗传算法迭代求解,但只是套用遗传算法,随机生成初始种群,增加选出最优解的时间。在资源不足时,多数研究者只是简单地将VM划分成若干等级,根据权重分配资源,并未考虑服务属性对特定资源的依赖程度,同时对等级的划分也不够权威。资源分配时未考虑资源的时间效应,也忽略了调整周期对整体VM性能的影响。此外,虚拟机创建、删除、迁移会花费一定的时间,并和节点上的其它活动产生相互影响,导致虚拟机创建、删除、迁移时延的增加和应用性能的下降。大规模的虚拟机迁移会导致极大的系统开销,并需要花费较长的时间来完成全部的迁移,在云计算基础设施规模下频繁地进行虚拟机重放置,实践上很难有好的效果。最为重要的是,对于传统选择出的经验数据不做任何处理,不能保留效果较好的决策。
发明内容
针对现有技术存在的不足,本发明提供一种单物理机下多虚拟机的资源自适应调整系统及方法。
本发明的技术方案是:
一种单物理机下多虚拟机的资源自适应调整系统,该系统在单物理机中实现;
该系统包括数据采集模块、预处理模块、预测模块、资源调整策略生成模块、资源调整策略收益计算模块、监测模块、策略评价模块和历史数据库;
数据采集模块用于采集服务器的历史数据并将其存入历史数据库中;
预处理模块用于对服务器的历史数据进行预处理即去除噪声数据,得到历史CPU资源消耗量、历史内存资源消耗量和历史并发用户请求量;
预测模块用于利用历史CPU资源消耗量、历史内存资源消耗量和历史并发用户请求量得到对下一时刻并发用户请求量进行预测,得到并发用户请求量预测值,再利用并发用户请求量预测值得出虚拟机资源需求量预测区间;
资源调整策略生成模块用于根据虚拟机资源消耗量预测区间,利用遗传算法得出多个资源调整策略,并作为初始种群,每个策略中包括虚拟机CPU资源调整量和虚拟机内存资源调整量;
资源调整策略收益计算模块用于计算各资源调整策略收益,确定最优资源调整策略;
监测模块用于根据最优资源调整策略进行CPU资源调整和内存资源调整,并监测服务响应时间、虚拟机资源总量、CPU资源消耗量、内存资源消耗量和并发用户请求量;
策略评价模块用于根据监测得到的服务响应时间、虚拟机资源总量、CPU资源消耗量、内存资源消耗量和并发用户请求量,对最优资源调整策略进行评价;
历史资源数据库用于存储服务器的历史数据、最优资源调整策略及其评价值,服务器的历史数据包括历史CPU、内存和历史并发用户请求量。
所述预测模块通过建立用来描述服务质量确定时并发用户请求量和虚拟机资源消耗量间的关系的C-R模型对下一时刻并发用户请求量进行预测。
所述资源调整策略收益计算模块是通过建立用来描述并发用户请求量确定时服务质量与虚拟机资源消耗量间关系的P-R模型求得各资源调整策略对应的服务质量,对满足SLA约定值的资源调整策略收益计算,资源调整策略收益即资源分配量、资源消耗量、性能损失量之和,满足SLA约束值的资源调整策略为最优资源调整策略。
采用所述的资源自适应调整系统的单物理机下多虚拟机的资源自适应调整方法,包括以下步骤:
步骤1:采集服务器的历史数据并将其存入历史数据库中,服务器的历史数据包括历史CPU、内存和历史并发用户请求量;
步骤2:对服务器的历史数据进行预处理即去除噪声数据,得到历史CPU资源消耗量、历史内存资源消耗量和历史并发用户请求量;
步骤3:利用历史CPU资源消耗量、历史内存资源消耗量和历史并发用户请求量对下一时刻并发用户请求量进行预测,得到并发用户请求量预测值,再利用并发用户请求量预测值得出虚拟机资源需求量预测区间;
步骤3.1:基于历史并发用户请求量,利用BP神经网络算法,对下一时刻并发用户请求量进行预测,得到并发用户请求量预测值;
步骤3.2:建立用来描述服务质量确定时并发用户请求量和虚拟机资源消耗量间的关系的C-R模型;
y1=α10+α11x+α12x2+α13x3+α14x4+α15x5+α16x6
y2=α20+α21x+α22x2+α23x3+α24x4+α25x5+α26x6
y1*y2=α50+α51x+α52x2+α53x3+α54x4+α55x5+α56x6
其中,x为自变量,即并发用户请求量,y1、y2为因变量,分别为CPU资源消耗量、内存资源消耗量,αi0(i=1,2,......,5)表示x与yi′(i′=1,2)轴的截距,当x是0时,即并发用户请求量是0时的CPU资源消耗量、内存资源消耗量;α10~α16分别表示自变量x的0次方至6次方的系数,表示并发用户请求量对y1的影响程度;同理,α20~α26分别表示自变量x的0次方至6次方的系数,表示并发用户请求量对y1的影响程度;α30~α36分别表示自变量x的0次方至6次方的系数,表示并发用户请求量对的影响程度;α40~α46分别表示自变量x的0次方至6次方的系数,表示并发用户请求量对的影响程度;α50~α56分别表示自变量x的0次方至6次方的系数,表示因变量y1与y2协同受到并发用户请求量的影响,也是CPU资源和内存资源间相互作用的体现,当α50~α56都为0时表示这两类资源间不存在相互作用;
步骤3.3:利用最小二乘法确定αi0~αi6;
步骤3.4:利用αi0~αi6确定最终的C-R模型,根据该模型和求得的并发用户请求量预测值,得到虚拟机资源消耗量预测值,即虚拟机资源消耗量预测区间,包括虚拟机CPU资源消耗量预测区间和虚拟机内存资源消耗量预测区间;
步骤4:根据虚拟机资源消耗量预测区间,利用遗传算法得出多个资源调整策略,并作为初始种群,每个策略中包括虚拟机CPU资源调整量和虚拟机内存资源调整量;
步骤4.1:判断历史数据库中是否存在与虚拟机资源消耗量预测区间的误差值在设定的允许范围内的经验资源调整策略,是,则执行步骤4.2,否则,执行步骤4.5;
步骤4.2:判断该经验资源调整策略的评价值是否为优,即评价值是否在80%~100%范围内,是,则将该经验资源调整策略添加到初始种群中,否则执行步骤4.3;
步骤4.3:判断该经验资源调整策略的评价值是否为差,即评价值是否在0%~60%范围内,是,则执行步骤4.4,否则,执行步骤4.5;
步骤4.4:判断当前初始种群中是否存在与该经验资源调整策略的相似度大于设定的相似度阈值的策略,是,则删除该策略,否则,执行步骤4.5;
步骤4.5:保存当前初始种群;
步骤5:求初始种群中各资源调整策略收益,确定最优资源调整策略;
步骤5.1:建立用来描述并发用户请求量确定时服务质量与虚拟机资源消耗量间关系的P-R模型;
y1=γ10+γ11s+γ12s2+γ13s3+γ14s4+γ15s5+γ16s6
y2=γ20+γ21s+γ22s2+γ23s3+γ24s4+γ25s5+γ26s6
y2*y2=γ50+γ51s+γ52s2+γ53s3+γ54s4+γ55s5+γ56s6
其中,s为自变量,即服务质量,y1,y2为因变量,y1为虚拟机CPU资源消耗量,y2为虚拟机内存资源消耗量;
分别为服务质量和虚拟机资源消耗量,γi0(i=1,2,......,5)表示s与yi′(i′=1,2)轴的截距,当s是0时,即并发用户请求量是0时的服务质量和虚拟机资源消耗量;γ10~γ16分别表示自变量s的0次方至6次方的系数,表示并发用户请求量对y1的影响程度;同理,γ20~γ26分别表示自变量s的0次方至6次方的系数,表示并发用户请求量对y1的影响程度;γ30~γ36分别表示自变量s的0次方至6次方的系数,表示并发用户请求量对的影响程度;γ40~γ46分别表示自变量s的0次方至6次方的系数,表示并发用户请求量对的影响程度;γ50~γ56分别表示自变量s的0次方至6次方的系数,表示因变量y1与y2协同受到并发用户请求量的影响,也是服务质量和虚拟机资源消耗量相互作用的体现,当γ50~γ56都为0时表示这服务质量和虚拟机资源消耗量不存在相互作用;
步骤5.2:利用最小二乘法确定γi0~γi6,利用γi0~γi6确定最终的P-R模型;
步骤5.3:利用P-R模型和虚拟机资源消耗量预测区间,求得初始种群中各资源调整策略对应的服务质量,并判断该服务质量是否满足SLA约定值,是,则保留当前资源调整策略,否,则删除该策略;
步骤5.4:对当前种群中保留的资源调整策略进行策略收益计算;
步骤5.4.1:利用资源分配量count和资源成本price计算所有虚拟机的资源分配量price_dissum;
price_dissum=(pricecpu*countcpu*10+pricemem*countmem)*1800s
步骤5.4.2:利用每秒的资源分配量count和每秒的资源成本price_s,计算资源消耗量pricesum;
步骤5.4.3:利用虚拟机资源消耗量预测值和虚拟机实际的资源消耗量求得服务性能损失量;
步骤5.4.4:计算资源分配量、资源消耗量、性能损失量之和,即策略收益;
步骤5.5:比较各资源调整策略收益,若不能满足SLA约束值,则返回步骤4,若满足SLA约束值,则当前策略为最优资源调整策略;
步骤6:根据最优资源调整策略进行CPU资源调整和内存资源调整,并监测服务响应时间、虚拟机资源总量、CPU资源消耗量、内存资源消耗量和并发用户请求量;
步骤7:根据监测得到的服务响应时间、虚拟机资源总量、CPU资源消耗量、内存资源消耗量和并发用户请求量,对最优资源调整策略进行评价;
步骤7.1:利用监测周期内各监测时间点的服务响应时间、虚拟机资源总量、CPU资源消耗量、内存资源消耗量和并发用户请求量,计算得到整个监测周期内服务的总体性能满意度;
步骤7.1.1:计算各监测时间点服务平均响应时间,并将服务平均响应时间以每10ms为1个区间分成m个区间;
步骤7.1.2:统计各区间内监测时间点的个数,并计算其与总监测时间点数目的比例,进而确定各区间内监测时间点的个数与总监测时间点数目的比例最大值;
步骤7.1.3:分别计算各区间内监测时间点的个数与总监测时间点数目的比例值与比例最大值之比,若该比值小于设定的忽略条件的比值,则舍弃该比例值,返回步骤7.1.2,若该比值不小于设定的忽略条件的比值,执行步骤7.1.4;
步骤7.1.4:使用加权平均数求解算法计算监测周期内服务平均响应时间;
步骤7.1.5:计算整个监测周期内服务的总体性能满意度finishserver,即监测周期内服务平均响应时间responsereal与服务的约定响应时间responsesla之比;
finishserver=responsesla/responsereal*100%
若finishserver>100%,则将finishserver置为100%;
步骤7.2:用监测周期内各监测时间点的虚拟机CPU资源消耗量Ucpu、虚拟机内存资源消耗量Umem,得到虚拟机资源利用率Uvm=θ×Ucpu+(1-θ)×Umem,θ为虚拟机CPU资源消耗量相对于整个虚拟机资源的权值,1-θ为虚拟机内存资源消耗量相对于整个虚拟机资源的权值;
步骤7.3:通过整个监测周期内服务的总体性能满意度和虚拟机资源利用率,对当前执行的最优策略进行评价,得到评价值V;
其中,表示整个监测周期内服务的总体性能满意度平均值,表示整个监测周期内的虚拟机资源利用率平均值;
步骤8:将当前最优资源调整策略及其评价值存入历史数据库。
所述步骤3.3按以下步骤进行:
步骤3.3.1:将C-R模型改写成矩阵形式:将C-R模型用z1、z2、z3、z4、z5表示;
z1=y1,z2=y2
z5=y1*y2
步骤3.3.2:计算误差平方和SSE,进而得到与C-R模型对应的最小二乘方程;
其中,j=1~n,表示n条并发请求量,zij表示第j条并发请求量中相应类型的虚拟机资源消耗量;xj表示第j个并发用户请求量数据;
与C-R模型对应的最小二乘方程如下:
步骤3.3.3:通过极小化SSEi的样本估计值求解最小二乘方程,得到关于αi0,αi1,αi2,αi3,αi4,αi5,αi6的线性方程;
步骤3.3.4:利用历史虚拟机CPU资源消耗量、历史虚拟机内存资源消耗量、历史并发用户请求量和关于αi0,αi1,αi2,αi3,αi4,αi5,αi6的线性方程求解出参数αi0~αi6。
所述步骤5.2按以下步骤进行:
步骤5.2.1:将P-R模型改写成矩阵形式:将P-R模型用p1、p2、p3、p4、p5表示;
p1=y1,p2=y2
p5=y1*y2
步骤5.2.2:计算误差平方和SSE,进而得到与P-R模型对应的最小二乘方程;
其中,j=1~n,表示n条服务质量,pij表示第j条服务质量中相应类型的虚拟机资源消耗量值;sj表示第j个服务质量数据;
与C-R模型对应的最小二乘方程如下:
步骤5.2.3:通过极小化SSEi的样本估计值求解最小二乘方程,得到关于γi0,γi1,γi2,γi3,γi4,γi5,γi6的线性方程;
步骤5.2.4:利用历史虚拟机CPU资源消耗量、历史虚拟机内存资源消耗量、历史并发用户请求量和关于γi0,γi1,γi2,γi3,γi4,γi5,γi6的线性方程求解出参数γi0~γi6;
步骤5.2.5:利用γi0~γi6确定最终的P-R模型。
有益效果:
本发明能动态调整单物理机上各虚拟机资源量来适应动态变化的资源需求,使单物理机资源得到最大的收益。本发明根据历史CPU资源消耗量、历史内存资源消耗量和历史并发用户请求量预测下一时刻虚拟机资源需求量预测区间,进而得出多个资源调整策略,通过计算各策略收益确定最优资源调整策略并对其评价,对最优资源调整策略及其评价进行保存,以便后续使用,这样能大幅度提高资源调整效率,使得大规模的虚拟机迁移上的开销减少。
附图说明
图1是本发明具体实施方式的单物理机下多虚拟机的资源自适应调整系统结构框图;
图2是本发明具体实施方式的单物理机下多虚拟机的资源自适应调整方法流程图;
图3是本发明具体实施方式的单物理机下多虚拟机的资源自适应调整方法步骤3的具体流程图;
图4是本发明具体实施方式的单物理机下多虚拟机的资源自适应调整方法步骤4的具体流程图;
图5是本发明具体实施方式的单物理机下多虚拟机的资源自适应调整方法步骤5的具体流程图;
图6是本发明具体实施方式的单物理机下多虚拟机的资源自适应调整方法步骤7的具体流程图。
具体实施方式
下面结合附图对本发明的具体实施方式做详细说明。
本实施方式采用服务器/客户端形式,采用两台服务器实现,这两台服务器上分别部署四台虚拟机。客户端(Large Server 2,Client)上部署的虚拟机负责产生并发用户请求,访问服务器端(Large Server 1,Server)的服务;服务器端虚拟机运行服务,被客户端用户调用。客户端虚拟机部署在一台四核的物理机上,该物理机的硬件信息如下:CPU*4,MEM*4G(理论值),DISK*500G(理论值)等,四台虚拟机的资源配置均为CPU*1,MEM*1G(理论值),DISK*50G(理论值),四台客户端虚拟机系统都是64位Cent OS 6.4。服务器的硬件资源信息如下:CPU*24,MEM*68G(理论值),DISK*1.5TB(理论值),为使实验能够正确进行,每台虚拟机初始配置信息如下:CPU*2G,MEM*2G,DISK*50G,剩下的资源被物理机(包括虚拟机超级管理员)占用,本实施方式设定的场景是资源有限,所以设定该服务器的物理资源为CPU*8G,MEM*8G,DISK*200G,这四台虚拟机只能使用这些资源,这些剩余的资源不为虚拟机分配。
分别在服务器端和客户端运行着四台虚拟机,名称分别为Server01,Server02,Server03,Server04,Client01,Client02,Client 03,Client 04,其中Client01运行的程序负责产生Server01上运行的服务的并发请求量,Client02负责Server02的并发请求量,以此类推。Server01与Server02中部署的是计算型服务,Server03与Server04中部署的是存储型服务。限于KVM管理软件的局限性,所以不能时时展现内存的使用状态信息,只能显示虚拟机内存总量。
客户端虚拟机中需要部署并发用户请求量的收集插件,用来收集每个监测点的用户并发请求量及每个用户请求的响应时间;服务器端虚拟机中需要部署资源信息收集插件,记录每个监测点虚拟机的资源使用信息。这两个信息收集插件将收集来的信息存储到MySQL数据库中,该数据库存放于服务器端的Host中。保存服务器端虚拟机资源使用信息的数据表字段为<time_local,mem_total,mem_free,mem_used,swap_total,swap_free,swap_used,cpu_number,cpu_ratoi,net_in,net_out,disk_read,disk_write>,其中与MEM有关的字段单位是kB(千字节),与Swap有关的字段单位也是kB,cpu_number字段单位是个,cpu_ratoi字段单位是%,与net和disk有关的字段的单位都是Kb/s;保存客户端虚拟机并发用户请求信息的数据表字段为<time_local,user_number,time_response>,其中time_response字段单位是ms(毫秒),这两个数据表中的time_local字段的单位都是秒,数字含义是时间戳。
一种单物理机下多虚拟机的资源自适应调整系统,该系统在单物理机中实现;
如图1所示,该系统包括数据采集模块、预处理模块、预测模块、资源调整策略生成模块、资源调整策略收益计算模块、监测模块、策略评价模块和历史数据库;
数据采集模块用于采集服务器的历史数据并将其存入历史数据库中;
预处理模块用于对服务器的历史数据进行预处理即去除噪声数据,得到历史CPU资源消耗量、历史内存资源消耗量和历史并发用户请求量;
预测模块用于利用历史CPU资源消耗量、历史内存资源消耗量和历史并发用户请求量得到对下一时刻并发用户请求量进行预测,得到并发用户请求量预测值,再利用并发用户请求量预测值得出虚拟机资源需求量预测区间;
资源调整策略生成模块用于根据虚拟机资源消耗量预测区间,利用遗传算法得出多个资源调整策略,并作为初始种群,每个策略中包括虚拟机CPU资源调整量和虚拟机内存资源调整量;
资源调整策略收益计算模块用于计算各资源调整策略收益,确定最优资源调整策略;
监测模块用于根据最优资源调整策略进行CPU资源调整和内存资源调整,并监测服务响应时间、虚拟机资源总量、CPU资源消耗量、内存资源消耗量和并发用户请求量;
策略评价模块用于根据监测得到的服务响应时间、虚拟机资源总量、CPU资源消耗量、内存资源消耗量和并发用户请求量,对最优资源调整策略进行评价;
历史资源数据库用于存储服务器的历史数据、最优资源调整策略及其评价值,服务器的历史数据包括历史CPU、内存和历史并发用户请求量。
所述预测模块通过建立用来描述服务质量确定时并发用户请求量和虚拟机资源消耗量间的关系的C-R模型对下一时刻并发用户请求量进行预测。
所述资源调整策略收益计算模块是通过建立用来描述并发用户请求量确定时服务质量与虚拟机资源消耗量间关系的P-R模型求得各资源调整策略对应的服务质量,对满足SLA约定值的资源调整策略收益计算,资源调整策略收益即资源分配量、资源消耗量、性能损失量之和,满足SLA约束值的资源调整策略为最优资源调整策略。
采用所述的资源自适应调整系统的单物理机下多虚拟机的资源自适应调整方法,如图2所示,包括以下步骤:
步骤1:采集服务器的历史数据并将其存入历史数据库中,服务器的历史数据包括历史CPU、内存和历史并发用户请求量;
步骤2:对服务器的历史数据进行预处理即去除噪声数据,得到历史CPU资源消耗量、历史内存资源消耗量和历史并发用户请求量;
步骤3:利用历史CPU资源消耗量、历史内存资源消耗量和历史并发用户请求量对下一时刻并发用户请求量进行预测,得到并发用户请求量预测值,再利用并发用户请求量预测值得出虚拟机资源需求量预测区间,如图3所示;
步骤3.1:基于历史并发用户请求量,利用BP神经网络算法,对下一时刻并发用户请求量进行预测,得到并发用户请求量预测值;
步骤3.2:建立用来描述服务质量确定时并发用户请求量和虚拟机资源消耗量间的关系的C-R模型;
y1=α10+α11x+α12x2+α13x3+α14x4+α15x5+α16x6
y2=α20+α21x+α22x2+α23x3+α24x4+α25x5+α26x6
y1*y2=α50+α51x+α52x2+α53x3+α54x4+α55x5+α56x6
其中,x为自变量,即并发用户请求量,y1、y2为因变量,分别为CPU资源消耗量、内存资源消耗量,αi0(i=1,2,......,5)表示x与yi′(i′=1,2)轴的截距,当x是0时,即并发用户请求量是0时的CPU资源消耗量、内存资源消耗量;α10~α16分别表示自变量x的0次方至6次方的系数,表示并发用户请求量对y1的影响程度;同理,α20~α26分别表示自变量x的0次方至6次方的系数,表示并发用户请求量对y1的影响程度;α30~α36分别表示自变量x的0次方至6次方的系数,表示并发用户请求量对的影响程度;α40~α46分别表示自变量x的0次方至6次方的系数,表示并发用户请求量对的影响程度;α50~α56分别表示自变量x的0次方至6次方的系数,表示因变量y1与y2协同受到并发用户请求量的影响,也是CPU资源和内存资源间相互作用的体现,当α50~α56都为0时表示这两类资源间不存在相互作用;
步骤3.3:利用最小二乘法确定αi0~αi6;
所述步骤3.3按以下步骤进行:
步骤3.3.1:将C-R模型改写成矩阵形式:将C-R模型用z1、z2、z3、z4、z5表示;
z1=y1,z2=y2
z5=y1*y2
步骤3.3.2:计算误差平方和SSE,进而得到与C-R模型对应的最小二乘方程;
其中,j=1~n,表示n条并发请求量,zij表示第j条并发请求量中相应类型的虚拟机资源消耗量;xj表示第j个并发用户请求量数据;
与C-R模型对应的最小二乘方程如下:
步骤3.3.3:通过极小化SSEi的样本估计值求解最小二乘方程,得到关于αi0,αi1,αi2,αi3,αi4,αi5,αi6的线性方程;
步骤3.3.4:利用历史虚拟机CPU资源消耗量、历史虚拟机内存资源消耗量、历史并发用户请求量和关于αi0,αi1,αi2,αi3,αi4,αi5,αi6的线性方程求解出参数αi0~αi6。
步骤3.4:利用αi0~αi6确定最终的C-R模型,根据该模型和求得的并发用户请求量预测值,得到虚拟机资源消耗量预测值,即虚拟机资源消耗量预测区间,包括虚拟机CPU资源消耗量预测区间和虚拟机内存资源消耗量预测区间;
步骤4:根据虚拟机资源消耗量预测区间,利用遗传算法得出多个资源调整策略,并作为初始种群,每个策略中包括虚拟机CPU资源调整量和虚拟机内存资源调整量,如图4所示;
步骤4.1:判断历史数据库中是否存在与虚拟机资源消耗量预测区间的误差值在设定的允许范围内的经验资源调整策略,是,则执行步骤4.2,否则,执行步骤4.5;
步骤4.2:判断该经验资源调整策略的评价值是否为优,即评价值是否在80%~100%范围内,是,则将该经验资源调整策略添加到初始种群中,否则执行步骤4.3;
步骤4.3:判断该经验资源调整策略的评价值是否为差,即评价值是否在0%~60%范围内,是,则执行步骤4.4,否则,执行步骤4.5;
步骤4.4:判断当前初始种群中是否存在与该经验资源调整策略的相似度大于设定的相似度阈值的策略,是,则删除该策略,否则,执行步骤4.5;
步骤4.5:保存当前初始种群;
步骤5:求初始种群中各资源调整策略收益,确定最优资源调整策略,如图5所示;
步骤5.1:建立用来描述并发用户请求量确定时服务质量与虚拟机资源消耗量间关系的P-R模型;
y1=γ10+γ11s+γ12s2+γ13s3+γ14s4+γ15s5+γ16s6
y2=γ20+γ21s+γ22s2+γ23s3+γ24s4+γ25s5+γ26s6
y2*y2=γ50+γ51s+γ52s2+γ53s3+γ54s4+γ55s5+γ56s6
其中,s为自变量,即服务质量,y1,y2为因变量,y1为虚拟机CPU资源消耗量,y2为虚拟机内存资源消耗量;
分别为服务质量和虚拟机资源消耗量,γi0(i=1,2,......,5)表示s与yi′(i′=1,2)轴的截距,当s是0时,即并发用户请求量是0时的服务质量和虚拟机资源消耗量;γ10~γ16分别表示自变量s的0次方至6次方的系数,表示并发用户请求量对y1的影响程度;同理,γ20~γ26分别表示自变量s的0次方至6次方的系数,表示并发用户请求量对y1的影响程度;γ30~γ36分别表示自变量s的0次方至6次方的系数,表示并发用户请求量对的影响程度;γ40~γ46分别表示自变量s的0次方至6次方的系数,表示并发用户请求量对的影响程度;γ50~γ56分别表示自变量s的0次方至6次方的系数,表示因变量y1与y2协同受到并发用户请求量的影响,也是服务质量和虚拟机资源消耗量相互作用的体现,当γ50~γ56都为0时表示这服务质量和虚拟机资源消耗量不存在相互作用;
步骤5.2:利用最小二乘法确定γi0~γi6,利用γi0~γi6确定最终的P-R模型;
所述步骤5.2按以下步骤进行:
步骤5.2.1:将P-R模型改写成矩阵形式:将P-R模型用p1、p2、p3、p4、p5表示;
p1=y1,p2=y2
p5=y1*y2
步骤5.2.2:计算误差平方和SSE,进而得到与P-R模型对应的最小二乘方程;
其中,j=1~n,表示n条服务质量,pij表示第j条服务质量中相应类型的虚拟机资源消耗量值;sj表示第j个服务质量数据;
与C-R模型对应的最小二乘方程如下:
步骤5.2.3:通过极小化SSEi的样本估计值求解最小二乘方程,得到关于γi0,γi1,γi2,γi3,γi4,γi5,γi6的线性方程;
步骤5.2.4:利用历史虚拟机CPU资源消耗量、历史虚拟机内存资源消耗量、历史并发用户请求量和关于γi0,γi1,γi2,γi3,γi4,γi5,γi6的线性方程求解出参数γi0~γi6;
步骤5.2.5:利用γi0~γi6确定最终的P-R模型。
步骤5.3:利用P-R模型和虚拟机资源消耗量预测区间,求得初始种群中各资源调整策略对应的服务质量,并判断该服务质量是否满足SLA约定值,是,则保留当前资源调整策略,否,则删除该策略;
步骤5.4:对当前种群中保留的资源调整策略进行策略收益计算;
步骤5.4.1:利用资源分配量count和资源成本price计算所有虚拟机的资源分配量price_dissum;
price_dissum=(pricecpu*countcpu*10+pricemem*countmem)*1800s
步骤5.4.2:利用每秒的资源分配量count和每秒的资源成本price_s,计算资源消耗量pricesum;
步骤5.4.3:利用虚拟机资源消耗量预测值和虚拟机实际的资源消耗量求得服务性能损失量;
步骤5.4.4:计算资源分配量、资源消耗量、性能损失量之和,即策略收益;
步骤5.5:比较各资源调整策略收益,若不能满足SLA约束值,则返回步骤4,若满足SLA约束值,则当前策略为最优资源调整策略;
步骤6:根据最优资源调整策略进行CPU资源调整和内存资源调整,并监测服务响应时间、虚拟机资源总量、CPU资源消耗量、内存资源消耗量和并发用户请求量;
步骤7:根据监测得到的服务响应时间、虚拟机资源总量、CPU资源消耗量、内存资源消耗量和并发用户请求量,对最优资源调整策略进行评价,如图6所示;
步骤7.1:利用监测周期内各监测时间点的服务响应时间、虚拟机资源总量、CPU资源消耗量、内存资源消耗量和并发用户请求量,计算得到整个监测周期内服务的总体性能满意度;
步骤7.1.1:计算各监测时间点服务平均响应时间,并将服务平均响应时间以每10ms为1个区间分成m个区间;
步骤7.1.2:统计各区间内监测时间点的个数,并计算其与总监测时间点数目的比例,进而确定各区间内监测时间点的个数与总监测时间点数目的比例最大值;
步骤7.1.3:分别计算各区间内监测时间点的个数与总监测时间点数目的比例值与比例最大值之比,若该比值小于设定的忽略条件的比值,则舍弃该比例值,返回步骤7.1.2,若该比值不小于设定的忽略条件的比值,执行步骤7.1.4;
步骤7.1.4:使用加权平均数求解算法计算监测周期内服务平均响应时间;
步骤7.1.5:计算整个监测周期内服务的总体性能满意度finishserver,即监测周期内服务平均响应时间responsereal与服务的约定响应时间responsesla之比;
finishserver=responsesla/responsereal*100%
若finishserver>100%,则将finishserver置为100%;
步骤7.2:用监测周期内各监测时间点的虚拟机CPU资源消耗量Ucpu、虚拟机内存资源消耗量Umem,得到虚拟机资源利用率Uvm=θ×Ucpu+(1-θ)×Umem,θ为虚拟机CPU资源消耗量相对于整个虚拟机资源的权值,1-θ为虚拟机内存资源消耗量相对于整个虚拟机资源的权值;
步骤7.3:通过整个监测周期内服务的总体性能满意度和虚拟机资源利用率,对当前执行的最优策略进行评价,得到评价值V;
其中,表示整个监测周期内服务的总体性能满意度平均值,表示整个监测周期内的虚拟机资源利用率平均值;
表1第26监测周期Server01中计算型服务的并发用户请求量统计
表2第26监测周期Server02计算型服务的并发用户请求量统计
表3第26监测周期Server03中存储型服务的并发用户请求量统计
表4第26监测周期Server03中存储型服务的并发用户请求量统计
表1~4分别统计的是Server01~Server04中被预测的第26个监测周期内各个区间段中出现的监测点数目以及各个区间段个数占总数的比例,其中Server01的人数跨度较小,而Server02的人数跨度较大,但划分的区间段数固定,所以Server01被划分的区间段跨度较小,而Server02被划分的区间段跨度较大。根据设置的瞬时峰值定义,将比例小于5%的峰值区间段(这里指的是483~486、511~515、2882~2897和3021~3037区间)舍去并重新计算比例,使用这个比例进行调整周期内并发用户请求量均值的计算。经过计算Server01和Server02虚拟机并发用户请求量均值分别为500和2945。同理,表3和表4分别统计的是Server03和Server04中各个并发量区间段内出现的监测点个数,由于峰值不满足大于5%这一条件,所以峰值区间的新比例在这两个表中均为0。经过计算Server03和Server04虚拟机并发用户请求量均值分别为462和774。
步骤8:将当前最优资源调整策略及其评价值存入历史数据库。