CN112463295B - 一种支持可抢占虚拟机实例的云工作流配置和调度方法 - Google Patents

一种支持可抢占虚拟机实例的云工作流配置和调度方法 Download PDF

Info

Publication number
CN112463295B
CN112463295B CN202011323676.6A CN202011323676A CN112463295B CN 112463295 B CN112463295 B CN 112463295B CN 202011323676 A CN202011323676 A CN 202011323676A CN 112463295 B CN112463295 B CN 112463295B
Authority
CN
China
Prior art keywords
virtual machine
task
machine instance
preemptible virtual
preemptible
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
Application number
CN202011323676.6A
Other languages
English (en)
Other versions
CN112463295A (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.)
Beihang University
Original Assignee
Beihang 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 Beihang University filed Critical Beihang University
Priority to CN202011323676.6A priority Critical patent/CN112463295B/zh
Publication of CN112463295A publication Critical patent/CN112463295A/zh
Application granted granted Critical
Publication of CN112463295B publication Critical patent/CN112463295B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution 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

本发明公开了一种支持可抢占虚拟机实例的云工作流配置和调度方法,包括:1)初始时根据工作流内各个任务的计算需求,合理分配任务的计算资源;2)运行时根据当前可抢占虚拟机实例的价格,对各个任务的可抢占虚拟机实例的规格和购买方式进行动态调整,从而保证在完成任务的前提下,降低计算成本;3)在动态调整的过程中,通过可抢占虚拟机实例的历史价格,来计算得到当前可抢占虚拟机实例的购买策略;4)利用工作流中各个任务的依赖关系,以及不同可抢占虚拟机实例规格之间的价格差异,调整任务使用的可抢占虚拟机实例规格,降低计算成本。本发明对于依赖关系较强的任务,充分提高计算效率;对于依赖关系较差的任务,充分降低计算成本。

Description

