CN107341041B - 基于优先队列的云任务多维约束回填调度方法 - Google Patents
基于优先队列的云任务多维约束回填调度方法 Download PDFInfo
- Publication number
- CN107341041B CN107341041B CN201710500564.5A CN201710500564A CN107341041B CN 107341041 B CN107341041 B CN 107341041B CN 201710500564 A CN201710500564 A CN 201710500564A CN 107341041 B CN107341041 B CN 107341041B
- Authority
- CN
- China
- Prior art keywords
- task
- virtual machine
- tasks
- backfill
- queue
- 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.)
- Active
Links
Images
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
-
- 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
-
- 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)
Abstract
本发明公开了一种基于优先队列的云任务多维约束回填调度方法,该方法克服了云计算中传统回填调度算法和其改进回填调度算法中考虑任务指标过于单一造成的回填性能不佳,虚拟机资源占空比变大的缺陷;综合考虑申请处理器核心数量和批量任务中独立任务的预计执行时长这两个维度进行权衡,利用回填权重系数的值构建了基于最小二叉堆的优先队列来优先回填申请资源较少而且预计执行时间较长的任务,并且增加内存占用和带宽占用等约束条件。本发明提高了单位时间内虚拟机计算资源的利用率,减少了批量任务的最终完成时间,降低了任务平均等待时延。
Description
技术领域
本发明涉及云计算技术领域,具体来说应用于云计算平台中资源管理技术,特别涉及一种基于优先队列的云任务多维约束回填调度方法。
背景技术
如今,我们身处信息***的时代,计算机技术的发展日新月异。当下的趋势是用户量剧增,传统的数据中心已经无力满足现有的需求。随之带来了云计算这个新技术的广泛应用,他的诞生也是信息技术革命的产物。云计算通常都是面向异构的组成,而面对海量的任务请求,云计算的数据中心如何在有限的计算资源内用最短的时间来调度处理任务,并且缩短任务最终完成时间,减少批量任务的平均等待时延,增加服务器资源利用率这些方面就显得尤为重要。
现有的一些基于云计算任务调度的方法也分很多种,有些基于蚁群算法、退火算法、遗传算法等启发式算法,例如CN103345657A公开了一种云计算环境下基于遗传和蚁群的任务调度方法,结合了遗传算法和蚁群算法的优势进行迭代求解。另如CN103870317A公开了一种云计算中任务调度方法及***,该方法中采用的细菌觅食算法来计算最佳工作节点,对任务和资源进行调度分配。这些启发式算法高度抽象的模型在实际面向高时效,快速响应的云计算任务调度处理上会暴露出迭代很慢,面对大量不同的任务很容易陷入局部最优解,使***响应变慢,降低用户体验。
有些调度方法则单纯的考量任务的优先级权重,没有多方面考虑任务和虚拟机等计算资源的关系。如CN103324525A公开了一种云计算环境下的调度方法,该方法通过计算每个任务优先级指数和任务等待指数对任务进行排序调度。CN103914754A公开了一种工作流的任务调度方法,该方法将每个任务在所有处理器上运行的平均预计时间和数据传递平均时间结合作为权值排序,然后遍历计算节点将权值的最大的绑定到性能最佳的虚拟机上。这样没有考虑每台机器的计算资源的承载和独立任务的资源需求,很容易使任务绑定在虚拟机中产生较大的虚拟机空闲,无法最大限度增加虚拟机资源利用率。
还有一些调度方法单纯从计算节点的性能触发去考虑任务调度。如CN101986272A公开了一种云计算环境下的任务调度方法。该方法在任务分配不考虑节点的性能,只考虑节点的健康度。在分配的任务超过其设定的阈值后还未被处理,将任务重新收回再次分配。这样造成的任务违约率偏高,任务的平均时延也会增大。而CN105740077A公开的一种使用云计算的任务分配方法是在数据中心建立各个计算节点的负载,将任务依次分配到负载从高到低的节点上,这样会导致节点负载过大,反而导致整体调度性能受损。
另有一些调度方法单纯基于任务响应时间来建模来获取最佳调度方式,如CN103841208A公开了一种基于响应时间最优化的云计算任务调度方法,该方法根据任务分片的传输时间,任务在各节点的平均处理时间和任务分片的总处理时间来计算出目标函数,将任务响应时间作为目标来建模。但这样很容易使执行时间较小的任务优先调度,而执行时间较长的任务响应时间变大。无法平衡不同长度任务之间的调度关系。
此外,一些传统回填算法和现有改进型的基于回填调度的方法在选取回填任务时只考虑等待任务申请的处理器核心数目这个单一指标,而没有将申请的资源与独立任务预计执行时长这个指标相结合,这种单一考量方式仅在独立任务执行时长相近的情况下才能有所效果,一旦独立任务执行时长大小差异较大时就会造成虚拟机空闲饥饿程度加剧,导致任务最终完成时间变长,任务平均等待时延增大。而且现有具体到云计算环境下的任务调度方法中还未有一种高效的,且综合考量多维性能指标约束的基于回填调度的改进方法。
发明内容
本发明针对现有改进型回填调度方法的缺陷和不足,提出了一种基于优先队列的云任务多维约束回填调度方法,该方法综合考量任务提交处理器资源与独立任务预计执行时间这两个维度结合来计算出回填权重系数,然后将提交到虚拟机后的每个任务的回填权重系数利用最小二叉堆的数据结构构建成任务优先队列,将批量的等待任务进行回填调度处理,扫描回填时同时加入内存、带宽等资源的约束,来提高回填效率和回填的成功率。从而达到最大限度的对虚拟机空闲资源及时预约回填,缩短任务最终完成时间,减少任务平均等待时延等QoS指标。
本发明所采用的技术方案是:一种基于优先队列的云任务多维约束回填调度方法,该方法包括以下步骤:
步骤1:将等待任务队列中的任务按照任务指令长度和申请的处理器核心数量比值的大小作为任务处理时间因子来降序排列,存入普通队列中;处理时间因子用来表征独立任务的预计处理时间;
步骤2:将数据中心中的虚拟机按照其计算处理能力的大小降序排列,并在数据中心建立虚拟机的编号和其计算处理能力值的对应关系;
步骤3:将步骤1中普通队列中的任务根据预计执行时长绑定到步骤2的虚拟机队列,执行时长越长,绑定的虚拟机性能越佳,若分配到当前虚拟机的任务预计执行时长小于等于下一台虚拟机则绑定该任务到当前虚拟机,否则绑定该任务到当前虚拟机,完成虚拟机的初步绑定;
步骤4:步骤3中进入每台虚拟机上的批量任务,根据每个任务申请的处理器核心数量的平方除以任务指令长度的比值得到的回填权重系数作为键来建立最小二叉堆,构成任务优先队列;所述回填权重系数表征为每个任务申请的处理器核心数量的平方除以任务指令长度的比值;
步骤5:弹出最小二叉堆中的第一个任务,扫描虚拟机中正在运行中的任务,若同时满足虚拟机的总处理器核心数、总内存大小和总带宽大小的约束条件即该任务回填后不会超出虚拟机的处理能力、内存和带宽,则进行回填;若不满足,则重新压入二叉堆队列的末尾重新上浮;
步骤6:重复执行步骤5,直到将二叉堆中所有任务调度完毕。
所述的虚拟机的计算处理能力通过MIPS(Million Instructions Per Second,单字长定点指令平均执行速度)表征。
本发明的有益效果:通过对未提交的任务按照预计执行时间从大到小优先分配到最快的虚拟机,完成初步绑定,可以减少任务的最大完成时间;对进入虚拟机后的任务按照BFV(BackFill Values,回填权重系数)建立最小二叉堆的任务优先队列,采用此数据结构,可以高效的将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:根据上面两个子步骤将所有虚拟机的提交的任务都依次回填调度完毕,最后等待任务执行完毕,销毁虚拟机,整个任务调度流程完毕。
本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。
Claims (2)
1.一种基于优先队列的云任务多维约束回填调度方法,其特征在于,包括以下步骤,
步骤1:将等待任务队列中的任务按照任务指令长度和申请的处理器核心数量比值的大小作为任务处理时间因子来降序排列,存入普通队列中;处理时间因子用来表征独立任务的预计处理时间;
步骤2:将数据中心中的虚拟机按照其计算处理能力的大小降序排列,并在数据中心建立虚拟机的编号和其计算处理能力值的对应关系;
步骤3:根据步骤1中普通任务队列中的任务依次往步骤2中的索引表中的虚拟机上绑定,绑定的同时需要计算当前虚拟机和下一台虚拟机累计执行时间,选择累计执行时间最短的虚拟机进行绑定;
步骤4:步骤3中进入每台虚拟机上的批量任务,根据每个任务申请的处理器核心数量的平方除以任务指令长度的比值得到的回填权重系数作为键来建立最小二叉堆,构成任务优先队列;所述回填权重系数表征为每个任务申请的处理器核心数量的平方除以任务指令长度的比值;
步骤5:弹出最小二叉堆中的第一个任务,扫描虚拟机中正在运行中的任务,若同时满足虚拟机的总处理器核心数、总内存大小和总带宽大小的约束条件即该任务回填后不会超出虚拟机的处理能力、内存和带宽,则进行回填;若不满足,则重新压入二叉堆队列的末尾重新上浮;
步骤6:重复执行步骤5,直到将二叉堆中所有任务调度完毕。
2.根据权利要求1所述的基于优先队列的云任务多维约束回填调度方法,其特征在于,步骤2中所述的虚拟机的计算处理能力通过MIPS表征。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710500564.5A CN107341041B (zh) | 2017-06-27 | 2017-06-27 | 基于优先队列的云任务多维约束回填调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710500564.5A CN107341041B (zh) | 2017-06-27 | 2017-06-27 | 基于优先队列的云任务多维约束回填调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107341041A CN107341041A (zh) | 2017-11-10 |
CN107341041B true CN107341041B (zh) | 2020-08-11 |
Family
ID=60220835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710500564.5A Active CN107341041B (zh) | 2017-06-27 | 2017-06-27 | 基于优先队列的云任务多维约束回填调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107341041B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990339B (zh) * | 2019-10-15 | 2023-09-19 | 平安科技(深圳)有限公司 | 分布式存储的文件读写方法、装置、平台及可读存储介质 |
CN111080298B (zh) * | 2019-12-26 | 2023-12-29 | 电子科技大学 | 一种适用于能源区块链的区块生成与交易验证方法 |
CN111782355B (zh) * | 2020-06-03 | 2024-05-28 | 上海交通大学 | 一种基于混合负载的云计算任务调度方法及*** |
CN113192322B (zh) * | 2021-03-19 | 2022-11-25 | 东北大学 | 一种基于云边协同的高速公路交通流量计数方法 |
CN113132265B (zh) * | 2021-04-16 | 2022-05-10 | 武汉光迅信息技术有限公司 | 一种多路以太网的多级调度方法和装置 |
CN113238841B (zh) * | 2021-05-11 | 2023-12-12 | 湖北碳聚生物科技有限责任公司 | 一种基于云计算技术的任务调度方法 |
CN117193963A (zh) * | 2023-08-03 | 2023-12-08 | 北京大学 | 基于函数特征的服务器无感知计算调度方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101819540B (zh) * | 2009-02-27 | 2013-03-20 | 国际商业机器公司 | 在集群中调度任务的方法和*** |
US8627442B2 (en) * | 2011-05-24 | 2014-01-07 | International Business Machines Corporation | Hierarchical rule development and binding for web application server firewall |
US9563470B2 (en) * | 2013-12-23 | 2017-02-07 | International Business Machines Corporation | Backfill scheduling for embarrassingly parallel jobs |
CN103761147B (zh) * | 2014-01-15 | 2017-11-21 | 清华大学 | 一种云平台中计算实例的管理方法及*** |
-
2017
- 2017-06-27 CN CN201710500564.5A patent/CN107341041B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107341041A (zh) | 2017-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107341041B (zh) | 基于优先队列的云任务多维约束回填调度方法 | |
Wang et al. | Load balancing task scheduling based on genetic algorithm in cloud computing | |
CN109788046B (zh) | 一种基于改进蜂群算法的多策略边缘计算资源调度方法 | |
CN111694656B (zh) | 基于多智能体深度强化学习的集群资源调度方法及*** | |
CN111782355B (zh) | 一种基于混合负载的云计算任务调度方法及*** | |
Tantalaki et al. | Pipeline-based linear scheduling of big data streams in the cloud | |
CN113138860B (zh) | 消息队列的管理方法及装置 | |
CN110347504B (zh) | 众核计算资源调度方法及装置 | |
CN111104211A (zh) | 基于任务依赖的计算卸载方法、***、设备及介质 | |
CN111813506A (zh) | 一种基于粒子群算法资源感知计算迁移方法、装置及介质 | |
CN109656713B (zh) | 一种基于边缘计算框架的容器调度方法 | |
CN111343288B (zh) | 作业调度方法、***及计算设备 | |
CN111782627B (zh) | 面向广域高性能计算环境的任务与数据协同调度方法 | |
CN109710372B (zh) | 一种基于猫头鹰搜索算法的计算密集型云工作流调度方法 | |
CN111209104A (zh) | 一种异构集群下Spark应用的能量感知调度方法 | |
CN114327811A (zh) | 一种任务调度方法、装置、设备及可读存储介质 | |
CN108170523B (zh) | 一种移动云计算的随机任务序列调度方法 | |
CN108958919B (zh) | 一种云计算中有期限约束的多dag任务调度费用公平性评估方法 | |
CN114675953A (zh) | 资源动态调度方法、装置、设备及计算机可读存储介质 | |
CN112685162A (zh) | 边缘服务器异构计算资源的高效能调度方法、***和介质 | |
Aladwani | Impact of selecting virtual machine with least load on tasks scheduling algorithms in cloud computing | |
Lee et al. | An adaptive task scheduling system for Grid Computing | |
CN104731662B (zh) | 一种可变并行作业的资源分配方法 | |
CN113127173A (zh) | 一种异构感知的集群调度方法及装置 | |
CN110308991B (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 |