CN107562537A - 一种基于万有引力搜索的云计算任务调度方法 - Google Patents

一种基于万有引力搜索的云计算任务调度方法 Download PDF

Info

Publication number
CN107562537A
CN107562537A CN201710719566.3A CN201710719566A CN107562537A CN 107562537 A CN107562537 A CN 107562537A CN 201710719566 A CN201710719566 A CN 201710719566A CN 107562537 A CN107562537 A CN 107562537A
Authority
CN
China
Prior art keywords
load
virtual machine
particles
current
tasks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710719566.3A
Other languages
English (en)
Other versions
CN107562537B (zh
Inventor
龙军
李聪
朱磊
陈仕隆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Central South University
Original Assignee
Central South University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Central South University filed Critical Central South University
Priority to CN201710719566.3A priority Critical patent/CN107562537B/zh
Publication of CN107562537A publication Critical patent/CN107562537A/zh
Application granted granted Critical
Publication of CN107562537B publication Critical patent/CN107562537B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Multi Processors (AREA)

Abstract

本发明公开了一种基于万有引力搜索的云计算任务调度方法,本方法将用户需求的任务高效的分布在云系统的各个虚拟机上,由于云计算负载均衡方法或者云计算任务调度方法本身是一个NP问题。任务分配过程中,主要需要解决的是服务器的选择问题。而万有引力算法中个体是呈分布式的状态,个体之间具有较高的自组织性,符合云计算的特点。利用模拟万有引力相互吸引的过程,尽可能找到合适的虚拟机和服务器,从而提升系统性能,并且根据虚拟机反馈的信息尽可能做出正确的决定,同样虚拟机在每次分配任务结束之后更新自己信息,并通知后来的云任务,保证算法的高效。

Description

一种基于万有引力搜索的云计算任务调度方法
技术领域
本发明涉及一种基于万有引力搜索的云计算任务调度方法。
背景技术
云计算的思想是将运算任务分布在由大量服务器构成的资源池上,并且 这些资源可以按需分配给用户使用。因为云计算中存在庞大的用户群,因此 在网络计算中,常常会涉及到服务器节点的选择以及当前网络拥塞情况的调 整,负载均衡的目的正是为了解决网络环境和服务器的问题。云计算任务的 有效调度不仅可以减少执行成本和时间,也可以获得更好的经济效益。负载 均衡的算法一般都是基于动态启发式算法。但目前的万有引力搜索算法容易 早熟,算法精度不高,运行效率偏低。
发明内容
为了解决目前万有引力搜索算法存在容易早熟,算法精度不高,运行效 率偏低的技术问题,本发明提供一种利用模拟万有引力相互吸引的过程,尽 可能找到合适的虚拟机和服务器,从而提升系统性能,并且根据虚拟机反馈 的信息尽可能做出正确的决定,同样虚拟机在每次分配任务结束之后更新自 己信息,并通知后来的云任务,保证算法的高效的基于万有引力搜索的任务 调度方法。
为了实现上述技术目的,本发明的技术方案是,
一种基于万有引力搜索的云计算任务调度方法,包括以下步骤:
步骤一,选择:随机选择所有任务的n%作为样本,0<n<100,按照ETC 矩阵来得到执行任务花费时间最少的方式,按这个方式来选择虚拟机去执行 任务;
步骤二,判断平衡:如果当前系统处于平衡状态,则直接将当前批次任 务分配到步骤一中选择的虚拟机上,若不平衡,则执行步骤三;
步骤三,迭代:为当前批次预分配的任务通过迭代方式来选择更为合适 的虚拟机,并根据该迭代方式为虚拟机分配合适的服务器;
步骤四,判断当前物理机是否超过负载,若当前系统处于平衡状态则执 行步骤六,否则执行步骤五;
步骤五,限制系统负载,更新当前的系统,重新选择虚拟机调度执行任 务,返回步骤三;
步骤六,分配任务到虚拟机上;
步骤七,结束调度。
所述的一种基于万有引力搜索的云计算任务调度方法,所述的步骤二中, 用于判断平衡的公式为:
其中Ti VM为第i个虚拟机的当前负载,N为虚拟机个数;
Tj C为第j个物理机的当前负载,M为物理机个数;
EL(X)VM为当前时刻虚拟机负载均值;
EL(X)C为当前时刻物理主机负载均值;
DL(X)VM为当前时刻虚拟机负载方差;
DL(X)C为当前时刻物理机负载方差;
其中λ为0-1之间的实数,S为系统稳定值。
所述的一种基于万有引力搜索的云计算任务调度方法,所述的步骤三中, 用于选择虚拟机及分配服务器的迭代是通过万有引力算法来进行,包括以下 步骤:
步骤1)、初始化:引力常数初始值G0、调节引力常数G的衰减速度来控 制搜索精度的参数值α、任务的个数M、虚拟机的个数N、服务器的个数j、 阈值c及作为万有引力算法中粒子的任务、虚拟机和服务器的位置;
步骤2)、计算各任务、虚拟机和服务器这些粒子的适应度,然后根据适 应度计算各粒子的质量,再根据质量得到各粒子所受引力,
步骤3)、更新变量G(t)、best(t)、worst(t),G(t)为当前时刻引力常 数,best(t)为当前时刻适应度最小值,worst(t)为当前时刻适应度最大值;
步骤4)、更新各物体位置;
步骤5)、如果存在作为任务的粒子和作为虚拟机的粒子之间的距离小于阈 值c,则将该粒子所代表的任务分配给该虚拟机,直到所有代表任务的粒子分 配完毕,则迭代过程结束。
所述的一种基于万有引力搜索的云计算任务调度方法,所述的步骤2)中, 计算各任务、虚拟机和服务器的适应度包括以下步骤:
将任务分配到虚拟机上时:任务的适应度为任务长度,虚拟机的适应度为 虚拟机计算速度*CPU可用核数;
将虚拟机分配到服务器上时:适应度函数为
所述的一种基于万有引力搜索的云计算任务调度方法,所述的步骤2)中, 根据适应度计算各粒子的质量包括以下步骤:
Mai=Mpi=Mi,其中Mai为第i个粒子的主动引力质量,Mpi为第i个粒子 的被动引力质量,Mi为第i个粒子的质量;
其中mi(t)是根据适应度更新的第i个粒子的质量,fiti(t)是第i个粒子在t时刻的适应度值,best(t)为当前时刻所有粒子的 适应度中的最小值,即其中Z为粒子总数,worst(t) 为当前时刻所有粒子的适应度中的适应度最大值,即其中Z为粒子总数;
其中Mi(t)为第i个粒子在t时刻的质量。
所述的一种基于万有引力搜索的云计算任务调度方法,所述的步骤2)中, 根据质量得到各粒子所受引力包括以下步骤:
以X表示所有粒子x的集合,有X=(x1,x2,...,xZ-1,xZ),其中Z为粒子总 数,
定义在D个维度下,第i个粒子的位置集合为:
在当前时刻t,第j个粒子Xj作用在d维上对第i个粒子Xi上的引力大 小为:其中,Rij表示两个粒子之间的欧 氏距离Rij=||Xi(t),Xj(t)||2,ε取大于0小于0.001,分别表示在维度d 下Xj和Xi的位置,其中d的取值范围为1-D;
其中G0表示引力常数的初始值,α表示调节引力常数 G的衰减速度来控制搜索精度的参数值,T为最大迭代次数,exp表示指数函 数;
以作用在第i个粒子上的作用力是来自所有粒子作用力的总和,则有:
第i个粒子在第d维上的加速度为:
粒子更新速度和位置的公式为:
所述的一种基于万有引力搜索的云计算任务调度方法,判断当前物理机是 否超过负载的公式为:
第i个物理机Pi上的负载如下所示:
为k时刻CPU核数,为前一时刻CPU核数
为k时刻物理机内存,为前一时刻内存大小
为k时网络带宽,为前一适合带宽大小
其中mi表示物理机Pi上虚拟机的总数。
所述的一种基于万有引力搜索的云计算任务调度方法,所述的步骤五中, 用于限制系统负载的公式为:
LOADi=LOADi+r*(LOADMAX-LOADMIN)
其中,LOADi为第i次迭代时的系统负载,LOADMax为系统允许运行的最 大负载,LOADMin为系统允许运行的最小负载,r为0-1之间的随机数。
本发明的技术效果在于,本方法充分利用了当前环境下的有效节点,提 高了算法效率,任务完成总时间最少,平均任务完成时间最低,且违反SL A次数最少。同时算法运行时间低于传统万有引力里搜索算法,可大大减小 程序运算时间。
下面结合附图对本发明作进一步说明。
附图说明
图1为云计算的任务调度模型示意图;
图2为云计算的任务调度流程图。
具体实施方式
本发明将用户需求的任务高效的分布在云系统的各个虚拟机上,云计算 负载均衡方法或者云计算任务调度方法本身是一个NP问题。任务分配过程中, 主要需要解决的是服务器的选择问题。万有引力算法中个体是呈分布式的状 态,个体之间具有较高的自组织性,符合云计算的特点。利用模拟万有引力 相互吸引的过程,尽可能找到合适的虚拟机和服务器,从而提升系统性能, 并且根据虚拟机反馈的信息尽可能做出正确的决定,同样虚拟机在每次分配 任务结束之后更新自己信息,并通知后来的云任务,保证算法的高效。
云计算的任务调度模型可以简化为图1所示。User1、User2、...、Useri, 表示共有i个用户在使用云计算资源,他们向云平台提交自己需要运行的任务。 T1、T2、T3、...、Tm表示这i个用户所提交的任务,每一个用户可以提交许 多个任务。WM1、WM2、...、WMn表示有n个虚拟机,每一个虚拟机上可 运行多个任务,每个任务只能被安排在一个虚拟机上运行。Host1、Host2、...、 Hostj表示有j个物理主机,每一个虚拟机都只对应着一个物理主机,而在一 个物理主机上能同时存在多个虚拟机。在云任务和虚拟机之间由数据中心代 理负责任务的调度,在虚拟机和物理主机之间也存在一个虚拟机的调度。
任务调度模型的流程如图2所示。任务调度器的调度策略是由云服务提 供商定制的,任务调度器负责把可用的资源分配给任务并安排任务的执行。 而云服务商负责接收用户的任务需求,然后交给任务调度器进行调度。
在实际仿真调度的过程中,任务虽然是一个真实存在的实体,但是这个 实体并不能直接拿给调度算法进行调度表的生成,所以获取这个任务实体上 相关的属性,可把任务抽象成下表1。
表1任务属性表
还有虚拟机也是如此,调度算法并不是把整个的虚拟机都拿来运算,而 是虚拟机上的相关属性,所以虚拟机可以抽象为下表2。
表2虚拟机属性表
根据虚拟机和任务的参数,可以得到一个m*n的矩阵ETC(Expected Time toCompute),ETC矩阵的值可由以下计算。
lengthc表示Tc任务的长度,mipsr表示WMr虚拟机的速度,则ETCc,r表示 Tc任务在WMr虚拟机上运行的时间。若用Er表示虚拟机WMr运行完分配给 它的任务所需要的时间,而虚拟机上分配的任务数为cntr,任务集合为task, 那么Er可由以下公式计算。
其中taski表示分配到WMr虚拟机的第i个任务。
由于每一个虚拟机都是并行运行的,那么整个任务的完成时间则由运行 时间最长的那个虚拟机决定,完成所有任务所需要的时间用Etotal来表示,则 由公式(2)计算。
若虚拟机的单位时间花费是cost,用costtotal表示完成当前所有任务的花 费,则由公式(3)计算。
其中costi为第i个虚拟机的单位时间花费。
虚拟机的负载可表示为:
LOAD=Mips*NumCPU+Bw+Ram (4)
LOAD——CPU所有核的处理能力
Mips——计算速度
NumCPU——CPU核数
Bw——虚拟机的带宽
Ram——虚拟机内存大小
一般云计算上的资源都是以虚拟机的形式提供给任务,所以研究任务调 度的任务调度问题就是研究任务和虚拟机之间的分配问题。调度方法如下所 示。
执行步骤:
(1)初始化:设置云任务、虚拟机和服务器的所有参数,参数符合实际;
(2)选择:随机选择所有任务的n%作为样本,按照ETC矩阵,单位时
间花费最少的方法选择负载最优的虚拟机去执行任i
(因为初始化时系统资源利用率低,虚拟机大多处于闲置状态,n可自行 设定,可以适当减少任务的分配次数)
(3)判断平衡如果当前系统处于平衡状态,则直接将当前批次任务分 配到(2)中的虚拟机上,若不平衡,则执行下一步(4)
判断平衡的公式:
根据实际情况设定阈值,超过阈值则判断为当前系统不平衡。
(4)迭代:此时系统处于不平衡状态,需为当前批次预分配的任务利用 迭代公式选择更为合适的虚拟机,迭代公式见最后;同时按照此迭代公式为 虚拟机分配合适的服务器;
(5)判断当前物理机是否超过负载,若当前系统处于平衡状态则执行(7), 否则需重新限定系统,避免进入死循环;
物理机的状态可分为:过载、正常、轻载
(仿真过程认为虚拟机资源占用超过0.9为过载,低于0.2为轻载)
总结第i个物理机Pi上的负载如下所示:
(前一时刻和当前时刻的平均值,因为虚拟机资源是动态变化的)
其中mi表示物理机Pi上虚拟机的总数。本地迁移代理会监控物理机的负 载状况。如果物理机的负载超过了预先设定的门槛,就会发起迁移。门槛的 大小预先设定。
(5)限制系统负载,利用限制公式更新当前的系统,重新选择虚拟机调 度执行任务,返回(4),限制公式如下所示
虚拟机限制公式:
LOADi=LOADi+r*(LOADMAX-LOADMIN)
其中,LOADi为第i次迭代时的系统负载,LOADMax为系统允许运行的最 大负载,LOADMin为系统允许运行的最小负载,r为0-1之间的随机数。
(1)分配任务到虚拟机上
(2)判断结束
仿真结果同随机调度算法、贪心算法、万有引力搜索算法相比,在虚拟 机、云任务数量增加时,四种方法下任务运行时间基本都随着任务数量的增 长呈线性增长趋势,但由于改进万有引力算法充分利用了当前环境下的有效 节点,提高了算法效率,任务完成总时间最少,平均任务完成时间最低,且 违反SLA次数最少。
同时算法运行时间低于传统万有引力里搜索算法。且设置比例n合理时, 可大大减小程序运算时间
仿真平台:CloudSim3.0
传统的万有引力算法如下所示:
根据牛顿万有引力公式,万有引力与两个粒子大小成正比,与他们之间 的欧氏距离成反比,如下所示:
其中F表示万有引力大小,G为引力常数,M1、M2表示两个惯性物体 的质量,R为欧氏距离
加速度:
假设Z为空间中存在Z个粒子,以X表示所有粒子x的集合,则有: X=(x1,x2,...,xZ-1,xZ)
定义在D个维度下,第i个粒子的位置集合为:
在当前时刻t,第j个粒子作用在第d个维度上对第i个粒子上的引力大 小为:其中Rij表示两个粒子之间的欧 氏距离Rij=||Xi(t),Xj(t)||2,ε取大于0小于0.001,分别表示在维度d 下Xj和Xi的位置,其中d的取值范围为1-D;
其中G0表示引力常数的初始值,α表示调节引力常数G的衰减速度来控 制搜索精度的参数值,t为当前时刻,T为最大迭代次数,exp表示指数函数;
在GSA即万有引力算法中,假设第d维粒子作用在第i个粒子上的作用 力是来自所有粒子作用力的总和,大小定义如下:
第i个粒子在第d维上的加速度为:
GSA中粒子更新速度和位置的公式为:
质量是根据适应度值大小来计算和更新的:
Mai=Mpi=Mi,其中Mai为第i个粒子的主动引力质量,Mpi为第i个粒子 的被动引力质量,Mi为第i个粒子的质量;
其中mi(t)是根据适应度更新的第i个粒子的质 量,fiti(t)是第i个粒子在t时刻的适应度值,best(t)为当前时刻所有粒 子的适应度中的最小值,即其中Z为粒子总数,worst (t)为当前时刻所有粒子的适应度中的适应度最大值,即 其中Z为粒子总数;
其中Mi(t)为第i个粒子在t时刻的质量
可以得到一对多的情况,即存在多个任务分配到同一个虚拟机上的情况
迭代过程:
1、初始化:将引力常数初始值G0、调节引力常数G的衰减速度来控制 搜索精度的参数值α、任务的个数M、虚拟机的个数N、服务器的个数j、阈 值c及作为万有引力算法中粒子的任务、虚拟机和服务器的位置全部进行初 始化;
2、(不计算虚拟机之间的互相吸引力)计算各任务、虚拟机和服务器这 些粒子的适应度,然后根据适应度计算各粒子的质量,再根据质量得到各粒 子所受引力;
将任务分配到虚拟机上时:任务的适应度为任务长度,虚拟机的适应度为 虚拟机计算速度*CPU可用核数;
将虚拟机分配到服务器上时:适应度函数为
3、更新变量G(t)、best(t)、worst(t)
4、更新各物体位置
存在M中粒子和N中粒子距离小于c,则将该粒子分配给d,直到所有 粒子分配完毕,则迭代过程结束(设置阈值c可以减少不必要的算法迭代时 间)。