一种支持可抢占虚拟机实例的云工作流配置和调度方法
技术领域
本发明涉及在云计算、可抢占虚拟机实例、工作流调度等领域,特别是涉及一种支持可抢占虚拟机实例的云工作流配置和调度方法。
背景技术
在科学计算领域,应用常常有着很大的计算需求,而且因为其内部存在着复杂的依赖,所以多以工作流的形式来表示。工作流包含多个存在依赖关系的任务,各个任务之间的依赖关系可以表示为有向无环图(Directed acyclic graph,DAG)。工作流中的每个任务只能在所有依赖的任务完成后执行,所以存在依赖关系的任务有着严格的时间先后顺序,而不存在依赖关系的任务则可以并行执行以减少执行时间。随着云计算市场的迅速发展,云计算服务提供商可以提供大量的计算资源,用以满足科学计算应用的需求。但是在云计算平台上执行工作流还会产生相关的费用需要支付给服务提供商。可抢占虚拟机实例是云计算服务提供商推出的一种新型的实例,由云计算市场的供需关系来调整可抢占虚拟机实例的价格,用户可以在使用相同算力的同时,节省下大量的费用。比如阿里云提供的可抢占虚拟机实例,相比于同规格(相同数量的CPU,相同大小的内存等)按需付费实例,价格降低了80%-90%。除此之外,规格越低的可抢占虚拟机实例,算力成本也越低,比如在2020年10月10日阿里云的可抢占虚拟机实例ecs.hfg6.2xlarge(8vCPU,32GiB内存)的价格是0.528元/实例/小时,为按需付费实例价格的23%;而ecs.hfg6.xlarge(4vCPU,16GiB内存)的价格是0.143元/实例/小时,为按需付费实例价格的13%,算力成本比ecs.hfg6.2xlarge更低。在使用可抢占虚拟机实例时,用户需要提供最高能够承受的价格,当用户设置的价格高于或等于可抢占虚拟机实例的市场价格时,才能够申请和使用可抢占虚拟机实例。用户在使用可抢占虚拟机实例的过程中,如果可抢占虚拟机实例的市场价格高于用户设置的价格,那么可抢占虚拟机实例会被云计算平台强制中断,导致用户的任务失败。由于可抢占虚拟机实例可能被中断的特点,常常在容错率较高的应用中使用,比如爬虫等。而为了能够在其它应用上使用可抢占虚拟机实例,常常需要在应用中增加容错措施,比如快照、备份等。
在使用可抢占虚拟机实例的过程中,为了能够满足稳定运行时间、成本限制、时间限制等要求,常常有着不同出价策略和方法,一般可分为静态出价策略和动态出价策略两类。静态出价策略则是不考虑可抢占虚拟机实例当前的价格变动,而是考虑可抢占虚拟机实例长期的历史价格变化,从稳定性和成本中进行折中,得到一个基本满足应用要求的出价,比如对于数据库、网站等这类稳定性要求较高的应用而言,用户设置的出价越高越好;而对于时间要求比较宽松的任务,就可以降低出价来减少成本。而动态出价策略则是考虑到可抢占虚拟机实例的当前价格,以及未来的价格变化,并且添加了成本限制、时间限制等约束条件来寻找最优的出价价格,但是这也会带来很高的计算复杂度。这一类方法效果的关键在于对可抢占虚拟机实例价格或者可抢占虚拟机实例稳定性所建立模型的准确性。除此之外,这些研究仅限于单个任务的情况下,对于工作流并不能完全适用。其它支持可抢占虚拟机实例的工作流调度方法,则是以保证可抢占虚拟机实例稳定性为主,并没有很好发挥可抢占虚拟机实例的特点,降低工作流的计算成本。
发明内容
本发明技术解决问题:克服现有技术的不足和缺陷,提供一种支持可抢占虚拟机实例的云工作流配置和调度方法,满足工作流的执行时限要求,充分利用可抢占虚拟机实例价格优势,大幅度降低工作流的计算成本。
本发明的技术解决方案,支持可抢占虚拟机实例的云工作流配置和调度方法,其特征在于,包括以下步骤:
步骤1:一个工作流被用户提交到云计算平台上执行,由用户指定工作流执行时限;并且用户需要提供工作流中各个任务的估计计算时间;该方法会将工作流解析为有向无环图,并计算各个任务的依赖数量Di(即有向无环图中的节点的边数,节点的边数越多,那么对应任务的依赖任务数量就越大);
步骤2:该方法会根据用户提供的任务的计算时间,得到该任务在最大规格的可抢占虚拟机实例下的计算时间;
步骤3:对所有任务分配最大规格的可抢占虚拟机实例,作为初始时工作流配置的基础状态;
步骤4:根据所有任务的依赖数量Di和任务的计算量,来进行排序,得到任务序列T;
步骤5:按任务序列T的顺序,逐个取出任务Ti
步骤6:降低单个任务Ti的可抢占虚拟机实例规格,重新计算该任务完成所需要的时间;
步骤7:根据得到时间计算整个工作流的工作时间,有两种情况:一为工作时间满足用户的工作流执行时限,此时该任务对应的可抢占虚拟机实例规格为降低后的规格;二为工作时间超出用户的工作流执行时限,此时该任务对应的可抢占虚拟机实例规格为降低前的规格;
步骤8:重复步骤5到步骤7,直到没有任务调整对应的可抢占虚拟机实例规格;
步骤9:在运行时,按照工作流的依赖顺序执行任务;在要执行任务Ti时,云计算平台提供不同可抢占虚拟机实例不同规格的当前价格;
步骤10:根据可抢占虚拟机实例不同规格的价格差异,调整任务的可抢占虚拟机实例规格;
步骤11:根据可抢占虚拟机实例的当前价格和历史价格确定购买策略,设置出价,购买可抢占虚拟机实例用于执行任务;此时有两种情况:一为出价大于等于可抢占虚拟机实例的当前价格,那么任务就可以在申请到的可抢占虚拟机实例上执行;二为出价小于可抢占虚拟机实例的价格,那么任务会在一段时间后重复步骤11,直到任务申请到可抢占虚拟机实例为止;
步骤12:在任务执行过程中,每隔一段时间进行备份,而可抢占虚拟机实例会出现两种中止情况:一为任务执行结束,主动中止可抢占虚拟机实例,此时可以开始执行后续的任务;二为可抢占虚拟机实例的价格超过方法申请时的出价,任务的可抢占虚拟机实例会被云计算平台中止,还有剩余任务需要完成,此时重复步骤11到步骤12,直到任务完成;
步骤13:重复步骤9到步骤12,直到工作流中所有任务完成。
所述步骤1中,由各个任务依赖数量Di的计算方式实现为:
(1)工作流中所有任务的Di初始为0;
(2)如果任务在工作流的有向无环图中,有x条边指向该任务,那么Di增加x;
(3)如果任务在工作流的有向无环图中,有y条边是从该任务出发,那么Di增加y。
所述步骤4中,更具任务的依赖数量Di和任务的计算量来进行排序,计算方法如下:
(1)需要排序的指标设为Qi,用户提供的任务完成的估计时间为ti,每个任务的Qi=Di*ti
(2)所有任务按照计算得到的Qi,从大到小进行排序;
(3)当多个任务Qi相同时,这些任务按照Di从大到小进行排序;
(4)当多个任务Qi和Di相同时,这些任务进行随机排序。
所述步骤6中,降低单个任务Ti的可抢占虚拟机实例规格的方式,以及该任务完成所需要时间的计算方式:
(1)对于降低单个任务Ti的可抢占虚拟机实例规格的方式,假设s为可抢占虚拟机实例的规格,具体实现如下:
(1-1)对所有可能的可抢占虚拟机实例规格依照价格从大到小进行排序,得到可抢占虚拟机实例序列S,其中序列S中的可抢占虚拟机实例数量为n;
(1-2)根据任务对应的可抢占虚拟机实例规格,找到该实例在序列S中的位置i;每个实例都有对应的规格,根据规格找到在序列S中的位置,来确定哪个虚拟机实例规格比当前规格价格更低;
(1-3)如果i<n,i代表任务对应的可抢占虚拟机实例规格在序列S中的位置;i小于n代表si的价格不是最低的,则将任务对应的可抢占虚拟机实例规格调整为si+1
(1-4)如果i=n,则不调整任务对应的可抢占虚拟机实例规格。
(2)对于重新计算该任务完成所需要时间,设可抢占虚拟机实例的计算能力为c,
Figure BDA0002793644410000041
为任务Ti在可抢占虚拟机实例规格为s的条件下完成所需要的时间,任务的可抢占虚拟机实例规格从s调整为s′,具体实现如下:
(2-1)计算不同规格的可抢占虚拟机实例的计算能力,c=CPU核心数*4+内存大小(GB);调整前后的可抢占虚拟机实例计算能力分别为c,c′;
(2-2)调整后的任务完成时间
Figure BDA0002793644410000042
所述步骤10中,根据可抢占虚拟机实例不同规格的价格差异,调整任务的可抢占虚拟机实例规格,具体实现方法如下:
(1)如果任务的依赖数量Di≤2,且任务所对应的可抢占虚拟机实例规格在可抢占虚拟机实例序列S中的si,满足i<n;
(2)计算将任务调整为si+1后,所需要的完成时间;
(3)根据该完成时间,计算整个工作流的最早完成时间;此时有两种情况:一为工作流的最早完成时间满足用户的工作流执行时限,则将此任务的可抢占虚拟机实例规格调整为si+1;二为工作流的最早完成时间不能满足用户的工作流执行时限,则将此任务的可抢占虚拟机实例规格调整为原来的规格;
(4)如果任务的依赖数量Di>2,且任务所对应的可抢占虚拟机实例规格在可抢占虚拟机实例序列S中的si,满足i>1;
(5)计算可抢占虚拟机实例不同规格的平均价格
Figure BDA0002793644410000043
和pcpi-1
(6)如果pcpi≥pcpi-1,则将任务的可抢占虚拟机实例规格调整为si-1
(7)如果pcpi<pcpi-1,则不调整任务的可抢占虚拟机实例规格;
(8)如果上述条件均不满足,则不调整任务的可抢占虚拟机实例规格。
所述步骤11中,根据可抢占虚拟机实例的当前价格和历史价格决定出价和出价小于可抢占虚拟机实例后的再次出价时间选定,具体实现如下:
(1)根据可抢占虚拟机实例的当前价格和历史价格决定出价,设可抢占虚拟机实例历史价格序列为Phistory,可抢占虚拟机实例的当前价格为p,具体实现如下:
(1-1)根据可抢占虚拟机实例历史价格序列,建立关于可抢占虚拟机实例价格的累计分布函数F,其中F(x)=P(X≤x),X∈Phistory
(1-2)根据工作流中其它任务的完成所需时间,计算得到该任务的最晚完成时间tlast
(1-3)根据当前任务的完成所需时间ti,得到该任务的最早完成时间tearly
(1-4)如果tlast和tearly相差小于等于1小时时,出价为可抢占虚拟机实例历史价格中的最高价格;
(1-5)如果tlast和tearly相差大于1小时时,出价为b,其中b为满足
Figure BDA0002793644410000051
的最小值。
(2)当出价小于可抢占虚拟机实例的价格时,需要在一段时间后重复步骤11,具体实现方法如下:
(2-1)计算得到该任务的最早完成时间tearly和最晚完成时间tlast
(2-2)如果tearly和tlast相差时间小于等于1小时,则立即重复步骤11;
(2-3)如果tearly和tlast相差时间大于1小时,则在1小时后重复步骤11。
所述步骤12中,会在任务执行的过程中,每隔1小时对其进行备份。
所述步骤12中,如果任务的可抢占虚拟机实例被云计算平台中止时,会使用备份来申请可抢占虚拟机实例以继续执行,直到任务完成。
有益效果:
本发明针对现有工作不适用于工作流的场景、无法充分发挥可抢占虚拟机实例价格优势等不足,在工作流执行过程中利用可抢占虚拟机实例低价和不同规格的价格差异等特点,根据可抢占虚拟机实例的价格信息和工作流执行情况,动态调整使用的可抢占虚拟机实例和出价策略,降低工作流的计算成本。本发明可以通过可抢占虚拟机实例的价格信息预测出未来的价格变化,并且通过对比不同规格实例的价格差异,来获得不同时刻的最优可抢占虚拟机实例规格。考虑到未来工作流的复杂化、规模化,本发明可以很好地降低工作流的计算成本,同时满足用户执行时间的要求,为用户节约大量的计算成本。
附图说明
图1是本发明提出整体结构示意图;
图2是本发明提出的可抢占虚拟机实例规格降低方法的示意图;
图3是本发明提出的动态调整可抢占虚拟机实例规格的策略示意图;
图4是本发明提出的可抢占虚拟机实例购买策略示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明的整体结构示意图如图1所示,分为运行前和运行时两部分。
如图1所示:本发明具体实施步骤如下:
步骤1:用户提交工作流,而且指定工作流完成的工作流执行时限;并且用户提供工作流中各个任务的估计计算时间;该方法将工作流解析为有向无环图,并且计算各个任务的依赖数量Di
步骤2:根据用户提供任务的计算时间,得到该任务在不同规格可抢占虚拟机实例下的计算时间;
步骤3:对所有任务分配最大规格的可抢占虚拟机实例,作为初始时的工作流配置的基础状态;
步骤4:根据所有任务的依赖数量Di和任务的计算量,来进行排序,得到任务序列T;
步骤5:按任务序列T的顺序,逐个取出任务Ti
步骤6:降低单个任务Ti的可抢占虚拟机实例规格,重新计算该任务完成所需要的时间。本发明提出的降低单个任务Ti的可抢占虚拟机实例规格的流程如图2所示。具体步骤如下:
(1)对所有可能的可抢占虚拟机实例规格依照价格从大到小进行排序,得到可抢占虚拟机实例序列S,其中序列S中的可抢占虚拟机实例数量为n;
(2)根据任务对应的可抢占虚拟机实例规格,找到该实例在序列S中的位置i;每个实例都有对应的规格,根据规格找到在序列S中的位置,来确定哪个虚拟机实例规格比当前规格价格更低;
(3)如果i<n,i代表任务对应的可抢占虚拟机实例规格在序列S中的位置;i小于n代表si的价格不是最低的,则将任务对应的可抢占虚拟机实例规格调整为si+1
(4)如果i=n,则不调整任务对应的可抢占虚拟机实例规格;
步骤7:根据得到时间计算整个工作流的工作时间,有两种情况:一为工作时间满足用户的工作流执行时限,此时该任务对应的可抢占虚拟机实例规格为降低后的规格;二为工作时间超出用户的工作流执行时限,此时该任务对应的可抢占虚拟机实例规格为降低前的规格;
步骤8:重复步骤5到步骤7,直到没有任务调整对应的可抢占虚拟机实例规格;
步骤9:在运行时,按照工作流的依赖顺序执行任务;在要执行任务Ti时,云计算平台提供不同可抢占虚拟机实例不同规格的当前价格;
步骤10:根据可抢占虚拟机实例不同规格的价格差异,调整任务的可抢占虚拟机实例规格;本发明提出的动态调整可抢占虚拟机实例规格的策略如图3所示。具体步骤如下:
(1)如果任务的依赖数量Di≤2,且任务所对应的可抢占虚拟机实例规格在可抢占虚拟机实例序列S中的si,满足i<n;
(2)计算将任务调整为si+1后,所需要的完成时间;
(3)根据该完成时间,计算整个工作流的最早完成时间;此时有两种情况:一为工作流的最早完成时间满足用户的工作流执行时限,则将此任务的可抢占虚拟机实例规格调整为si+1;二为工作流的最早完成时间不能满足用户的工作流执行时限,则将此任务的可抢占虚拟机实例规格调整为原来的规格;
(4)如果任务的依赖数量Di>2,且任务所对应的可抢占虚拟机实例规格在可抢占虚拟机实例序列S中的si,满足i>1;
(5)计算可抢占虚拟机实例不同规格的平均价格
Figure BDA0002793644410000071
和pcpi-1
(6)如果pcpi≥pcpi-1,则将任务的可抢占虚拟机实例规格调整为si-1
(7)如果pcpi<pcpi-1,则不调整任务的可抢占虚拟机实例规格;
(8)如果上述条件均不满足,则不调整任务的可抢占虚拟机实例规格。
步骤11:根据可抢占虚拟机实例的当前价格和历史价格确定购买策略,设置出价,购买可抢占虚拟机实例用于执行任务;此时有两种情况:一为出价大于等于可抢占虚拟机实例的当前价格,那么任务就可以在申请到的可抢占虚拟机实例上执行;二为出价小于可抢占虚拟机实例的价格,那么任务会在一段时间后重复步骤11,直到任务申请到可抢占虚拟机实例为止;本发明提出的可抢占虚拟机实例购买策略如图4所示。具体步骤如下:
(1)根据可抢占虚拟机实例历史价格序列,建立关于可抢占虚拟机实例价格的累计分布函数F,其中F(x)=P(X≤x),X∈Phistory
(2)根据工作流中其它任务的完成所需时间,计算得到该任务的最晚完成时间tlast
(3)根据当前任务的完成所需时间ti,得到该任务的最早完成时间tearly
(4)如果tlast和tearly相差小于等于1小时时,出价为可抢占虚拟机实例历史价格中的最高价格;
(5)如果tlast和tearly相差大于1小时时,出价为b,其中b为满足
Figure BDA0002793644410000081
的最小值。
步骤12:在任务执行过程中,每隔一段时间进行备份,而可抢占虚拟机实例会出现两种中止情况:一为任务执行结束,主动中止可抢占虚拟机实例,此时可以开始执行后续的任务;二为可抢占虚拟机实例的价格超过方法申请时的出价,任务的可抢占虚拟机实例会被云计算平台中止,还有剩余任务需要完成,此时重复步骤11到步骤12,直到任务完成;
步骤13:重复步骤9到步骤12,直到工作流中所有任务完成。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,且应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

Claims (5)

1.一种支持可抢占虚拟机实例的云工作流配置和调度方法,其特征在于,包括以下步骤:
步骤1:一个工作流被用户提交到云计算平台上执行,由用户指定工作流执行时限;并且用户需要提供工作流中各个任务的估计计算时间;该方法会将工作流解析为有向无环图,并计算各个任务的依赖数量Di,即有向无环图中的节点的边数,节点的边数越多,对应任务的依赖任务数量就越大;
步骤2:根据用户提供的任务的计算时间,得到该任务在最大规格的可抢占虚拟机实例下的计算时间;
步骤3:对所有任务分配最大规格的可抢占虚拟机实例,作为初始时工作流配置的基础状态;
步骤4:根据所有任务的依赖数量Di和任务的计算量,来进行排序,得到任务序列T;所述步骤4中,根据任务的依赖数量Di和任务的计算量来进行排序,计算方法如下:
(1)需要排序的指标设为Qi,用户提供的任务完成的估计时间为ti,每个任务的Qi=Di*ti
(2)所有任务按照计算得到的Qi,从大到小进行排序;
(3)当多个任务的Qi相同时,这些任务按照Di从大到小进行排序;
(4)当多个任务Qi和Di相同时,这些任务进行随机排序;步骤5:按任务序列T的顺序,逐个取出任务Ti;i为任务序号;
步骤6:降低单个任务Ti的可抢占虚拟机实例规格,重新计算该任务完成所需要的时间;所述步骤6中,降低单个任务Ti的可抢占虚拟机实例规格的方式,以及该任务完成所需要时间的计算方式:
(1)对于降低单个任务Ti的可抢占虚拟机实例规格的方式,假设si为可抢占虚拟机实例的规格,具体实现如下:
(1-1)对所有可能的可抢占虚拟机实例规格依照价格从大到小进行排序,得到可抢占虚拟机实例序列S,其中序列S中的可抢占虚拟机实例数量为n;
(1-2)根据任务对应的可抢占虚拟机实例规格,找到该实例在序列S中的位置i;每个实例都有对应的规格,根据规格找到在序列S中的位置,来确定哪个虚拟机实例规格比当前规格价格更低;
(1-3)如果i<n,i代表任务对应的可抢占虚拟机实例规格在序列S中的位置;i小于n代表si的价格不是最低的,则将任务对应的可抢占虚拟机实例规格调整为si+1
(1-4)如果i=n,则不调整任务对应的可抢占虚拟机实例规格;
(2)对于重新计算该任务完成所需要时间,设可抢占虚拟机实例的计算能力为c,
Figure FDA0003872189330000023
为任务Ti在可抢占虚拟机实例规格为s的条件下完成所需要的时间,任务的可抢占虚拟机实例规格从s调整为s,具体实现如下:
(2-1)计算不同规格的可抢占虚拟机实例的计算能力,c=CPU核心数*4+内存大小(GB);调整前后的可抢占虚拟机实例计算能力分别为c,c′;
(2-2)调整后的任务完成时间
Figure FDA0003872189330000021
步骤7:根据得到时间计算整个工作流的工作时间,有两种情况:一为工作时间满足用户的工作流执行时限,此时该任务对应的可抢占虚拟机实例规格为降低后的规格;二为工作时间超出用户的工作流执行时限,此时该任务对应的可抢占虚拟机实例规格为降低前的规格;
步骤8:重复步骤5到步骤7,直到没有任务调整对应的可抢占虚拟机实例规格;
步骤9:在运行时,按照工作流的依赖顺序执行任务;在要执行任务Ti时,云计算平台提供不同可抢占虚拟机实例不同规格的当前价格;
步骤10:根据可抢占虚拟机实例不同规格的价格差异,调整任务的可抢占虚拟机实例规格;所述步骤10中,根据可抢占虚拟机实例不同规格的价格差异,调整任务的可抢占虚拟机实例规格,具体实现方法如下:
(1)如果任务的依赖数量Di≤2,且任务所对应的可抢占虚拟机实例规格在可抢占虚拟机实例序列S中的si,满足i<n;
(1-1)计算将任务调整为si+1后,所需要的完成时间;
(1-2)根据该完成时间,计算整个工作流的最早完成时间;此时有两种情况:一为工作流的最早完成时间满足用户的工作流执行时限,则将此任务的可抢占虚拟机实例规格调整为si+1;二为工作流的最早完成时间不能满足用户的工作流执行时限,则将此任务的可抢占虚拟机实例规格调整为原来的规格;
(2)如果任务的依赖数量Di>2,且任务所对应的可抢占虚拟机实例规格在可抢占虚拟机实例序列S中的si,满足i>1;
(2-1)计算可抢占虚拟机实例不同规格的平均价格
Figure FDA0003872189330000022
和pcpi-1,其中,p为可抢占虚拟机实例的当前价格;
(2-2)如果pcpi≥pcpi-1,则将任务的可抢占虚拟机实例规格调整为si-1
(2-3)如果pcpi<pcpi-1,则不调整任务的可抢占虚拟机实例规格;
(3)如果上述条件均不满足,则不调整任务的可抢占虚拟机实例规格;
步骤11:根据可抢占虚拟机实例的当前价格和历史价格确定购买策略,设置出价,购买可抢占虚拟机实例用于执行任务;此时有两种情况:一为出价大于等于可抢占虚拟机实例的当前价格,那么任务就可以在申请到的可抢占虚拟机实例上执行;二为出价小于可抢占虚拟机实例的价格,那么任务会在一段时间后重复步骤11,直到任务申请到可抢占虚拟机实例为止;
步骤12:在任务执行过程中,每隔一段时间进行备份,而可抢占虚拟机实例会出现两种中止情况:一为任务执行结束,主动中止可抢占虚拟机实例,此时可以开始执行后续的任务;二为可抢占虚拟机实例的价格超过方法申请时的出价,任务的可抢占虚拟机实例会被云计算平台中止,还有剩余任务需要完成,此时重复步骤11到步骤12,直到任务完成;
步骤13:重复步骤9到步骤12,直到工作流中所有任务完成。
2.根据权利要求1所述的一种支持可抢占虚拟机实例的云工作流配置和调度方法,其特征在于:所述步骤1中,各个任务依赖数量Di的计算方式实现为:
(1)工作流中所有任务的Di初始为0;
(2)如果任务在工作流的有向无环图中,有x条边指向该任务,那么该任务的依赖数量Di增加x;
(3)如果任务在工作流的有向无环图中,有y条边是从该任务出发,那么该任务的依赖数量Di增加y。
3.根据权利要求1所述的一种支持可抢占虚拟机实例的云工作流配置和调度方法,其特征在于:所述步骤11中,根据可抢占虚拟机实例的当前价格和历史价格决定出价和出价小于可抢占虚拟机实例后的再次出价时间选定,具体实现如下:
(1)根据可抢占虚拟机实例的当前价格和历史价格决定出价,设可抢占虚拟机实例历史价格序列为Phistory,可抢占虚拟机实例的当前价格为p,具体实现如下:
(1-1)根据可抢占虚拟机实例历史价格序列,建立关于可抢占虚拟机实例价格的累计分布函数F,其中F(x)=P(X≤x),X∈Phistory;x代表可抢占虚拟机实例的历史价格,P是概率函数;
(1-2)根据工作流中其它任务的完成所需时间,计算得到该任务的最晚完成时间tlast
(1-3)根据当前任务的完成所需时间ti,得到该任务的最早完成时间tearly
(1-4)如果tlast和tearly相差小于等于1小时时,出价为可抢占虚拟机实例历史价格中的最高价格;
(1-5)如果tlast和tearly相差大于1小时时,出价为b,其中b为满足
Figure FDA0003872189330000041
的最小值;
(2)当出价小于可抢占虚拟机实例的价格时,需要在一段时间后重复步骤11,具体实现方法如下:
(2-1)计算得到该任务的最早完成时间tearly和最晚完成时间tlast
(2-2)如果tearly和tlast相差时间小于等于1小时,则立即重复步骤11;
(2-3)如果tearly和tlast相差时间大于1小时,则在1小时后重复步骤11。
4.根据权利要求1所述的一种支持可抢占虚拟机实例的云工作流配置和调度方法,其特征在于:所述步骤12中,会在任务执行的过程中,每隔1小时对其进行备份。
5.根据权利要求1所述的一种支持可抢占虚拟机实例的云工作流配置和调度方法,其特征在于:所述步骤12中,如果任务的可抢占虚拟机实例被云计算平台中止时,会使用备份来重复申请可抢占虚拟机实例以继续执行,直到任务完成。
CN202011323676.6A 2020-11-23 2020-11-23 一种支持可抢占虚拟机实例的云工作流配置和调度方法 Active CN112463295B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011323676.6A CN112463295B (zh) 2020-11-23 2020-11-23 一种支持可抢占虚拟机实例的云工作流配置和调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011323676.6A CN112463295B (zh) 2020-11-23 2020-11-23 一种支持可抢占虚拟机实例的云工作流配置和调度方法

Publications (2)

Publication Number Publication Date
CN112463295A CN112463295A (zh) 2021-03-09
CN112463295B true CN112463295B (zh) 2022-11-29

Family

ID=74798598

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011323676.6A Active CN112463295B (zh) 2020-11-23 2020-11-23 一种支持可抢占虚拟机实例的云工作流配置和调度方法

Country Status (1)

Country Link
CN (1) CN112463295B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117971512A (zh) * 2024-04-02 2024-05-03 杭州骋风而来数字科技有限公司 一种算力智能调度系统和方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130179289A1 (en) * 2012-01-09 2013-07-11 Microsoft Corportaion Pricing of resources in virtual machine pools
CN104965755B (zh) * 2015-05-04 2018-08-21 东南大学 基于预算约束的云服务工作流调度方法

Also Published As

Publication number Publication date
CN112463295A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
US9917782B2 (en) Equitable distribution of excess shared-resource throughput capacity
US9940162B2 (en) Realtime optimization of compute infrastructure in a virtualized environment
US9385956B2 (en) Compound token buckets for burst-mode admission control
US20150178124A1 (en) Backfill scheduling for embarrassingly parallel jobs
CN109542620B (zh) 一种云中关联任务流的资源调度配置方法
AU2017203274A1 (en) Burst mode control
CN110544112B (zh) 一种考虑可再生能源的区域调频市场出清的方法及装置
CN106339252B (zh) 分布式dag系统的自适应优化方法和装置
Leslie et al. Exploiting performance and cost diversity in the cloud
CN106789118A (zh) 基于服务等级协议的云计算计费方法
CN104407912A (zh) 一种虚拟机配置方法及装置
CN103257896B (zh) 一种云环境下的Max-D作业调度方法
CN103377407A (zh) 云业务处理方法及相关装置和系统
CN112463295B (zh) 一种支持可抢占虚拟机实例的云工作流配置和调度方法
Zhao et al. Exploring fine-grained resource rental planning in cloud computing
CN112637263B (zh) 一种多数据中心资源优化提升方法、系统和存储介质
US20220374276A1 (en) Scheduling jobs on interruptible cloud computing instances
CN106874080B (zh) 基于分布式服务器集群的数据计算方法及系统
Zhang et al. Selling reserved instances through pay-as-you-go model in cloud computing
Lee et al. On resource efficiency of workflow schedules
CN115098240B (zh) 一种多处理器应用调度方法和系统及存储介质
Wu et al. Experimental study of bidding strategies for scientific workflows using aws spot instances
CN107589985B (zh) 一种面向大数据平台的两阶段作业调度方法及系统
CN114168314B (zh) 一种多线程并发的数据指标批量处理方法、装置及存储介质
Bhise et al. Cloud resource provisioning for Amazon EC2

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