云计算的资源分配现状.docx
- 文档编号:18452755
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:18
- 大小:270.63KB
云计算的资源分配现状.docx
《云计算的资源分配现状.docx》由会员分享,可在线阅读,更多相关《云计算的资源分配现状.docx(18页珍藏版)》请在冰点文库上搜索。
云计算的资源分配现状
云计算的资源分配现状
云计算的资源分配是指在一个共同的云环境中使用者根据一定是使用规则来调度资源的过程。
目前云计算资源调度的研究主要集中在三个方面:
(1)人工智能算法
人工智能算法是指以学习的方式对解空间进行人工搜索,以减少任务的平均时间,提高资源的利用率
(2)云计算的负载均衡
不同的用户对云计算有不同的需求,云计算必须满足服务器网络带宽、吞吐量、延迟和抖动等负载需求。
因此,在进行云计算时,更应该注意云计算的负载均衡。
(3)云计算的能耗管理
数据中心作为云计算的中心,能耗过大,不仅浪费电能,还会降低系统的稳定性,影响环境。
因此,加强云计算能耗管理也是云计算资源配置中需要解决的重要问题。
本章对于多目标优化、遗传算法、SPEA-II做出了详细的基础知识介绍,通过数学模型以及流程图对于该问题进行了解析分析。
通过此小结可大致了解多目标问题的优劣端以及如何利用遗传算法和SPEA-II进行修饰,避免局部最优解,从而获得优秀的目标最优解集。
基于改进SPEA-II动态资源配置
通过分组编码和多目标优化模型可知,根据遗传算法在交叉和突变阶段提出的TMR,便可以指出基因的类型及其在染色体上的分布。
选择已经分层的Pareto前沿时,使用预筛选操作来维持种群分布的均匀性。
当达到一定的进化代数时,上一代种群中平均功耗最低的个体被输出。
MOGAISP可以采用自适应概率突变和交叉概率突变进行遗传操作,以帮助我们防止遗传算法进化的过程陷入局部停滞的状态,保持遗传算法种群的多样性,提高了遗传算法进化和全局最优搜索的速度和能力。
MOGAISP选择机制选择EFP种群的最优个体,使EFP种群中的个体尽可能均匀地分布在多维目标空间中,从而减少进化过程中陷入局部最优的可能性。
通过改进轮盘赌注的选择策略从EFP种群中随机选择遗传的子代,尽量避免仅选择较优个体进行遗传而陷入局部最优解的缺陷,以提高遗传个体的种群多样性和加速遗传算法的全局搜索能力和速度进化。
TMR规则
物理节点上的虚拟机迁移过程可以被视为一个包装的问题,将项目(虚拟机)的合理的装入每个盒子(物理节点)中,项目的大小代表了资源使用的虚拟机大小,容量的盒子是使用资源物理节点阈值,每个负载都会对应一个资源调度方案。
本设计所涉及的物理节点的资源为CPU,因此建立了虚拟机的折线图如图3.1所示。
图3.14个虚拟机在物理节点资源分配示意图
从图中可以看出,横坐标为CPU,纵坐标为容量,即资源大小。
由于不同的应用程序和不同类型的资源对所需要的应用程序的需求不同,当4台虚拟机在物理节点上运行时,不同纬度的节点资源呈现下降趋势,但下降程度不同。
多目标优化模型的建立
物理节点
物理网络节点是一个连接到网络的有源的电子设备,是可以通过通信通道发送、接收或转发信息。
而在优化模型中,物理节点的多少是一个重要的参考点。
本文用0,1的二维矩阵来模拟单个物理节点在每一时刻每一个虚拟机的位置。
0表示每一时刻每一虚拟机的位置,1表示激活的物理节点。
从第一个物理节点到最后一个物理节点,第一个时刻到最后一个时刻时,随着虚拟机的个数的改变,对相对应的二维矩阵里的列项进行加和,如果大于0,则记录为1,,最后再次进行加和处理便可得到激活的物理节点数目[23]。
假定云平台中物理节点的个数为
,虚拟机的个数为
,多个应用虚拟机可以同时分布在一个物理节点上,单个物理节点的CPU数量为
。
目标函数为:
(3.6)
其中:
(3.7)
用实际云环境中的资源负载数据来模拟未来一段时间内虚拟机的应用负载的预测数据。
X表示物理节点的分布模式,
为新分布模式迁移后
的稳定时间。
根据当前虚拟机在物理节点上的初始分布方式
和动态变化的负载预测信息,以系统虚拟化技术和虚拟机实时迁移技术为基础,来寻求一种最优的虚拟机在物理节点上的新分布方式
。
使用的活动物理节点比初始分布X少。
虚拟机迁移次数
计算虚拟机的迁移次数,本文用了循环判断的方式进行。
从第一时刻到下一时刻,判断虚拟机的位置与上一次位置是否相同,若相同,则证明虚拟机没有迁移,若不相同,则证明虚拟机已迁移,记录1次,往后依次递增,最后进行加和处理,便可得出虚拟机迁移的总次数。
目标函数为:
(3.8)
其中:
(3.9)
式中
标识在新分布方式
中物理节点
是否处于激活状态。
表示虚拟机迁移结束后得到的新分布方式
中虚拟机
是否发生了迁移。
公式(3.9)表示物理节点
处于激活状态时则
值为1,否则值为0。
公式(3.7)标识虚拟机
发生迁移与否。
虚拟机稳定时间
虚拟机的稳定时间是从当前时刻开始一直到虚拟机超负荷之前,虚拟机当前的位置与下一时刻位置是否相同。
若相同,则记录为1,往后依次增加,若不相同,则不记录。
加和处理统计数据。
当目标函数迁移次数越小时,则证明虚拟机的稳定时间越久。
目标函数为:
(3.10)
其中:
(3.11)
(3.12)
公式(3.11)标识虚拟机
发生迁移与否。
公式(3.12)说明变量
和都是布尔变量。
约束条件
约束不符合要求的编码基因有助于统计所需数据的准确性和规范性。
将每一时刻的物理节点位置和所需虚拟机的数量进行乘积与物理节点初始二维矩阵相乘,得到新的所需虚拟机数量,此时若虚拟机新的需求数量的数量大于原始需求数量,则进行约束,将此物理节点的目标函数值加一个很大的数值,防止干扰原始数据。
约束条件:
(3.13)
(3.14)
组编码方式
编码是一种遗传描述,它将云计算平台上的物理节点和虚拟机转换成染色体和基因,即模拟从问题求解到染色体和基因映射到生物进化的过程。
MOGAIN使用编码方法来表达基因类型及其在染色体上的分布。
此外,在组编码模式中,每个染色体(也称为个体)对应于资源调度解决方案。
每个个体上的每个基因代表一个特定的激活物理节点及其虚拟机。
该基因具有与其对应的物理节点相同的资源负载类型。
多个基因序列形成一个染色体或个体,多个个体形成一个群由于不同虚拟机分配模式所包含的物理节点数量可能不同,而相同的多台虚拟机可能放置在不同数量的物理节点上,相应的个体长度也不同,因此不同长度的染色体也应该是遗传算子[23]。
种群初始化
MOGAINS原始分布应该包含当前虚拟机集合上所有物理节点的编码信息,原始分布的初始集合在虚拟机负载信息资源和物理节点随机映射生成的前提下,是没有方向性的,这样便能保证初始分布集合的多样性,提供更大的搜索空间。
染色体的生成
MOGAINS操作符可以识别染色体的过程如算法3.1所示。
算法3.1染色体的生成
1)chromo_size=ceil(log2(m/eps+1));
2)各个染色体长度的数据
3)pop=cell(pop_size,t)
4)初始化参数并且保存种群各个变量的染色体,100*时间根矩阵
5)pop_int=cell(1,pop_size)
6)利用模拟染色体来解码数据
7)这块主要用于计算适应度
8)fori=1:
pop_size
9)forj=1:
t
10)pop{i,j}=initilize_pop(n,chromo_size)
11)初始化种群(随机数)100*t个包
12)每个矩阵都是8个虚拟机位置的染色体
13)end
14)end
进化算子
MOGAINS是通过虚拟机在物理节点之间映射的初代分布并且生成种群规模大小的染色体后产生初始种群,然后基于动态变化的应用负载信息对初始种群中的染色体进行遗传操作来寻找虚拟机在物理节点上最优的新分布方式
。
轮盘赌注
轮盘赌注算法的思想是个体被选中的概率与其适应度函数值成正比。
首先计算适应度比例,即每个个体的选择概率。
然后计算每个个体的累积概率,相当于转盘上的“跨度”,“跨度”越大越容易选到,在每个个体之前,所有个体的选择概率之和等于概率论中的概率分布函数。
相当于概率论中的概率分布函数。
可以随机生成一个数组,然后将他们有序排列,如果累积的概率大于随机生成序列,则被选择并且将继续比较,若小于,则不选择,此时再比较下一个个体。
具体的运算方法如表3.2所示。
算法3.2基于轮盘赌注法的选择操作
1)FIT1=1./Fit;
2)sum_Fit=sum(FIT1);总的适应度
3)fitvalue=FIT1./sum_Fit;每个适应度占比
4)fitvalue=cumsum(fitvalue);累计占比
5)ms=sort(rand(pop_size,1));产生0-1随机数
6)fiti=1;初始化下标
7)newi=1;累计选择优秀下标
8)nf=cell(pop_size,t);
9)whilenewi<=pop_size
10)if(ms(newi) 11)forim=1: 1: t 12)forjm=1: 1: n 13)nf{newi,im}(jm,: )=pop{fiti,im}(jm,: ); 14)end 15)end 16)newi=newi+1; 17)else 18)fiti=fiti+1; 19)end 20)end 交叉 交叉遗传算子的主要功能是将优良基因直接传递给后代,而交叉遗传算子的位置变换极大地增加了种群的生物多样性,这也决定了遗传算法的全局分析和搜索能力。 如果使用单一的交叉方法来执行父代和子代个体之间的交叉概率,那么在概率不变的情况下,交叉将是重复的。 当某些物理节点上没有虚拟机时,仍然可以执行交叉操作,并且可以在不同长度的染色体之间执行交叉操作[24]。 变换位置的运算方法如表3.3所示。 算法3.3基于概率的交叉操作 1)fori=1: 2: pop_size 2)p=rand; 3)随机生成一个交叉的概率 4)ifp 5)forim=1: 1: t 6)forpm=1: 1: n 7)q=randi([0,1],1,chromo_size); 8)forj=1: chromo_size 9)ifq(j)==1表示交叉点 10)交换位置即交叉 11)temp=nf{i+1,im}(pm,j); 12)nf{i+1,im}(pm,j)=nf{i,im}(pm,j); 13)nf{i,im}(pm,j)=temp; 14)end 15)end 16)end 17)end 18)end 19)end 20)基于概率的进化逆转将一条染色体上某两个点进行交换位置 21)forim=1: 1: t索引各个时间 22)fori=1: pop_size 23)索引各个种群 24)fork=1: 1: n 25)r1=rand(1,1);逆转概率 26)ifr1 27)index=randperm(chromo_size,2);两个位置倒位 28)交换位置 29)temp=nf{i,im}(k,index (1)); 30)nf{i,im}(k,index (1))=nf{i,im}(k,index (2)); 31)nf{i,im}(k,index (2))=temp; 32)end 33)end 34)end 35)End 36)clearpop清空上一步种群 37)pop=nf;产生新种群 变异 突变算子是生成新种群个体的重要辅助方法之一。 通过给出一定的变异概率,新的种群被种群和每条染色体所取代。 由这种给予变异概率的运算方法如下表3.4所示。 算法3.4基于变异的交叉操作 1)forim=1: 1: t索引各个时间 2)fori=1: pop_size索引各个种群 3)forimmm=1: 1: n 4)fork=1: chromo_size索引各个染色体 5)r=rand(1,1);给出变异概率 6)ifr 7)nf{i,im}(immm,k)=~nf{i,im}(immm,k);进行变异 8)end 9)end 10)end 11)end 12)end 进化逆转 进化逆转是利用一条染色体上的两个位置进行互换,而达到个体与个体之间的转换。 利用交叉算子和变异算子对种群进行变异,极大的增加了种群个体间的位置更新,可以更好地避免局部最优解的情况。 如下表3.5所示。 算法3.5进化逆转算法 1)forim=1: 1: t索引各个时间 2)fori=1: pop_size索引各个种群 3)fork=1: 1: n 4)r1=rand(1,1);逆转概率 5)ifr1 6)index=randperm(chromo_size,2);两个位置倒位 7)交换位置 8)temp=nf{i,im}(k,index (1)); 9)nf{i,im}(k,index (1))=nf{i,im}(k,index (2)); 10)nf{i,im}(k,index (2))=temp; 11)end 12)end 13)end 14)end 15)更新新种群 16)clearpop清空上一步种群 17)pop=nf;产生新种群 算法流程 算法的整体流程如图3.2所示。 图3.6算法流程图 本章节对于本文所用的调用方案进行了分析,且对于云计算动态资源配置的资源分配以及利用生物学染色体基因模拟每个物理节点上的信息,并且对于进化算子(交叉、变异)以及轮盘赌注算法进行了剖析以及自己的程序原理和编写思路。 通过以上路径,才成功的完成本文的研究。 仿真与结果分析 数据采集与处理 根据要求,本文实验使用的数据来自于2017年8月份发布的阿里巴巴数据集群的1300个物理节点连续12个小时的资源负载数据(资源负载数据,RLD)每个节点间隔60秒连续记录5次,然后连续计算5次的算术平均值。 当RLD跟踪启动时,大约99%的物理节点可以被视为同构节点,其中CPU的核数为物理节点的真实核数,如表4.1所示。 表4.1物理节点和CPU合数表 物理节点数量CPUs(核) 564 764 19964 36964 73564 164 仿真结果 (1)当交叉概率为0.8、变异概率为0.2、进化逆转概率为0.2、进化代数为10、种群个数为10,轮盘选择精度为0.1时,迭代进化与拟合误差如图4.2所示。 根据折线图,横坐标为迭代进化数,纵坐标为拟合数据误差。 整个折线处于收敛状态。 当迭代进化代数为0-80和380-400时,拟合数据误差下降最快。 在前期操作中,由于计算产生的单适应度累积比由小到大并与随机数进行比较,拟合数据误差在前期大幅减小。 随着迭代次数的增加,当迭代进化代数达到400时,拟合数据误差趋于稳定。 拟合数据的误差越来越小,这也证明了优化的稳定性和可行性。 图4.2迭代进化图 (2)以三次不同的条件函数,获得以下虚拟机的节点次数、迁移数量以及稳定时间对比图如图4.3所示。 图4.3运行结果对比图 本设计选取的三组物理节点数分别为749、698和713,列出了各组物理节点在不同条件下的迁移时间和稳定时间。 图4.3表明MOGAINPS以迁移次数较多为代价,在新的分布模式状态下具有较高的稳定性和较少的活动物理节点。 其原因在于MOGAINPS对Pareto前沿的预筛选操作增加了种群的分布性,而且通付TMR规则也能较好的实现资源的均衡利用,不同物理节点的匹配,也在使用较少物理节点的前提下保证了物理节点的稳定时间。 (3)三维空间立体分布散点图 图4.4: 三维空间散点分布 图4.5: 三维空间散点分布图 图4.6: 三维空间散点分布图 实验种群规模是50,物理节点的数量到100,虚拟机的数量与人口迁移演化代数的增加。 随机种群可以选取第5代、第13代和第23代的种群的分布情况,分别如图4.4、4.5、4.6所示,图中x轴代表每个单独的云平台的稳定时间,y轴表示虚拟机迁移频率,z轴表示物理节点数量的激活。 可以发现,随着进化代数的增加,多数个体在遗传过程中都朝着虚拟机迁移次数少、物理节点激活次数少的方向进化,这也很好地验证了遗传算法是可行的。 结果分析 根据实验结果,MOGAISP交叉概率P设置为0.8,突变概率Pm设置为0.2,进化反转概率Pn设置为0.2。 最后的结果是十次重复后的算术平均数。 实验的种群规模为10(popSise=10),进化代数为10(maxGen=10)。 在虚拟机分布初始状态相同和应用程序负载预测信息相同的前提下,运行算法MOGAISP得到了一种新的不同的虚拟机分布模式。 表4.7列出了物理节点数为25、虚拟机数为95时的相关实验数据。 表4.8列出了物理节点数为50,虚拟机数为250时的相关实验数据。 表4.725个物理节点和95个虚拟机运行结果 个体参数 MOGAISP 激活数量 13.0 迁移次数 52 稳定时间(s) 118.04 表4.850个物理节点和250个虚拟机运行结果 个体参数 MOGAISP 激活数量 31.0 迁移次数 137 稳定时间(s) 142.35 结果表明,MOGAISP的稳定时间更短,迁移次数更多,新的分布模式可以减少活动物理节点的数量。 云平台的主要能源成本之一是活动物理节点的数量少。 因此,当活动物理节点的数量大大减少时,资源消耗就会减少,为了保持物理节点的稳定时间,迁移时间就会增加。 还可以进一步证明,在活动物理节点数量稳定的情况下,新的虚拟机分布可以更好地降低能耗。 本章小结 此次模拟遗憾的是并非是在理想型下进行的,理想环境时,当迭代次数达到一个终点值时,其拟合误差可能会达到0状态,此时可获得一个最完美的数据。 该数据便会是优化的最优结果。 由于每次运行,数据量庞大,运行一次需要4-5个小时,所以结果并非是完美的,可能得到的结果局部最优得概率胜过全数据平均分布。 但得到的结果仍然满足率最初的目的,证明该方法是正确的,若要完美化,可能还需要通过其他的途径进行改进,已达到理论与实践双可行的结果。 云计算实现计算资源的动态按需配置,极大提高了资源的有效使用,在资源配置过程中如何较好的平衡物理节点的稳定性和能源消耗之间的关系越来越重要。 本课题针对云计算中的虚拟机调度问题,利用信息处理技术和人工智能技术,设计一种动态资源配置方法,主要工作如下: 1.对云计算中虚拟机资源配置相关文献进行检索、分析。 2.运用信息处理、人工智能、多目标优化等相关原理,对动态资源配置数据进行采集、处理和分析,结合经济、安全等非技术因素,给出优化配置设计解决方案。 3.根据解决方案,综合考虑云平台的稳定时间、物理节点的激活数量和虚拟机的迁移次数等几个因素,实现多目标配置优化模型、进化机制、精英保留策略等模块设计。 4.对数据处理、优化模型、适应度计算、进化算子等进行编写程序,并完成模拟仿真。 5.对仿真的结果数据进行收集、分析、归纳,并进行调整。 在本次设计中依照老师任务书要求,按步骤进行多目标优化算法的学习和设计,并对云平台的动态资源配置进行了深刻的了解。 基本实现了老师所要求的功能。 但由于时间有限,对于遗传算法在后期容易陷入局部最优解而降低算法精确度及正确性等缺陷尚未进行优化,但随着未来研究的深入,我相信能够完美解决资源合理分配,并降低能源消耗,一定会取得更好的结果。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算 资源 分配 现状