Claims (8)

1.一种基于万有引力搜索的云计算任务调度方法,其特征在于,包括以下步骤:
步骤一,选择:随机选择所有任务的n%作为样本,0<n<100,按照ETC矩阵来得到执行任务花费时间最少的方式,按这个方式来选择虚拟机去执行任务;
步骤二,判断平衡:如果当前系统处于平衡状态,则直接将当前批次任务分配到步骤一中选择的虚拟机上,若不平衡,则执行步骤三;
步骤三,迭代:为当前批次预分配的任务通过迭代方式来选择更为合适的虚拟机,并根据该迭代方式为虚拟机分配合适的服务器;
步骤四,判断当前物理机是否超过负载,若当前系统处于平衡状态则执行步骤六,否则执行步骤五;
步骤五,限制系统负载,更新当前的系统,重新选择虚拟机调度执行任务,返回步骤三;
步骤六,分配任务到虚拟机上;
步骤七,结束调度。
2.根据权利要求1所述的一种基于万有引力搜索的云计算任务调度方法,其特征在于,所述的步骤二中,用于判断平衡的公式为:
<mfenced open = "" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>E</mi> <mi>L</mi> </msub> <msup> <mrow> <mo>(</mo> <mi>X</mi> <mo>)</mo> </mrow> <mrow> <mi>V</mi> <mi>M</mi> </mrow> </msup> <mo>=</mo> <mfrac> <mn>1</mn> <mi>N</mi> </mfrac> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msubsup> <mi>T</mi> <mi>i</mi> <mrow> <mi>V</mi> <mi>M</mi> </mrow> </msubsup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>&amp;DoubleRightArrow;</mo> <msub> <mi>D</mi> <mi>L</mi> </msub> <msup> <mrow> <mo>(</mo> <mi>X</mi> <mo>)</mo> </mrow> <mrow> <mi>V</mi> <mi>M</mi> </mrow> </msup> <mo>=</mo> <mfrac> <mn>1</mn> <mi>N</mi> </mfrac> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msup> <mrow> <mo>(</mo> <msubsup> <mi>T</mi> <mi>i</mi> <mrow> <mi>V</mi> <mi>M</mi> </mrow> </msubsup> <mo>-</mo> <msub> <mi>E</mi> <mi>L</mi> </msub> <msup> <mrow> <mo>(</mo> <mi>X</mi> <mo>)</mo> </mrow> <mrow> <mi>V</mi> <mi>M</mi> </mrow> </msup> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </mtd> </mtr> </mtable> </mfenced>
<mfenced open = "" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>E</mi> <mi>L</mi> </msub> <msup> <mrow> <mo>(</mo> <mi>X</mi> <mo>)</mo> </mrow> <mi>C</mi> </msup> <mo>=</mo> <mfrac> <mn>1</mn> <mi>M</mi> </mfrac> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>M</mi> </munderover> <msubsup> <mi>T</mi> <mi>j</mi> <mi>C</mi> </msubsup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>&amp;DoubleRightArrow;</mo> <msub> <mi>D</mi> <mi>L</mi> </msub> <msup> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mi>C</mi> </msup> <mo>=</mo> <mfrac> <mn>1</mn> <mi>M</mi> </mfrac> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>M</mi> </munderover> <msup> <mrow> <mo>(</mo> <msubsup> <mi>T</mi> <mi>j</mi> <mi>C</mi> </msubsup> <mo>-</mo> <msub> <mi>E</mi> <mi>L</mi> </msub> <msup> <mrow> <mo>(</mo> <mi>X</mi> <mo>)</mo> </mrow> <mi>C</mi> </msup> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>&amp;DoubleRightArrow;</mo> <mi>S</mi> <mo>=</mo> <msub> <mi>&amp;lambda;D</mi> <mi>L</mi> </msub> <msup> <mrow> <mo>(</mo> <mi>X</mi> <mo>)</mo> </mrow> <mrow> <mi>V</mi> <mi>M</mi> </mrow> </msup> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>&amp;lambda;</mi> <mo>)</mo> </mrow> <msub> <mi>D</mi> <mi>L</mi> </msub> <msup> <mrow> <mo>(</mo> <mi>X</mi> <mo>)</mo> </mrow> <mi>C</mi> </msup> </mrow> </mtd> </mtr> </mtable> </mfenced>
其中Ti VM为第i个虚拟机的当前负载,N为虚拟机个数;
Tj C为第j个物理机的当前负载,M为物理机个数;
EL(X)VM为当前时刻虚拟机负载均值;
EL(X)C为当前时刻物理主机负载均值;
DL(X)VM为当前时刻虚拟机负载方差;
DL(X)C为当前时刻物理机负载方差;
其中λ为0-1之间的实数,S为系统稳定值。
3.根据权利要求1所述的一种基于万有引力搜索的云计算任务调度方法,其特征在于,所述的步骤三中,用于选择虚拟机及分配服务器的迭代是通过万有引力算法来进行,包括以下步骤:
步骤1)、初始化:引力常数初始值G0、调节引力常数G的衰减速度来控制搜索精度的参数值α、任务的个数M、虚拟机的个数N、服务器的个数J、阈值d及作为万有引力算法中粒子的任务、虚拟机和服务器的位置;
步骤2)、计算各任务、虚拟机和服务器这些粒子的适应度,然后根据适应度计算各粒子的质量,再根据质量得到各粒子所受引力;
步骤3)、更新变量G(t)、best(t)、worst(t),G(t)为当前时刻引力常数,best(t)为当前时刻适应度最小值,worst(t)为当前时刻适应度最大值;
步骤4)、更新各物体位置;
步骤5)、如果存在作为任务的粒子和作为虚拟机的粒子之间的距离小于阈值c,则将该粒子所代表的任务分配给该虚拟机,直到所有代表任务的粒子分配完毕,则迭代过程结束。
4.根据权利要求3所述的一种基于万有引力搜索的云计算任务调度方法,其特征在于,所述的步骤2)中,计算各任务、虚拟机和服务器的适应度包括以下步骤:
将任务分配到虚拟机上时:任务的适应度为任务长度,虚拟机的适应度为虚拟机计算速度*CPU可用核数;
将虚拟机分配到服务器上时:适应度函数为
<mrow> <msub> <mi>V</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>j</mi> <mo>,</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mi>K</mi> </mfrac> <mrow> <mo>(</mo> <msubsup> <mover> <mi>U</mi> <mo>&amp;OverBar;</mo> </mover> <mrow> <mi>c</mi> <mi>p</mi> <mi>u</mi> </mrow> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mover> <mi>U</mi> <mo>&amp;OverBar;</mo> </mover> <mrow> <mi>m</mi> <mi>e</mi> <mi>m</mi> </mrow> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mover> <mi>U</mi> <mo>&amp;OverBar;</mo> </mover> <mrow> <mi>n</mi> <mi>e</mi> <mi>t</mi> </mrow> <mn>2</mn> </msubsup> <mo>)</mo> </mrow> <mo>.</mo> </mrow>
5.根据权利要求3所述的一种基于万有引力搜索的云计算任务调度方法,其特征在于,所述的步骤2)中,根据适应度计算各粒子的质量包括以下步骤:
Mai=Mpi=Mi,其中Mai为第i个粒子的主动引力质量,Mpi为第i个粒子的被动引力质量,Mi为第i个粒子的质量;
其中mi(t)是根据适应度更新的第i个粒子的质量,fiti(t)是第i个粒子在t时刻的适应度值,best(t)为当前时刻所有粒子的适应度中的最小值,即其中Z为粒子总数,worst(t)为当前时刻所有粒子的适应度中的适应度最大值,即其中Z为粒子总数;
其中Mi(t)为第i个粒子在t时刻的质量。
6.根据权利要求5所述的一种基于万有引力搜索的云计算任务调度方法,其特征在于,所述的步骤2)中,根据质量得到各粒子所受引力包括以下步骤:
以X表示所有粒子x的集合,有X=(x1,x2,...,xZ-1,xZ),其中Z为粒子总数,
定义在D个维度下,第i个粒子的位置集合为:
在当前时刻t,第j个粒子Xj作用在第d个维度上对第i个粒子Xi上的引力大小为:其中,Rij表示两个粒子之间的欧氏距离Rij=||Xi(t),Xj(t)||2,ε取大于0小于0.001,分别表示在维度d下Xj和Xi的位置,其中d的取值范围为1-D;
其中G0表示引力常数的初始值,α表示调节引力常数G的衰减速度来控制搜索精度的参数值,T为最大迭代次数,exp表示指数函数;
以作用在第i个粒子上的作用力是来自所有粒子作用力的总和,则有:
第i个粒子在第d维上的加速度为:
粒子更新速度和位置的公式为:
<mrow> <msubsup> <mi>v</mi> <mi>i</mi> <mi>d</mi> </msubsup> <mrow> <mo>(</mo> <mi>t</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>rand</mi> <mi>j</mi> </msub> <mo>&amp;times;</mo> <msubsup> <mi>v</mi> <mi>i</mi> <mi>d</mi> </msubsup> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <msubsup> <mi>a</mi> <mi>i</mi> <mi>d</mi> </msubsup> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> </mrow>
<mrow> <msubsup> <mi>x</mi> <mi>i</mi> <mi>d</mi> </msubsup> <mrow> <mo>(</mo> <mi>t</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>=</mo> <msubsup> <mi>x</mi> <mi>i</mi> <mi>d</mi> </msubsup> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <msubsup> <mi>v</mi> <mi>i</mi> <mi>d</mi> </msubsup> <mrow> <mo>(</mo> <mi>t</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>.</mo> </mrow>
7.根据权利要求1所述的一种基于万有引力搜索的云计算任务调度方法,其特征在于,判断当前物理机是否超过负载的公式为:
第i个物理机Pi上的负载如下所示:
<mrow> <msub> <mi>V</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>j</mi> <mo>,</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mi>K</mi> </mfrac> <mrow> <mo>(</mo> <msubsup> <mover> <mi>U</mi> <mo>&amp;OverBar;</mo> </mover> <mrow> <mi>c</mi> <mi>p</mi> <mi>u</mi> </mrow> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mover> <mi>U</mi> <mo>&amp;OverBar;</mo> </mover> <mrow> <mi>m</mi> <mi>e</mi> <mi>m</mi> </mrow> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mover> <mi>U</mi> <mo>&amp;OverBar;</mo> </mover> <mrow> <mi>n</mi> <mi>e</mi> <mi>t</mi> </mrow> <mn>2</mn> </msubsup> <mo>)</mo> </mrow> </mrow>
<mrow> <mi>K</mi> <mo>=</mo> <msub> <mover> <mi>U</mi> <mo>&amp;OverBar;</mo> </mover> <mrow> <mi>c</mi> <mi>p</mi> <mi>u</mi> </mrow> </msub> <mo>+</mo> <msub> <mover> <mi>U</mi> <mo>&amp;OverBar;</mo> </mover> <mrow> <mi>m</mi> <mi>e</mi> <mi>m</mi> </mrow> </msub> <mo>+</mo> <msub> <mover> <mi>U</mi> <mo>&amp;OverBar;</mo> </mover> <mrow> <mi>n</mi> <mi>e</mi> <mi>t</mi> </mrow> </msub> </mrow>
<mrow> <msub> <mover> <mi>U</mi> <mo>&amp;OverBar;</mo> </mover> <mrow> <mi>c</mi> <mi>p</mi> <mi>u</mi> </mrow> </msub> <mo>=</mo> <mn>1</mn> <mo>/</mo> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>U</mi> <mrow> <msub> <mi>cpu</mi> <msub> <mi>t</mi> <mi>k</mi> </msub> </msub> </mrow> </msub> <mo>+</mo> <msub> <mi>U</mi> <mrow> <msub> <mi>cpu</mi> <msub> <mi>t</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </msub> </mrow> </msub> <mo>)</mo> </mrow> <msub> <mover> <mi>U</mi> <mo>&amp;OverBar;</mo> </mover> <mrow> <mi>m</mi> <mi>e</mi> <mi>m</mi> </mrow> </msub> <mo>=</mo> <mn>1</mn> <mo>/</mo> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>U</mi> <mrow> <msub> <mi>mem</mi> <msub> <mi>t</mi> <mi>k</mi> </msub> </msub> </mrow> </msub> <mo>+</mo> <msub> <mi>U</mi> <mrow> <msub> <mi>mem</mi> <msub> <mi>t</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </msub> </mrow> </msub> <mo>)</mo> </mrow> </mrow>
<mrow> <msub> <mover> <mi>U</mi> <mo>&amp;OverBar;</mo> </mover> <mrow> <mi>n</mi> <mi>e</mi> <mi>t</mi> </mrow> </msub> <mo>=</mo> <mn>1</mn> <mo>/</mo> <mn>2</mn> <mrow> <mo>(</mo> <msub> <mi>U</mi> <mrow> <msub> <mi>net</mi> <msub> <mi>t</mi> <mi>k</mi> </msub> </msub> </mrow> </msub> <mo>+</mo> <msub> <mi>U</mi> <mrow> <msub> <mi>net</mi> <msub> <mi>t</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </msub> </mrow> </msub> <mo>)</mo> </mrow> </mrow>
<mrow> <mi>P</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>T</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>m</mi> <mi>i</mi> </msub> </munderover> <mover> <msub> <mi>V</mi> <mi>i</mi> </msub> <mo>&amp;OverBar;</mo> </mover> <mrow> <mo>(</mo> <mi>j</mi> <mo>,</mo> <mi>k</mi> <mo>)</mo> </mrow> </mrow>
为k时刻CPU核数,为前一时刻CPU核数
为k时刻物理机内存,为前一时刻内存大小
为k时网络带宽,为前一适合带宽大小
其中mi表示物理机Pi上虚拟机的总数。
8.根据权利要求1所述的一种基于万有引力搜索的云计算任务调度方法,其特征在于,所述的步骤五中,用于限制系统负载的公式为:
LOADi=LOADi+r*(LOADMAX-LOADMIN)
其中,LOADi为第i次迭代时的系统负载,LOADMax为系统允许运行的最大负载,LOADMin为系统允许运行的最小负载,r为0-1之间的随机数。
CN201710719566.3A 2017-08-21 2017-08-21 一种基于万有引力搜索的云计算任务调度方法 Active CN107562537B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710719566.3A CN107562537B (zh) 2017-08-21 2017-08-21 一种基于万有引力搜索的云计算任务调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710719566.3A CN107562537B (zh) 2017-08-21 2017-08-21 一种基于万有引力搜索的云计算任务调度方法

Publications (2)

Publication Number Publication Date
CN107562537A true CN107562537A (zh) 2018-01-09
CN107562537B CN107562537B (zh) 2020-11-06

Family

ID=60976159

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710719566.3A Active CN107562537B (zh) 2017-08-21 2017-08-21 一种基于万有引力搜索的云计算任务调度方法

Country Status (1)

Country Link
CN (1) CN107562537B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108802814A (zh) * 2018-06-20 2018-11-13 成都理工大学 一种隧道围岩微震波速的获取方法
CN109358964A (zh) * 2018-09-21 2019-02-19 中建材信息技术股份有限公司 一种服务器集群资源调度方法
CN110147274A (zh) * 2019-05-21 2019-08-20 武汉轻工大学 多目标云任务均衡调度方法、服务器及存储介质
CN111045785A (zh) * 2019-11-25 2020-04-21 哈尔滨工业大学 一种基于二进制引力搜索的节能虚拟机放置方法
CN114995162A (zh) * 2022-08-01 2022-09-02 季华实验室 多机器人的任务分配方法、装置、电子设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6076174A (en) * 1998-02-19 2000-06-13 United States Of America Scheduling framework for a heterogeneous computer network
CN102708011A (zh) * 2012-05-11 2012-10-03 南京邮电大学 一种面向云计算平台任务调度的多级负载评估方法
CN102780759A (zh) * 2012-06-13 2012-11-14 合肥工业大学 基于调度目标空间的云计算资源调度方法
CN103095599A (zh) * 2013-01-18 2013-05-08 浪潮电子信息产业股份有限公司 一种云计算操作系统中动态反馈加权综合负载调度方法
CN106095529A (zh) * 2016-06-08 2016-11-09 西安电子科技大学 一种c‑ran架构下的载波迁移方法
US20170052813A1 (en) * 2014-05-19 2017-02-23 International Business Machines Corporation Agile vm load balancing through micro-checkpointing and multi-architecture emulation
CN106790726A (zh) * 2017-03-30 2017-05-31 电子科技大学 一种基于Docker云平台的优先级队列动态反馈负载均衡资源调度方法
WO2017091116A1 (en) * 2015-11-26 2017-06-01 Telefonaktiebolaget Lm Ericsson (Publ) Balancing processing loads of virtual machines
US20170206116A1 (en) * 2014-12-05 2017-07-20 Amazon Technologies, Inc. Automatic determination of resource sizing

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6076174A (en) * 1998-02-19 2000-06-13 United States Of America Scheduling framework for a heterogeneous computer network
CN102708011A (zh) * 2012-05-11 2012-10-03 南京邮电大学 一种面向云计算平台任务调度的多级负载评估方法
CN102780759A (zh) * 2012-06-13 2012-11-14 合肥工业大学 基于调度目标空间的云计算资源调度方法
CN103095599A (zh) * 2013-01-18 2013-05-08 浪潮电子信息产业股份有限公司 一种云计算操作系统中动态反馈加权综合负载调度方法
US20170052813A1 (en) * 2014-05-19 2017-02-23 International Business Machines Corporation Agile vm load balancing through micro-checkpointing and multi-architecture emulation
US20170206116A1 (en) * 2014-12-05 2017-07-20 Amazon Technologies, Inc. Automatic determination of resource sizing
WO2017091116A1 (en) * 2015-11-26 2017-06-01 Telefonaktiebolaget Lm Ericsson (Publ) Balancing processing loads of virtual machines
CN106095529A (zh) * 2016-06-08 2016-11-09 西安电子科技大学 一种c‑ran架构下的载波迁移方法
CN106790726A (zh) * 2017-03-30 2017-05-31 电子科技大学 一种基于Docker云平台的优先级队列动态反馈负载均衡资源调度方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
史少锋: "《基于动态规划的云任务调度机制研究》", 《万方智搜》 *
张绍林: "《云计算环境下QoS保障机制技术的研究与实现》", 《中国优秀硕士学位论文全文数据库(电子期刊)》 *
王光波 等: "《云环境下面向负载均衡的分布式虚拟机迁移研究》", 《计算机应用与软件》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108802814A (zh) * 2018-06-20 2018-11-13 成都理工大学 一种隧道围岩微震波速的获取方法
CN108802814B (zh) * 2018-06-20 2019-10-25 成都理工大学 一种隧道围岩微震波速的获取方法
CN109358964A (zh) * 2018-09-21 2019-02-19 中建材信息技术股份有限公司 一种服务器集群资源调度方法
CN109358964B (zh) * 2018-09-21 2022-02-11 中建材信息技术股份有限公司 一种服务器集群资源调度方法
CN110147274A (zh) * 2019-05-21 2019-08-20 武汉轻工大学 多目标云任务均衡调度方法、服务器及存储介质
CN111045785A (zh) * 2019-11-25 2020-04-21 哈尔滨工业大学 一种基于二进制引力搜索的节能虚拟机放置方法
CN111045785B (zh) * 2019-11-25 2023-04-07 哈尔滨工业大学 一种基于二进制引力搜索的节能虚拟机放置方法
CN114995162A (zh) * 2022-08-01 2022-09-02 季华实验室 多机器人的任务分配方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN107562537B (zh) 2020-11-06

Similar Documents

Publication Publication Date Title
CN107562537B (zh) 一种基于万有引力搜索的云计算任务调度方法
Kumar et al. Deadline constrained based dynamic load balancing algorithm with elasticity in cloud environment
Saleh et al. IPSO task scheduling algorithm for large scale data in cloud computing environment
CN107239336B (zh) 一种实现任务调度的方法及装置
CN106790726B (zh) 一种基于Docker云平台的优先级队列动态反馈负载均衡资源调度方法
US20190324819A1 (en) Distributed-system task assignment method and apparatus
Chien et al. Load balancing algorithm based on estimating finish time of services in cloud computing
CN110134495B (zh) 一种容器跨主机在线迁移方法、存储介质及终端设备
WO2018076791A1 (zh) 一种资源负载均衡控制方法及集群调度器
Aruna et al. An improved load balanced metaheuristic scheduling in cloud
CN107273211B (zh) 一种云计算环境下基于虚拟机的数据处理方法
CN110502323B (zh) 一种云计算任务实时调度方法
Pattanaik et al. Performance study of some dynamic load balancing algorithms in cloud computing environment
Shahapure et al. Load balancing with optimal cost scheduling algorithm
WO2013123650A1 (zh) 虚拟机分配方法和虚拟机分配装置
Phi et al. Load balancing algorithm to improve response time on cloud computing
Manikandan et al. Virtualized load balancer for hybrid cloud using genetic algorithm
Dörterler et al. Multi-objective virtual machine placement optimization for cloud computing
CN112559122A (zh) 一种基于电力专用安防设备的虚拟化实例管控方法及系统
KR20150092492A (ko) 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템 및 방법
Mylavarapu et al. An optimized capacity planning approach for virtual infrastructure exhibiting stochastic workload
CN110493317B (zh) 处理云平台资源碎片的方法及相关设备
CN109358964B (zh) 一种服务器集群资源调度方法
CN107168805A (zh) 一种基于虚拟机的资源调度方法
CN110727511B (zh) 应用程序的控制方法、网络侧设备和计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant