CN107329815A - 一种基于BP‑Tabu搜索的云任务负载均衡调度方法 - Google Patents
一种基于BP‑Tabu搜索的云任务负载均衡调度方法 Download PDFInfo
- Publication number
- CN107329815A CN107329815A CN201710491607.8A CN201710491607A CN107329815A CN 107329815 A CN107329815 A CN 107329815A CN 201710491607 A CN201710491607 A CN 201710491607A CN 107329815 A CN107329815 A CN 107329815A
- Authority
- CN
- China
- Prior art keywords
- task
- virtual machine
- scheduling
- cloud
- tabu
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- General Factory Administration (AREA)
Abstract
一种基于BP‑Tabu搜索的云任务负载均衡调度方法,包括以下步骤:第一步:形式化描述云计算环境下的负载均衡任务调度问题,并给出对于云计算环境下各元素相关定义;第二步:基于贪心算法思想求得任务调度初始解,使用对时间贪心的算法,对任务调度初始解进行求解;第三步:针对不同任务分配方案,根据虚拟机处理能力MIPS、指令的执行成本以及延迟成本,定义虚拟机利用效益函数;定义任务调度方案P下的优值函数Bp;第四步、结合贪心算法获得的任务调度初始解,通过衡量包含效益值以及负载均衡度的优值函数,得出基于Tabu搜索算法优化后的任务调度分配策略。本发明任务分配均衡,适用于云环境下任务调度的负载均衡方面。
Description
技术领域
本发明涉及到一种基于BP(Benefit Punishment)-Tabu搜索的云任务负载均衡调度方法。
背景技术
云计算的核心思想是利用分布在各地闲散异构的大规模廉价物理资源,整合形成巨大的虚拟资源池,再通过网络将用户提交的计算和存储任务调度到不同的虚拟机上,使得人们能够以极低的成本投入提升计算能力及存储容量,获得较高的服务质量。
在云环境下,一个个不能再分割的云任务从创建到被处理的过程,中间经过两层调度,由此可以得出云任务调度二级结构模型。第一层调度模型为从用户应用到虚拟机的调度,第二层调度模型为虚拟机到实体主机的调度。本发明主要研究第一层用户应用,即云任务,到虚拟机的调度中如何降低云任务总执行时间以及提高虚拟机的负载均衡度的。
云计算环境下任务调度的实质就是将n个相互独立的任务分配到m个闲散异构的物理资源上,使得总任务完成时间最小并且可用资源得到充分利用。任务调度作为云计算平台的重要组成部分,是将用户提交的任务进行合理高效地调度和分配,其效率直接影响到云计算平台的整体性能和服务质量。例如,顺序任务调度算法把一组任务顺序分配给一组虚拟机,尽量保证每个虚拟机运行相同数量的任务以平衡负载。但没有考虑任务的需求和虚拟机之间的差别任务调度问题已经被证明是一个NP完全问题,在mn个可能任务调度的解空间寻找近似最优解,使得总任务的执行时间和负载均衡度最小,其中执行时间最小是为了满足用户的服务质量,负载均衡度最小是为了保证云环境的稳定性。
目前,求解云任务调度近似最优解的算法主要分为传统启发式算法以及智能算法两类。其中,传统启发式算法主要包括:Braun T D,Siegel H J,Beck N在2001年提出的Max-Min算法、Zheng Q,Veeravalli B在2009年提出的Min-Min算法、Shi Shao-feng,LiuYan-bing在2012年提出的动态规划算法等;智能算法主要包括:Ye Fent,Wang Zhi-jian,Xu Xin-kun在2012年提出的蚁群算法、蒋尚婷,王谦在2013年提出的基于粒子群的任务调度算法、以及李剑锋、彭舰于2011年提出的遗传算法等。其中,传统启发式算法一般采用先易后难或先难后易的原则,每次将任务优先分配给执行它最早完成的计算资源,然而其无法最小化总任务的实际执行时间。智能算法能有效地降低总任务执行时间,但是对于海量的任务调度,可能陷入局部最优解,在负载均衡方面也有改善的空间。
禁忌(Tabu)搜索算法是一种启发式算法具有智能记忆功能,与模拟退火算法有一定的相似性,但求出的最优解往往优于传统算法,同时又具有较高的搜索效率。在求解云任务负载均衡调度方面有一定的优势。孙凌宇、冷明等人在2015年提出一种云环境下基于Tabu搜索的负载均衡调度算法,并申请了相关发明专利(专利号为201410527189.X),但是,其使用启发式优先分配策略获得初始解较慢且效果不优;用于决策任务交换的收益值函数标准单一,未综合多方面因素以保证交换后任务分配结果最优;自身的禁忌准则在任务量较大时,易陷入局部最优解的困境。杨文强、邓丽等人针对多目标自动化仓库调度问题提出基于Pareto解集的Tabu搜索算法,但是其未考虑Tabu搜索对于初始解要求较高问题,且其未借助优值函数,得到的调度方案在负载均衡方面有待改善。
发明内容
为了克服现有云资源任务调度方法陷入任务分配不均衡、单台虚拟机资源负载过大或者空闲较多的不足,本发明提出一种任务分配均衡的基于BP-Tabu搜索的云任务负载均衡调度方法,适用于云环境下任务调度的负载均衡方面,
本发明所采用的技术方案是:
一种基于BP-Tabu搜索的云任务负载均衡调度方法,包括以下步骤:
第一步:形式化描述云计算环境下的负载均衡任务调度问题,并给出对于云计算环境下各元素相关定义,包括:云任务T、虚拟机资源VM、执行时间矩阵CT、云任务到虚拟机的分配矩阵P、任务最早完成时间makespan、总任务最优完成时间VL、负载均衡度LBp;
第二步:基于贪心算法思想求得任务调度初始解,使用对时间贪心的算法,对任务调度初始解进行求解,过程为:先通过计算获得每个任务在相应虚拟机资源上的最小完成时间列表,然后在这些最小完成时间中,选取出其中的最大值与最小值进行组合,如果该任务组合对相对于其他任务组合对分配时间最优,就完成任务资源分配;如果不是最优,即将任务对分配给其他虚拟机资源;若任务对分配存在多种方案,挑选任务运行数最少的虚拟机资源分配;
第三步:针对不同任务分配方案,根据虚拟机处理能力MIPS、指令的执行成本以及延迟成本,定义虚拟机利用效益函数,用于衡量虚拟机的使用效益。根据虚拟机总利用效益,以及虚拟机的总负载平衡度,定义任务调度方案P下的优值(benefit)函数Bp,用于衡量该任务调度方案的任务优值;过程如下:
3.1、在任务分配方案P下,定义虚拟机vmj当前状态下VMUj为虚拟机vmj的利用效益,函数如下:
VMUj=vmu(α,DP,MIPS)
其中α为虚拟机处理指令的执行成本,DP为处理指令的延迟成本;
3.2、定义n个不同任务调度到m个不同虚拟机上的平均负载,即总任务最优完成时间为即假设,在任务调度方案P下,虚拟机总的负载均衡度定义该任务调度方案P下的优值函数Bp,用于衡量任务调度方案P的任务优值,主要函数如下:
其中w1,w2为权重值。VMU为虚拟机利用效益和,LBp为该任务调度方案下的负载均衡度;
第四步、结合贪心算法获得的任务调度初始解,通过衡量包含效益值以及负载均衡度的优值函数,得出基于Tabu搜索算法优化后的任务调度分配策略。由于Tabu搜索的禁忌数组不能保证当搜索进入局部最优时一定可以跳出。本发明在此基础上提出了用于跳出局部最优的惩罚策略。
进一步,所述第四步中,使用禁忌算法获取任务调度最优解的过程包括以下步骤如下:
4.1、假设在某个云任务环境下,其中不可再分的云任务的总数为n,初始化禁忌数组tabuList[1,2,…,n],其中数组的初始值均为1,用于标识该任务可以被交换;
4.2、根据1.5可知,虚拟机的负载VLj为分配给第j个虚拟机vmj所有任务的预期完成时间,即通过计算,获取任务负载VL最大以及最小的虚拟机VMmax,VMmin;
4.3、若分配至VMmax的任务在tabuList中的值均为0,即均被置为禁止交换状态,则跳转到步骤4.8,否则跳转到4.4步;
4.4、选择虚拟机VMmax上可被用于交换的任务tk,并设置其禁忌值tabuList[k]=0;
4.5、若分配至虚拟机VMmin的任务均被禁止交换,则跳转到4.8;
4.6、分别选择虚拟机VMmin上可交换任务tl,根据3.2,计算各任务交换状态下的调度方案的优值函数值Bp,选择使优值函数值最高的任务对(k,l)进行交换;
4.7、若交换后的优值函数Bp的值大于原优值函数的值,则完成任务交换,更新禁忌表tabuList[l]=0,并且同时更新负载最大以及最小的虚拟机VMmax,VMmin的负载VL。跳转到步骤4.2;
4.8、结束算法,获得任务调度的最优分配方案。
再进一步,由于上述Tabu搜索的禁忌数组不能保证当搜索进入局部最优时一定可以跳出。跳出局部最优的惩罚(punishment)策略的设计主要如下:
对修改禁忌表tabuList中禁忌对象的次数进行记录,其记录次数用pt表示,初始值为0。当禁忌对象进入禁忌表时,pt将被加1,当连续k次tabuList集没有更新时,即pt=k时,将会启动惩罚策略。定义虚拟机随机分量函数P*(k):
P*(k)=P(k)+w*pt
其中P(k)为当前最小虚拟机的索引量,w为随机惩罚常量,k为记录次数阈值。虚拟机分量函数的增加会对最小任务负载VL虚拟机VMmin的选择产生影响,最小虚拟机的索引量P(k)会偏移,根据最新的P(k)选择相应(相邻)的虚拟机代替VMmin,从而引导搜索跳出局部最优。
更进一步,优化如下:所述步骤4.1中,增加虚拟机随机分量函数,初始化记录次数pt=0,即随机分量函数阈值k;所述步骤4.2中,增加对于阈值k判断,若pt>=k,则使用随机分量函数P*(k)对VMmin的选择使用惩罚策略,若pt<=k,则跳过进入下一步;所述步骤4.7中,增加对于记录次数pt的操作,若交换后的优值函数Bp的值小于原优值函数的值,则记录次数pt加1,否则,pt不变,进入下一步。
所述第一步中,云计算环境下各元素相关定义如下:
1.1、假设云环境下,任务作业已经分解为n个无法再分割的子任务的集合,定义任务集合T={t1,…,ti,…,tn},其中ti为分解成的任务集合中的第i个任务(i=1,2,…,n),n为任务数量,且定义MIi为任务ti的总指令长度;
1.2、假设有m个虚拟资源参与任务的处理,且虚拟资源以虚拟机的方式提供。定义虚拟机集合VM={vm1,…,vmj,…,vmm},其中vmj为第j个虚拟机资源,j=1,2,…,m,m为虚拟机数量,且定义MIPSj为虚拟机vmj的指令执行速度,单位:每秒执行指令条数;
1.3、定义n个不同任务T调度到m个不同虚拟机VM上所有可能的任务调度方案集η,定义P代表任务分配方案集η中的一种任务调度方案,即一个n×m的矩阵,其中pij表示任务ti与虚拟机vmj的分配关系,且p∈{0,1},即如果任务ti分配在虚拟机vmj上执行,则pij=1,否则pij=0;
1.4、云环境下,假定每个任务只能分配到单台虚拟机上执行,且在某个时间段,一个虚拟机只能执行一个任务,定义n个不同的任务调度到m个不同台虚拟机上的预期完成时间矩阵CT,其中CT[i][j]用于表示任务ti在虚拟机资源vmj上的任务完成时间,即CT[i][j]=MIi/MIPSj,下文用ctij表示;
1.5、对于某任务分配方案P,假设虚拟机vmj上已经分配了前k-1个任务,定义虚拟机vmj的当前负载vlj为分配给虚拟机vmj的所有任务所需执行时间,即定义makespankj为任务tk在虚拟机vmj上的时间跨度,即任务tk在vmj上执行的最早完成时间,makespankj=vlj+ctkj,定义虚拟机的负载VLj为分配给第j个虚拟机vmj所有任务的预期完成时间,即
所述第二步中,使用对时间贪心的算法对任务调度初始解进行求解,包括以下步骤:
2.1、初始化任务集合T以及虚拟机集合VM,由1.1,1.2已知MIi表示任务ti的指令长度,MIPSj表示虚拟机vmj的每秒处理指令数,由1.4已知n个不同的任务调度到m个不同台虚拟机上的预期完成时间矩阵CT;
2.2、将任务集合根据MI的大小进行降序排列,虚拟机集合根据MIPS进行升序排列;然后,初始化CT矩阵、行号h=0,由1.5已经定义makespanij为当前任务ti分配给虚拟机vmj的时间跨度,即任务ti在vmj上执行的最早完成时间;
2.3、判断所有任务是否已经被分配完成,若完成分配,则结束算法跳转到2.7获得任务调度初始解,否则进入2.4;
2.4、从CT矩阵行号为h开始,每次都尝试将任务分配给最后一列对应的虚拟机资源;
2.5、如果当前虚拟机未分配任务,则比较当前任务调度给该虚拟机是否最优,若已经分配任务,则比较makespanij是否为最优值,若是,那么完成任务分配,跳到2.6;否则它将分配给使makespanij结果最优的虚拟机资源vmj,并且跳转2.6;
2.6、更新行号h=h+1,跳转到2.3;
2.7、若任务对调度存在多种方案,挑选任务运行数最少的虚拟机资源分配,实现初始解的负载均衡。
本发明的技术构思为:云计算环境下,任务的调度方法层出不穷,大多方法只考虑到任务完成时间,而未考虑到云资源利用率的最大化。本发明提出了一种基于BP-Tabu搜索的云任务负载均衡调度方法,其内容包括:通过时间贪心算法求出Tabu搜索算法的初始解,然后利用基于多因素优值函数的启发式Tabu搜索算法思想,结合虚拟机随机分量函数实现的跳出局部最优的惩戒策略,实现云环境下的任务调度总完成时间最短且负载均衡度最低。
本发明的相比其他云任务调度方法具有如下几个优点:
(1)使用对时间贪心的算法可以快速求解出任务调度的初始解,并且此算法具有一定的负载均衡效益。
(2)在时间贪心算法获得的任务调度初始解基础上,使用基于启发式Tabu搜索算法思想,根据包含负载平衡度的优值函数,获得优值函数最优的任务调度方案。使得到的任务调度方案任务总完成时间最低,任务总负载均衡度最高。
(3)使用基于随机分量函数的惩罚策略,引导Tabu搜索算法跳出局部最优解。使最终获得的任务调度方案尽可能趋于全局最优。
附图说明
图1示出了云环境下任务调度模型图。
图2示出了时间贪心的算法流程图。
图3示出了基于Tabu搜索的云任务负载均衡调度算法流程图。
图4示出了基于Tabu搜索的惩罚策略设计图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图4,一种基于BP-Tabu搜索的云任务负载均衡调度方法,图1为云环境下任务调度模型图。在云环境下,一个个不能再分割的云任务从创建到被处理的过程,中间经过两层调度,由此可以得出云任务调度二级结构模型。第一层调度模型为从用户应用(client)产生的多个任务t到虚拟机(vm)的调度,第二层调度模型为虚拟机(vm)到实体主机(host)的调度。本发明主要研究第一层用户应用,即云任务t到虚拟机vm的调度中如何降低云任务总执行时间以及提高虚拟机的负载均衡度的。
所述云任务负载均衡调度方法包括以下步骤:
第一步,对于云计算环境下的负载均衡任务调度问题进行形式化描述,并给出对于云计算环境下各元素相关定义,包括:云任务T、虚拟机资源VM、执行时间矩阵CT、云任务到虚拟机的分配矩阵P、任务最早完成时间makespan、总任务最优完成时间VL和负载均衡度LBp,
1.1、假设云环境下,任务作业已经分解为n个无法再分割的子任务的集合。定义任务集合T={t1,…,ti,…,tn},其中ti为分解成的任务集合中的第i个任务(i=1,2,…,n),n为任务数量,且定义MIi为任务ti的总指令长度。
1.2、假设有m个虚拟资源参与任务的处理,且虚拟资源以虚拟机的方式提供。定义虚拟机集合VM={vm1,…,vmj,…,vmm},其中vmj为第j个虚拟机资源(j=1,2,…,m),m为虚拟机数量,且定义MIPSj为虚拟机vmj的指令执行速度(单位:每秒执行指令条数)。
1.3、定义n个不同任务T调度到m个不同虚拟机VM上所有可能的任务调度方案集η。定义P代表任务分配方案集η中的一种任务调度方案,即一个n×m的矩阵。其中pij表示任务ti与虚拟机vmj的分配关系,且p∈{0,1},即如果任务ti分配在虚拟机vmj上执行,则pij=1,否则pij=0。
1.4、云环境下,假定每个任务只能分配到单台虚拟机上执行,且在某个时间段,一个虚拟机只能执行一个任务。定义n个不同的任务调度到m个不同台虚拟机上的预期完成时间矩阵CT,其中CT[i][j]用于表示任务ti在虚拟机资源vmj上的任务完成时间,即CT[i][j]=MIi/MIPSj,下文用ctij表示。
1.5、对于某任务分配方案P,假设虚拟机vmj上已经分配了前k-1个任务,定义虚拟机vmj的当前负载vlj为分配给虚拟机vmj的所有任务所需执行时间,即定义makespankj为任务tk在虚拟机vmj上的时间跨度,即任务tk在vmj上执行的最早完成时间,makespankj=vlj+ctkj。定义虚拟机的负载VLj为分配给第j个虚拟机vmj所有任务的预期完成时间,即
第二步,图2为基于贪心算法思想求得任务调度初始解的流程图。主要运用的思想是,先通过计算获得每个任务在相应虚拟机资源上的最小完成时间列表,然后在这些最小完成时间中,选取出其中的最大值与最小值进行组合,如果该任务组合对相对于其他任务组合对分配时间最优,就完成任务资源分配;如果不是最优,即将任务对分配给其他虚拟机资源。若任务对分配存在多种方案,挑选任务运行数最少的虚拟机资源分配。
使用对时间贪心的算法对任务调度初始解进行求解,包括以下步骤:
2.1、初始化任务集合T以及虚拟机集合VM,由1.1,1.2已知MIi表示任务ti的指令长度,MIPSj表示虚拟机vmj的每秒处理指令数。由1.4已知n个不同的任务调度到m个不同台虚拟机上的预期完成时间矩阵CT。
2.2、将任务集合根据MI的大小进行降序排列,虚拟机集合根据MIPS进行升序排列。然后,初始化CT矩阵、行号h=0。由1.5已经定义makespanij为当前任务ti分配给虚拟机vmj的时间跨度,即任务ti在vmj上执行的最早完成时间。
2.3、判断所有任务是否已经被分配完成,若完成分配,则结束算法跳转到2.7获得任务调度初始解。否则进入2.4。
2.4、从CT矩阵行号为h开始,每次都尝试将任务分配给最后一列对应的虚拟机资源。
2.5、如果当前虚拟机未分配任务,则比较当前任务调度给该虚拟机是否最优,若已经分配任务,则比较makespanij是否为最优值,若是,那么完成任务分配,跳到2.6;否则它将分配给使makespanij结果最优的虚拟机资源vmj,并且跳转2.6。
2.6、更新行号h=h+1,跳转到2.3。
2.7、若任务对调度存在多种方案,挑选任务运行数最少的虚拟机资源分配,实现初始解的负载均衡。
第三步,通过时间贪心算法获得任务调度初始解后,针对不同任务分配方案,根据虚拟机处理能力MIPS、指令的执行成本以及延迟成本,定义虚拟机利用效益函数,用于衡量虚拟机的使用效益。根据虚拟机总利用效益,以及虚拟机的总负载平衡度,定义任务调度方案P下的优值函数Bp,用于衡量该任务调度方案的任务优值。过程如下:
3.1、在任务分配方案P下,定义虚拟机vmj当前状态下VMUj为虚拟机vmj的利用效益。函数如下:
VMUj=vmu(α,DP,MIPS)
其中α为虚拟机处理指令的执行成本,DP为处理指令的延迟成本。
3.2、定义n个不同任务调度到m个不同虚拟机上的平均负载,即总任务最优完成时间为即假设,在任务调度方案P下,虚拟机总的负载均衡度定义该任务调度方案P下的优值函数Bp,用于衡量任务调度方案P的任务优值,主要函数如下:
其中w1,w2为权重值。VMU为虚拟机利用效益和,LBp为该任务调度方案下的负载均衡度。
第四步,图3为基于Tabu搜索的云任务负载均衡调度算法流程图。本过程结合贪心算法获得的任务调度初始解,通过衡量包含效益值以及负载均衡度的优值函数,得出基于Tabu搜索算法优化后的任务调度分配策略。由于Tabu搜索的禁忌数组不能保证当搜索进入局部最优时一定可以跳出。本发明在此基础上提出了用于跳出局部最优的惩罚策略。
使用禁忌算法获取任务调度最优解的过程包括以下步骤:
4.1、假设在某个云任务环境下,其中不可再分的云任务的总数为n,初始化禁忌数组tabuList[1,2,…,n],其中数组的初始值均为1,用于标识该任务可以被交换。
4.2、根据1.5可知,虚拟机的负载VLj为分配给第j个虚拟机vmj所有任务的预期完成时间,即通过计算所有虚拟机的负载,获取任务负载VL最大以及最小的虚拟机VMmax,VMmin。
4.3、判断分配至VMmax的任务是否均被禁止交换,若分配至VMmax的任务在tabuList中的值均为0,即均被置为禁止交换状态,则跳转到4.8,否则跳转4.4。
4.4、选择虚拟机VMmax上可被用于交换的任务tk,并设置其禁忌值tabuList[k]=0。进入下一步。
4.5、判断分配至VMmin的任务是否均被禁止交换,若分配至虚拟机VMmin的任务均被禁止交换,则跳转到4.8,否则进入下一步。
4.6、分别选择虚拟机VMmin上可交换任务,计算各任务交换状态下的调度方案的优值函数值,选择使优值函数值最高的任务对(k,l)进行交换。
4.7、计算交换后的优值函数值,若交换后的优值函数的值大于原优值函数的值,则完成任务交换,更新禁忌表tabuList[l]=0,并且同时更新负载最大以及最小的虚拟机VMmax,VMmin的负载VL。跳转到4.2。
4.8、结束算法,获得任务调度的最优分配方案。
图4为基于Tabu搜索的跳出局部最优的惩罚策略设计图。设计主要过程如下:对修改禁忌表tabuList中禁忌对象的次数进行记录。其记录次数用pt表示,初始值为0。当禁忌对象进入禁忌表时,pt将被加1。当连续k次tabuList集没有更新时,即pt=k时,将会启动惩罚策略。定义虚拟机随机分量函数P*(k):
P*(k)=P(k)-w*pt
其中P(k)为当前最小虚拟机的索引量,w为随机惩罚常量,k为记录次数阈值。虚拟机分量函数的计算会对最小任务负载VL虚拟机VMmin的选择产生影响,最小虚拟机的索引量P(k)会偏移,根据最新的P(k)选择相应(相邻)的虚拟机代替VMmin,从而引导搜索跳出局部最优。
优化方式为:所述步骤4.1中,增加虚拟机随机分量函数,初始化记录次数pt=0,即随机分量函数阈值k;所述步骤4.2中,增加对于阈值k判断,若pt>=k,则使用随机分量函数P*(k)对VMmin的选择使用惩罚策略,若pt<=k,则跳过进入下一步;所述步骤4.7中,增加对于记录次数pt的操作,若交换后的优值函数Bp的值小于原优值函数的值,则记录次数pt加1,否则,pt不变,进入下一步。
Claims (6)
1.一种基于BP-Tabu搜索的云任务负载均衡调度方法,其特征在于:包括以下步骤:
第一步:形式化描述云计算环境下的负载均衡任务调度问题,并给出对于云计算环境下各元素相关定义,包括:云任务T、虚拟机资源VM、执行时间矩阵CT、云任务到虚拟机的分配矩阵P、任务最早完成时间makespan、总任务最优完成时间VL和负载均衡度LBp;
第二步:基于贪心算法思想求得任务调度初始解,使用对时间贪心的算法,对任务调度初始解进行求解,过程为:先通过计算获得每个任务在相应虚拟机资源上的最小完成时间列表,然后在这些最小完成时间中,选取出其中的最大值与最小值进行组合,如果该任务组合对相对于其他任务组合对分配时间最优,就完成任务资源分配;如果不是最优,即将任务对分配给其他虚拟机资源;若任务对分配存在多种方案,挑选任务运行数最少的虚拟机资源分配;
第三步:针对不同任务分配方案,根据虚拟机处理能力MIPS、指令的执行成本以及延迟成本,定义虚拟机利用效益函数,用于衡量虚拟机的使用效益;根据虚拟机总利用效益,以及虚拟机的总负载平衡度,定义任务调度方案P下的优值(benefit)函数Bp,用于衡量该任务调度方案的任务优值,过程如下:
3.1、在任务分配方案P下,定义虚拟机vmj当前状态下VMUj为虚拟机vmj的利用效益,函数如下:
VMUj=vmu(α,DP,MIPS)
其中α为虚拟机处理指令的执行成本,DP为处理指令的延迟成本;
3.2、定义n个不同任务调度到m个不同虚拟机上的平均负载,即总任务最优完成时间为即假设,在任务调度方案P下,虚拟机总的负载均衡度定义该任务调度方案P下的优值函数Bp,用于衡量任务调度方案P的任务优值,主要函数如下:
<mrow>
<msub>
<mi>B</mi>
<mi>P</mi>
</msub>
<mo>=</mo>
<msub>
<mi>w</mi>
<mn>1</mn>
</msub>
<mo>*</mo>
<mrow>
<mo>(</mo>
<msubsup>
<mi>&Sigma;</mi>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>m</mi>
</msubsup>
<msub>
<mi>VMU</mi>
<mi>i</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>+</mo>
<msub>
<mi>w</mi>
<mn>2</mn>
</msub>
<mo>*</mo>
<msub>
<mi>LB</mi>
<mi>p</mi>
</msub>
</mrow>
其中w1,w2为权重值。VMU为虚拟机利用效益和,LBp为该任务调度方案下的负载均衡度;
第四步、结合贪心算法获得的任务调度初始解,通过衡量包含效益值以及负载均衡度的优值函数,得出基于Tabu搜索算法优化后的任务调度分配策略。
2.如权利要求1所述的一种基于BP-Tabu搜索的云任务负载均衡调度方法,其特征在于:所述第四步中,使用禁忌算法获取任务调度最优解的过程包括以下步骤:
4.1、假设在某个云任务环境下,其中不可再分的云任务的总数为n,初始化禁忌数组tabuList[1,2,…,n],其中数组的初始值均为1,用于标识该任务可以被交换;
4.2、虚拟机的负载VLj为分配给第j个虚拟机vmj所有任务的预期完成时间,即通过计算,获取任务负载VL最大以及最小的虚拟机VMmax,VMmin;
4.3、若分配至VMmax的任务在tabuList中的值均为0,即均被置为禁止交换状态,则跳转到步骤4.8,否则跳转到4.4步;
4.4、选择虚拟机VMmax上可被用于交换的任务tk,并设置其禁忌值tabuList[k]=0;
4.5、若分配至虚拟机VMmin的任务均被禁止交换,则跳转到4.8;
4.6、分别选择虚拟机VMmin上可交换任务tl,根据3.2,计算各任务交换状态下的调度方案的优值函数值Bp,选择使优值函数值最高的任务对(k,l)进行交换;
4.7、若交换后的优值函数Bp的值大于原优值函数的值,则完成任务交换,更新禁忌表tabuList[l]=0,并且同时更新负载最大以及最小的虚拟机VMmax,VMmin的负载VL,跳转到步骤4.2;
4.8、结束算法,获得任务调度的最优分配方案。
3.如权利要求2所述的一种基于BP-Tabu搜索的云任务负载均衡调度方法,其特征在于:所述第四步中,对修改禁忌表tabuList中禁忌对象的次数进行记录。其记录次数用pt表示,初始值为0,当禁忌对象进入禁忌表时,pt将被加1;当连续k次tabuList集没有更新时,即pt=k时,将会启动惩罚策略,定义虚拟机随机分量函数P*(k):
P*(k)=P(k)+w*pt
其中P(k)为当前最小虚拟机的索引量,w为随机惩罚常量,k为记录次数阈值,虚拟机分量函数的增加会对最小任务负载VL虚拟机VMmin的选择产生影响,最小虚拟机的索引量P(k)会偏移,根据最新的P(k)选择相邻的虚拟机代替VMmin,从而引导搜索跳出局部最优。
4.如权利要求3所述的一种基于BP-Tabu搜索的云任务负载均衡调度方法,其特征在于:所述步骤4.1中,增加虚拟机随机分量函数,初始化记录次数pt=0,即随机分量函数阈值k;所述步骤4.2中,增加对于阈值k判断,若pt>=k,则使用随机分量函数P*(k)对VMmin的选择使用惩罚策略,若pt<=k,则跳过进入下一步;所述步骤4.7中,增加对于记录次数pt的操作,若交换后的优值函数Bp的值小于原优值函数的值,则记录次数pt加1,否则,pt不变,进入下一步。
5.如权利要求1~4之一所述的一种基于BP-Tabu搜索的云任务负载均衡调度方法,其特征在于:所述第一步中,云计算环境下各元素相关定义如下:
1.1、假设云环境下,任务作业已经分解为n个无法再分割的子任务的集合,定义任务集合T={t1,…,ti,…,tn},其中ti为分解成的任务集合中的第i个任务(i=1,2,…,n),n为任务数量,且定义MIi为任务ti的总指令长度;
1.2、假设有m个虚拟资源参与任务的处理,且虚拟资源以虚拟机的方式提供。定义虚拟机集合VM={vm1,…,vmj,…,vmm},其中vmj为第j个虚拟机资源,j=1,2,…,m,m为虚拟机数量,且定义MIPSj为虚拟机vmj的指令执行速度,单位:每秒执行指令条数;
1.3、定义n个不同任务T调度到m个不同虚拟机VM上所有可能的任务调度方案集η,定义P代表任务分配方案集η中的一种任务调度方案,即一个n×m的矩阵,其中pij表示任务ti与虚拟机vmj的分配关系,且p∈{0,1},i∈{1,2,…,n},j∈{1,2,…,m},即如果任务ti分配在虚拟机vmj上执行,则pij=1,否则pij=0;
1.4、云环境下,假定每个任务只能分配到单台虚拟机上执行,且在某个时间段,一个虚拟机只能执行一个任务,定义n个不同的任务调度到m个不同台虚拟机上的预期完成时间矩阵CT,其中CT[i][j]用于表示任务ti在虚拟机资源vmj上的任务完成时间,即CT[i][j]=MIi/MIPSj,下文用ctij表示;
1.5、对于某任务分配方案P,假设虚拟机vmj上已经分配了前k-1个任务,定义虚拟机vmj的当前负载vlj为分配给虚拟机vmj的所有任务所需执行时间,即定义makespankj为任务tk在虚拟机vmj上的时间跨度,即任务tk在vmj上执行的最早完成时间,makespankj=vlj+ctkj,定义虚拟机的负载VLj为分配给第j个虚拟机vmj所有任务的预期完成时间,即
6.如权利要求5所述的一种基于BP-Tabu搜索的云任务负载均衡调度方法,其特征在于:所述第二步中,使用对时间贪心的算法对任务调度初始解进行求解,包括以下步骤:
2.1、初始化任务集合T以及虚拟机集合VM,由1.1,1.2已知MIi表示任务ti的指令长度,MIPSj表示虚拟机vmj的每秒处理指令数,由1.4已知n个不同的任务调度到m个不同台虚拟机上的预期完成时间矩阵CT;
2.2、将任务集合根据MI的大小进行降序排列,虚拟机集合根据MIPS进行升序排列;然后,初始化CT矩阵、行号h=0,由1.5已经定义makespanij为当前任务ti分配给虚拟机vmj的时间跨度,即任务ti在vmj上执行的最早完成时间;
2.3、判断所有任务是否已经被分配完成,若完成分配,则结束算法跳转到2.7获得任务调度初始解,否则进入2.4;
2.4、从CT矩阵行号为h开始,每次都尝试将任务分配给最后一列对应的虚拟机资源;
2.5、如果当前虚拟机未分配任务,则比较当前任务调度给该虚拟机是否最优,若已经分配任务,则比较makespanij是否为最优值,若是,那么完成任务分配,跳到2.6;否则它将分配给使makespanij结果最优的虚拟机资源vmj,并且跳转2.6;
2.6、更新行号h=h+1,跳转到2.3;
2.7、若任务对调度存在多种方案,挑选任务运行数最少的虚拟机资源分配,实现初始解的负载均衡。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710491607.8A CN107329815B (zh) | 2017-06-26 | 2017-06-26 | 一种基于BP-Tabu搜索的云任务负载均衡调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710491607.8A CN107329815B (zh) | 2017-06-26 | 2017-06-26 | 一种基于BP-Tabu搜索的云任务负载均衡调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107329815A true CN107329815A (zh) | 2017-11-07 |
CN107329815B CN107329815B (zh) | 2020-08-04 |
Family
ID=60194396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710491607.8A Active CN107329815B (zh) | 2017-06-26 | 2017-06-26 | 一种基于BP-Tabu搜索的云任务负载均衡调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107329815B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109447264A (zh) * | 2018-09-17 | 2019-03-08 | 浙江工业大学 | 云计算环境下基于vham-r模型的虚拟机放置遗传优化方法 |
CN109547541A (zh) * | 2018-11-12 | 2019-03-29 | 安徽师范大学 | 雾计算环境下基于过滤及分配机制的节点低开销协作方法 |
CN109558228A (zh) * | 2018-11-13 | 2019-04-02 | 北京机电工程总体设计部 | 一种基于动态设计能力系数的设计资源调度方法 |
CN109635328A (zh) * | 2017-11-08 | 2019-04-16 | 成都华微电子科技有限公司 | 集成电路布局方法以及分布式设计方法 |
CN109857542A (zh) * | 2018-12-14 | 2019-06-07 | 贵州华芯通半导体技术有限公司 | 算力资源调节方法、系统及装置 |
CN110688204A (zh) * | 2019-08-08 | 2020-01-14 | 平安科技(深圳)有限公司 | 分布式计算系统任务分配方法及相关设备 |
CN110888728A (zh) * | 2019-12-03 | 2020-03-17 | 中电工业互联网有限公司 | 一种Kettle集群服务器的任务调度方法 |
CN111105133A (zh) * | 2019-11-08 | 2020-05-05 | 成都博智云创科技有限公司 | 生产调度方法、计算机设备以及存储介质 |
CN111488209A (zh) * | 2020-03-22 | 2020-08-04 | 浙江工业大学 | 一种启发式Storm节点任务调度优化方法 |
CN112506669A (zh) * | 2021-01-29 | 2021-03-16 | 浙江大华技术股份有限公司 | 任务分配方法和装置、存储介质及电子设备 |
CN112954012A (zh) * | 2021-01-27 | 2021-06-11 | 北京计算机技术及应用研究所 | 基于负载的改进模拟退火算法的云任务调度方法 |
CN113407336A (zh) * | 2021-05-15 | 2021-09-17 | 内蒙古工业大学 | 基于禁忌搜索优化算法的全比较数据分发方法 |
CN114780247A (zh) * | 2022-05-17 | 2022-07-22 | 中国地质大学(北京) | 一种流速和资源感知的流应用调度方法及系统 |
CN116880412A (zh) * | 2023-08-10 | 2023-10-13 | 上海兴岩信息科技有限公司 | 一种基于云的可视化生产管理平台 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120084223A1 (en) * | 2010-09-30 | 2012-04-05 | L'air Liquide Societe Anonyme Pour L'etude Et L'exploitation Des Procedes Georges Claude | System To Organize Commodity-Product Distribution |
CN104219154A (zh) * | 2014-09-22 | 2014-12-17 | 西南交通大学 | 一种基于蚁群优化算法的网络编码环境下资源优化方法 |
CN104331321A (zh) * | 2014-10-09 | 2015-02-04 | 冷明 | 基于禁忌搜索和负载均衡的云计算任务调度方法 |
CN105005503A (zh) * | 2015-07-26 | 2015-10-28 | 孙凌宇 | 基于元胞自动机的云计算负载均衡任务调度方法 |
CN105159762A (zh) * | 2015-08-03 | 2015-12-16 | 冷明 | 基于贪心策略的启发式云计算任务调度方法 |
-
2017
- 2017-06-26 CN CN201710491607.8A patent/CN107329815B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120084223A1 (en) * | 2010-09-30 | 2012-04-05 | L'air Liquide Societe Anonyme Pour L'etude Et L'exploitation Des Procedes Georges Claude | System To Organize Commodity-Product Distribution |
CN104219154A (zh) * | 2014-09-22 | 2014-12-17 | 西南交通大学 | 一种基于蚁群优化算法的网络编码环境下资源优化方法 |
CN104331321A (zh) * | 2014-10-09 | 2015-02-04 | 冷明 | 基于禁忌搜索和负载均衡的云计算任务调度方法 |
CN105005503A (zh) * | 2015-07-26 | 2015-10-28 | 孙凌宇 | 基于元胞自动机的云计算负载均衡任务调度方法 |
CN105159762A (zh) * | 2015-08-03 | 2015-12-16 | 冷明 | 基于贪心策略的启发式云计算任务调度方法 |
Non-Patent Citations (1)
Title |
---|
WEIZHE ZHANG,MINGZENG HU,HONGLI ZHANG: "Load Balance Heuristics for Synchronous Iterative Applications on Heterogeneous Cluster Systems", 《IEEE》 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109635328A (zh) * | 2017-11-08 | 2019-04-16 | 成都华微电子科技有限公司 | 集成电路布局方法以及分布式设计方法 |
CN109447264A (zh) * | 2018-09-17 | 2019-03-08 | 浙江工业大学 | 云计算环境下基于vham-r模型的虚拟机放置遗传优化方法 |
CN109447264B (zh) * | 2018-09-17 | 2021-11-23 | 浙江工业大学 | 云计算环境下基于vham-r模型的虚拟机放置遗传优化方法 |
CN109547541A (zh) * | 2018-11-12 | 2019-03-29 | 安徽师范大学 | 雾计算环境下基于过滤及分配机制的节点低开销协作方法 |
CN109558228A (zh) * | 2018-11-13 | 2019-04-02 | 北京机电工程总体设计部 | 一种基于动态设计能力系数的设计资源调度方法 |
CN109857542A (zh) * | 2018-12-14 | 2019-06-07 | 贵州华芯通半导体技术有限公司 | 算力资源调节方法、系统及装置 |
CN109857542B (zh) * | 2018-12-14 | 2021-01-29 | 贵州华芯通半导体技术有限公司 | 算力资源调节方法、系统及装置 |
CN110688204A (zh) * | 2019-08-08 | 2020-01-14 | 平安科技(深圳)有限公司 | 分布式计算系统任务分配方法及相关设备 |
CN110688204B (zh) * | 2019-08-08 | 2022-08-26 | 平安科技(深圳)有限公司 | 分布式计算系统任务分配方法及相关设备 |
CN111105133B (zh) * | 2019-11-08 | 2023-04-07 | 成都博智云创科技有限公司 | 生产调度方法、计算机设备以及存储介质 |
CN111105133A (zh) * | 2019-11-08 | 2020-05-05 | 成都博智云创科技有限公司 | 生产调度方法、计算机设备以及存储介质 |
CN110888728A (zh) * | 2019-12-03 | 2020-03-17 | 中电工业互联网有限公司 | 一种Kettle集群服务器的任务调度方法 |
CN111488209A (zh) * | 2020-03-22 | 2020-08-04 | 浙江工业大学 | 一种启发式Storm节点任务调度优化方法 |
CN111488209B (zh) * | 2020-03-22 | 2023-12-15 | 深圳市空管实业发展有限公司 | 一种启发式Storm节点任务调度优化方法 |
CN112954012A (zh) * | 2021-01-27 | 2021-06-11 | 北京计算机技术及应用研究所 | 基于负载的改进模拟退火算法的云任务调度方法 |
CN112954012B (zh) * | 2021-01-27 | 2022-09-09 | 北京计算机技术及应用研究所 | 基于负载的改进模拟退火算法的云任务调度方法 |
CN112506669A (zh) * | 2021-01-29 | 2021-03-16 | 浙江大华技术股份有限公司 | 任务分配方法和装置、存储介质及电子设备 |
CN112506669B (zh) * | 2021-01-29 | 2021-06-18 | 浙江大华技术股份有限公司 | 任务分配方法和装置、存储介质及电子设备 |
CN113407336A (zh) * | 2021-05-15 | 2021-09-17 | 内蒙古工业大学 | 基于禁忌搜索优化算法的全比较数据分发方法 |
CN114780247A (zh) * | 2022-05-17 | 2022-07-22 | 中国地质大学(北京) | 一种流速和资源感知的流应用调度方法及系统 |
CN114780247B (zh) * | 2022-05-17 | 2022-12-13 | 中国地质大学(北京) | 一种流速和资源感知的流应用调度方法及系统 |
CN116880412A (zh) * | 2023-08-10 | 2023-10-13 | 上海兴岩信息科技有限公司 | 一种基于云的可视化生产管理平台 |
CN116880412B (zh) * | 2023-08-10 | 2024-05-17 | 上海兴岩信息科技有限公司 | 一种基于云的可视化生产管理平台 |
Also Published As
Publication number | Publication date |
---|---|
CN107329815B (zh) | 2020-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107329815A (zh) | 一种基于BP‑Tabu搜索的云任务负载均衡调度方法 | |
CN105159762B (zh) | 基于贪心策略的启发式云计算任务调度方法 | |
CN104331321B (zh) | 基于禁忌搜索和负载均衡的云计算任务调度方法 | |
CN105656973B (zh) | 一种分布式节点组内任务调度方法及系统 | |
CN107967171B (zh) | 一种云环境下基于遗传算法的多工作流调度方法 | |
CN103970609B (zh) | 一种基于改进蚁群算法的云数据中心任务调度方法 | |
CN105389206B (zh) | 一种云计算数据中心虚拟机资源快速配置方法 | |
CN101237469B (zh) | 运用蚁群算法优化多QoS网格工作流的方法 | |
CN108345501A (zh) | 一种分布式资源调度方法和系统 | |
CN107291545A (zh) | 计算集群中多用户的任务调度方法及设备 | |
CN107659433A (zh) | 一种云资源调度方法及设备 | |
CN103617472B (zh) | 多项目多任务管理中的资源平衡自适应调度方法 | |
Amalarethinam et al. | An Overview of the scheduling policies and algorithms in Grid Computing | |
CN106371924B (zh) | 一种最小化MapReduce集群能耗的任务调度方法 | |
CN105373426B (zh) | 一种基于Hadoop的车联网内存感知实时作业调度方法 | |
CN105389204B (zh) | 一种多资源偏序调度方法 | |
CN108762903A (zh) | 一种面向海量工作节点的抢占式任务调度方法及系统 | |
CN109615188A (zh) | 一种预分配结合匈牙利算法的多机器人任务分配方法 | |
CN105005503B (zh) | 基于元胞自动机的云计算负载均衡任务调度方法 | |
Zhou et al. | Concurrent workflow budget-and deadline-constrained scheduling in heterogeneous distributed environments | |
CN110311965A (zh) | 一种云计算环境下的任务调度方法及系统 | |
CN110191155A (zh) | 一种面向胖树互连网络的并行作业调度方法、系统及存储介质 | |
CN104917839A (zh) | 一种用于云计算环境下的负载均衡方法 | |
CN106502790A (zh) | 一种基于数据分布的任务分配优化方法 | |
KR20130073341A (ko) | 네트워크를 이용한 협업 프로젝트 수행 시스템 및 방법 |
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 |