基于优先队列的云任务多维约束回填调度方法与流程

文档序号:12905943阅读:509来源:国知局
基于优先队列的云任务多维约束回填调度方法与流程

本发明涉及云计算技术领域,具体来说应用于云计算平台中资源管理技术,特别涉及一种基于优先队列的云任务多维约束回填调度方法。



背景技术:

如今,我们身处信息爆炸的时代,计算机技术的发展日新月异。当下的趋势是用户量剧增,传统的数据中心已经无力满足现有的需求。随之带来了云计算这个新技术的广泛应用,他的诞生也是信息技术革命的产物。云计算通常都是面向异构的组成,而面对海量的任务请求,云计算的数据中心如何在有限的计算资源内用最短的时间来调度处理任务,并且缩短任务最终完成时间,减少批量任务的平均等待时延,增加服务器资源利用率这些方面就显得尤为重要。

现有的一些基于云计算任务调度的方法也分很多种,有些基于蚁群算法、退火算法、遗传算法等启发式算法,例如cn103345657a公开了一种云计算环境下基于遗传和蚁群的任务调度方法,结合了遗传算法和蚁群算法的优势进行迭代求解。另如cn103870317a公开了一种云计算中任务调度方法及系统,该方法中采用的细菌觅食算法来计算最佳工作节点,对任务和资源进行调度分配。这些启发式算法高度抽象的模型在实际面向高时效,快速响应的云计算任务调度处理上会暴露出迭代很慢,面对大量不同的任务很容易陷入局部最优解,使系统响应变慢,降低用户体验。

有些调度方法则单纯的考量任务的优先级权重,没有多方面考虑任务和虚拟机等计算资源的关系。如cn103324525a公开了一种云计算环境下的调度方法,该方法通过计算每个任务优先级指数和任务等待指数对任务进行排序调度。cn103914754a公开了一种工作流的任务调度方法,该方法将每个任务在所有处理器上运行的平均预计时间和数据传递平均时间结合作为权值排序,然后遍历计算节点将权值的最大的绑定到性能最佳的虚拟机上。这样没有考虑每台机器的计算资源的承载和独立任务的资源需求,很容易使任务绑定在虚拟机中产生较大的虚拟机空闲,无法最大限度增加虚拟机资源利用率。

还有一些调度方法单纯从计算节点的性能触发去考虑任务调度。如cn101986272a公开了一种云计算环境下的任务调度方法。该方法在任务分配不考虑节点的性能,只考虑节点的健康度。在分配的任务超过其设定的阈值后还未被处理,将任务重新收回再次分配。这样造成的任务违约率偏高,任务的平均时延也会增大。而cn105740077a公开的一种使用云计算的任务分配方法是在数据中心建立各个计算节点的负载,将任务依次分配到负载从高到低的节点上,这样会导致节点负载过大,反而导致整体调度性能受损。

另有一些调度方法单纯基于任务响应时间来建模来获取最佳调度方式,如cn103841208a公开了一种基于响应时间最优化的云计算任务调度方法,该方法根据任务分片的传输时间,任务在各节点的平均处理时间和任务分片的总处理时间来计算出目标函数,将任务响应时间作为目标来建模。但这样很容易使执行时间较小的任务优先调度,而执行时间较长的任务响应时间变大。无法平衡不同长度任务之间的调度关系。

此外,一些传统回填算法和现有改进型的基于回填调度的方法在选取回填任务时只考虑等待任务申请的处理器核心数目这个单一指标,而没有将申请的资源与独立任务预计执行时长这个指标相结合,这种单一考量方式仅在独立任务执行时长相近的情况下才能有所效果,一旦独立任务执行时长大小差异较大时就会造成虚拟机空闲饥饿程度加剧,导致任务最终完成时间变长,任务平均等待时延增大。而且现有具体到云计算环境下的任务调度方法中还未有一种高效的,且综合考量多维性能指标约束的基于回填调度的改进方法。



技术实现要素:

本发明针对现有改进型回填调度方法的缺陷和不足,提出了一种基于优先队列的云任务多维约束回填调度方法,该方法综合考量任务提交处理器资源与独立任务预计执行时间这两个维度结合来计算出回填权重系数,然后将提交到虚拟机后的每个任务的回填权重系数利用最小二叉堆的数据结构构建成任务优先队列,将批量的等待任务进行回填调度处理,扫描回填时同时加入内存、带宽等资源的约束,来提高回填效率和回填的成功率。从而达到最大限度的对虚拟机空闲资源及时预约回填,缩短任务最终完成时间,减少任务平均等待时延等qos指标。

本发明所采用的技术方案是:一种基于优先队列的云任务多维约束回填调度方法,该方法包括以下步骤:

步骤1:将等待任务队列中的任务按照任务指令长度和申请的处理器核心数量比值的大小作为任务处理时间因子来降序排列,存入普通队列中;处理时间因子用来表征独立任务的预计处理时间;

步骤2:将数据中心中的虚拟机按照其计算处理能力的大小降序排列,并在数据中心建立虚拟机的编号和其计算处理能力值的对应关系;

步骤3:将步骤1中普通队列中的任务根据预计执行时长绑定到步骤2的虚拟机队列,执行时长越长,绑定的虚拟机性能越佳,若分配到当前虚拟机的任务预计执行时长小于等于下一台虚拟机则绑定该任务到当前虚拟机,否则绑定该任务到当前虚拟机,完成虚拟机的初步绑定;

步骤4:步骤3中进入每台虚拟机上的批量任务,根据每个任务申请的处理器核心数量的平方除以任务指令长度的比值得到的回填权重系数作为键来建立最小二叉堆,构成任务优先队列;所述回填权重系数表征为每个任务申请的处理器核心数量的平方除以任务指令长度的比值;

步骤5:弹出最小二叉堆中的第一个任务,扫描虚拟机中正在运行中的任务,若同时满足虚拟机的总处理器核心数、总内存大小和总带宽大小的约束条件即该任务回填后不会超出虚拟机的处理能力、内存和带宽,则进行回填;若不满足,则重新压入二叉堆队列的末尾重新上浮;

步骤6:重复执行步骤5,直到将二叉堆中所有任务调度完毕。

所述的虚拟机的计算处理能力通过mips(millioninstructionspersecond,单字长定点指令平均执行速度)表征。

本发明的有益效果:通过对未提交的任务按照预计执行时间从大到小优先分配到最快的虚拟机,完成初步绑定,可以减少任务的最大完成时间;对进入虚拟机后的任务按照bfv(backfillvalues,回填权重系数)建立最小二叉堆的任务优先队列,采用此数据结构,可以高效的将bfv值最小的,最急需回填的任务快速推到根节点。优先将bfv较小的任务进行回填可以充分减小虚拟机的空闲,提高资源利用率,同时可以减少任务平均等待时延。

附图说明

图1为基于优先队列的云任务多维约束回填调度架构图;

图2为基于优先队列的云任务多维约束回填调度方法流程图;

图3为本发明实施例选定虚拟机后任务队列的最小二叉堆结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1是本发明的云任务回填调度架构图,整个架构由等待任务队列和数据中心组成,而数据中心由数据中心代理(datacenterbroker),主机和建立在主机之上的虚拟机组成。其中数据中心代理的角色就是云任务调度器。

首先对数据中心进行初始化,数据中心首先开启若干台主机;然后提交任务,数据中心接下来会在主机上建立相应数量的虚拟机;此时虚拟机上已经运行一些任务,数据中心之外还有一些等待任务队列,我们用一个普通的队列来存储。

图2是整个云任务多维约束回填调度方法的详细流程:

步骤1:首先针对未进入数据中心的任务等待队列按照公式1中的tratio值对任务进行降序排列,使预计执行时间较长的任务优先排列在队列前面。

步骤2:对数据中心内所有主机上的虚拟机依次建立索引表,key为每台虚拟机的id;value为mips,即该虚拟机处理器核心的处理能力。然后针对虚拟机的mips值按照降序排列,使性能最好的虚拟机排列在索引表的最前面。然后将统计好的索引表提交到数据中心代理(datacenterbroker)并保存。

步骤3:根据步骤1中普通任务队列中的任务依次往步骤2中的索引表中的虚拟机上绑定,绑定的同时需要计算当前虚拟机和下一台虚拟机累计执行时间,选择累计执行时间最短的虚拟机进行绑定。

步骤4:根据步骤3中提交到每台虚拟机上的批量任务按照bfv的值进行建立最小二叉堆的来组成优先队列。

选定虚拟机后进入数据中心后对每台虚拟机上的批量任务进行建堆操作,这里使用的是如图3所示的最小二叉堆数据结构,最小二叉堆是一种堆有序的完全二叉树。如图3中t1~t9节点分别存储的是任务的bfv值。其中t1小于t2/t3,t2小于t4/t5,t3小于t6/t7,t4小于t8。t1作为根节点是整个队列中bfv值最小的,其中每个左子节点的索引值是父节点的2倍,右子节点的索引值是父节点的2倍+1。依次构建出最小二叉堆组成的优先队列

步骤5:扫描虚拟机中空闲资源,依次弹出二叉堆中的第一个任务,扫描虚拟机中正在运行中的任务,进行任务回填。

步骤5-1:因为最小二叉堆中的根节点是bfv值最小的任务,因此我们再扫描当前虚拟机中若存在空闲计算资源,则弹出优先队列的第一个任务,然后根据公式3来判断若将该任务回填是否满足资源约束条件。若满足,则依次进行回填。其中pe为处理器核心数量,ram和bw分别是任务的内存占用量和带宽使用量。

步骤5-2:若在步骤5-1中发现弹出的任务不满足资源约束条件,则将该任务重新插入二叉堆的队尾,然后将之前根节点下面的子节点弹出尝试回填,回填成功后,因为从队尾插入的任务可能小于他的父节点,所以按照二叉堆的定义要求,将该任务上浮至合适的位置。

步骤5-3:根据上面两个子步骤将所有虚拟机的提交的任务都依次回填调度完毕,最后等待任务执行完毕,销毁虚拟机,整个任务调度流程完毕。

本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1