面向负载时间窗口的基于PSO-GA的云服务资源自适应分配方法
文献发布时间:2023-06-19 09:32:16
技术领域
本发明涉及云计算领域,具体涉及一种面向负载时间窗口的基于PSO-GA的云服务资源自适应分配方法。
背景技术
如今,基于云计算的软件服务对自适应资源分配提出要求,这种分配可以根据需要动态调整资源,以保证良好的服务质量(QoS,Quality of Service)和低成本资源。然而,在复杂波动的负载环境下,以具有成本效益的资源量来分配资源并满足QoS是一个挑战。
发明内容
有鉴于此,本发明的目的在于提供一种面向负载时间窗口的基于PSO-GA的云软件服务资源自适应分配方法,能够有效提高云应用资源分配的效率。
为实现上述目的,本发明采用如下技术方案:
一种面向负载时间窗口的基于PSO-GA的云服务资源自适应分配方法,包括以下步骤:
步骤S1:初始化时间窗口参数;
步骤S2:采用改进的PSO-GA算法,并基于QoS预测模型,搜索窗口内的目标资源分配方案;
步骤S3:根据得到的目标资源分配方案,对当前的虚拟机分配方案作出相应调整。
进一步的,所述时间窗口参数包括时间窗口对应的负载、负载对应的增加虚拟机分配方案以及虚拟机分配方案。
进一步的,所述改进的PSO-GA算法采用变异运算和交叉运算,来代替原始粒子的运动。
进一步的,所述改进的PSO-GA算法采用离散编码方式对PSO的粒子进行编码,对于时间窗口k,窗口内的增加虚拟机资源分配方案表示为:
其中l为时间窗口k的长度,它表示窗口内增加虚拟机资源分配方案的数量;
将窗口k内增加虚拟机分配方案ADD
设窗口中虚拟机类型有m种,窗口长度为l,则第i个粒子的第t次迭代表示为:
每个粒子由m×l个元素构成;
进一步的,所述改进的PSO-GA算法的适应度函数,具体为:
设时间窗口的长度为l,则窗口i内的负载W
窗口i内的负载是分段函数;
时间窗口i内的虚拟机资源分配方案VM
则VM
对窗口i内增加的虚拟机资源分配方案ADD
由于引入了时间窗口,则由上述公式,适应度函数表示为:
fitness函数中的QoS值为窗口i内总的QoS值,其中w
进一步的,所述改进的PSO-GA算法采用遗传算法的交叉变异过程来更新整个粒子群的状态。
进一步的,所述目标资源分配方案通过PSO-GA算法在窗口内搜索,表示为:
将
本发明与现有技术相比具有以下有益效果:
本发明基于改进的PSO-GA算法,在进行资源分配的时候,有效提高云应用资源分配的效率。
附图说明
图1是本发明一实施例中增加虚拟机资源分配方案粒子编码;
图2是本发明一实施例中粒子编码惯性部分变异;
图3是本发明一实施例中粒子编码局部(或全局)最优粒子部分的交叉操作;
图4是本发明一实施例中方法概览图;
图5是本发明一实施例中贪心算法实验虚拟机资源分配结果;
图6是本发明一实施例中单点最优局部随机法实验虚拟机资源分配结果;
图7是本发明一实施例中PSO-GA实验虚拟机资源分配结果;
图8是本发明一实施例中总体Fitness值比较;
图9是本发明一实施例中QoS与Cost比较。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
本实施例中,当运行的环境变化的时候,云中软件服务就会有不同的服务质量(Quality of Service,QoS),而运行环境变化在本实施例中主要分为外部环境变化与内部环境变化。外部环境变化是由外部因素造成的,内部环境变化主要是受管理系统影响。在本实施例的问题定义中,有两个主要的因素,如下表所示:
表1问题定义中的主要元素
Table 1 Key elements in problem definition
外部因素主要指系统工作负载。假设负载是一个分段函数,每个时间段的负载不变,如下所示:
设每段负载持续的时间是相等的,并由二元组表示:w
内在因素指的是由不同类型与数量的虚拟机组成的分配方案。由于虚拟机在租赁的时候是按小时来收费,所以我们假设虚拟机每次租赁一小时,且一小时后自动关闭。则我们在调整虚拟机分配方案时刻,只需考虑增加的虚拟机方案。对应于每个时段的负载,虚拟机增加方案可以表示为:
假设每个调整方案中有m种可增加的虚拟机类型Type=<1,2,3,…,m>,则t
式(3)中
对应于增加虚拟机分配方案的是每个时刻调整后的虚拟机分配方案:
其中q=1h/Δt,表示最大的未过期增加虚拟机分配方案的数量。Δt=t
当为云系统应用分配资源时,云工程师或者自适应系统的目标是需要权衡分配方案对应的服务质量QoS与资源耗费Cost之间的关系。通过目标函数来表示它们之间的关系。
目标函数的其中一个参数为QoS
QoS
(5)
通过该QoS预测模型,给定一个负载w与资源配置方案vm,模型就能够预测出对应的QoS值。
函数的另一个参数为Cost
那么目标函数通过QoS
公式中r
在本实施例中,根据窗口内的负载给出对应的增加虚拟机分配方案,进而求出对应时刻的虚拟机分配方案。
面向负载时间窗口,在进行资源分配的时刻,时间窗口能够观察相对于当前时刻之后的一段负载,进而对资源进行相应调整。
假设窗口i能够预测到长度为l(包含的区间数量)的工作负载区域,结合公式(1),该区域内的负载W
与负载窗口W
那么根据公式(9),窗口内虚拟机分配方案VM
于是,问题就转化为搜索窗口内一个最优的增加虚拟机资源分配方案。
参考图4,本实施中,在本实施例中采用一种基于PSO-GA的云软件服务资源自适应分配方法,包括以下步骤:
步骤S1:初始化时间窗口参数,包括时间窗口对应的负载、负载对应的增加虚拟机分配方案以及虚拟机分配方案;
步骤S2:采用改进的PSO-GA算法,并基于QoS预测模型,搜索窗口内的目标资源分配方案;
步骤S3:根据得到的目标资源分配方案,对当前的虚拟机分配方案作出相应调整。
在本实施例中,所述改进的PSO-GA算法采用离散编码方式对PSO的粒子进行编码,对于时间窗口k,窗口内的增加虚拟机资源分配方案表示为:
其中l为时间窗口k的长度,它表示窗口内增加虚拟机资源分配方案的数量;
将窗口k内增加虚拟机分配方案ADD
设窗口中虚拟机类型有m种,窗口长度为l,则第i个粒子的第t次迭代表示为:
每个粒子由m×l个元素构成;
如图1所示,展示了长度为3,虚拟机种类为3的时间窗口内的一个粒子编码。它表示窗口中第一个增加虚拟机分配方案为[011],第二个增加虚拟机分配方案为[014],第三个增加虚拟机分配方案为[001]。
在本实施例中,所述改进的PSO-GA算法的适应度函数,具体为:
设时间窗口的长度为l,则窗口i内的负载W
窗口i内的负载是分段函数;
时间窗口i内的虚拟机资源分配方案VM
则VM
对窗口i内增加的虚拟机资源分配方案ADD
窗口内增加虚拟机资源分配方案通过fitness函数进行评估,由于引入了时间窗口,则由上述公式,fitness函数表示为:
fitness函数中的QoS值为窗口i内总的QoS值,其中w
根据时间窗口i内的负载W
成本Cost转换为窗口i内增加虚拟机资源分配方案ADD
权重r
在本实施例中,所述改进的PSO-GA算法采用遗传算法的交叉变异过程来更新整个粒子群的状态。变异操作随机选取粒子中的一个基因段,不规律改变其基因值,且新值必须都在对应的阈值内。
参考看图2,图2为对图1粒子编码的变异操作,随机选择粒子的一个基因段mg1,mg1位置上的值由(0,1,4)变异为(0,2,3),该变异符合虚拟机分配准则。
图3为局部(或全局)最优粒子部分的交叉操作,随机产生两个交叉的基因段位置cg1与cg2,将这两个基因段内的值替换为pBest(或gBest)对应基因段的值。在更新过程对于局部(或全局)最优粒子的交叉概率都为50%。
在本实施例中,优选的,采用PSO-GA算法搜索目标虚拟机配置方案的流程如下:
step1:随机初始化粒子种群,其中包括种群规模大小N、最大迭代次数以及种群本染色体add
step2:在满足算法执行条件下,通过粒子的交叉变异操作对粒子群进行更新操作,通过公式(13)计算每个种群染色体add
step3:输出最终的全局最优解gBest。
在本实施例中,在每个资源调整的时刻,通过PSO-GA算法在窗口内搜索目标增加虚拟机资源方案,该方案是在满足算法执行条件下搜索到的适应度函数值最小的方案,可以表示为:
最后,将
本实施例中,分别对单点最优局部随机法、贪心法以及PSO-GA在给定的负载场景下进行实验。对应的虚拟机分配结果如图5、6、7所示,其中位于图上方的表格表示每个时刻对应的增加虚拟机分配方案,条形图表示每个负载根据增加虚拟机分配方案调整过后对应的虚拟机分配方案,它们由小中大三种虚拟机组成。
将QoS值、成本以及公式(20)所获取到的评估值一起作为资源分配有效性的评估指标,这可以证明我们的方法总体上提供了最合理的资源分配计划。
图8表示系统的总体Fitness值,它是由0-360分钟内各个时段的评估值相加而来。从这个图中可以看出,本发明方法比贪心算法跟单点最优局部随机法的性能分别高出5.74%和4.15%。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
- 面向负载时间窗口的基于PSO-GA的云服务资源自适应分配方法
- 面向负载-时间窗口的基于DQN云软件资源自适应分配方法