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

文档序号:24181988发布日期:2021-03-09 12:21阅读:112来源:国知局
一种支持可抢占虚拟机实例的云工作流配置和调度方法与流程

1.本发明涉及在云计算、可抢占虚拟机实例、工作流调度等领域,特别是涉及一种支持可抢占虚拟机实例的云工作流配置和调度方法。


背景技术:

2.在科学计算领域,应用常常有着很大的计算需求,而且因为其内部存在着复杂的依赖,所以多以工作流的形式来表示。工作流包含多个存在依赖关系的任务,各个任务之间的依赖关系可以表示为有向无环图(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更低。在使用可抢占虚拟机实例时,用户需要提供最高能够承受的价格,当用户设置的价格高于或等于可抢占虚拟机实例的市场价格时,才能够申请和使用可抢占虚拟机实例。用户在使用可抢占虚拟机实例的过程中,如果可抢占虚拟机实例的市场价格高于用户设置的价格,那么可抢占虚拟机实例会被云计算平台强制中断,导致用户的任务失败。由于可抢占虚拟机实例可能被中断的特点,常常在容错率较高的应用中使用,比如爬虫等。而为了能够在其它应用上使用可抢占虚拟机实例,常常需要在应用中增加容错措施,比如快照、备份等。
3.在使用可抢占虚拟机实例的过程中,为了能够满足稳定运行时间、成本限制、时间限制等要求,常常有着不同出价策略和方法,一般可分为静态出价策略和动态出价策略两类。静态出价策略则是不考虑可抢占虚拟机实例当前的价格变动,而是考虑可抢占虚拟机实例长期的历史价格变化,从稳定性和成本中进行折中,得到一个基本满足应用要求的出价,比如对于数据库、网站等这类稳定性要求较高的应用而言,用户设置的出价越高越好;而对于时间要求比较宽松的任务,就可以降低出价来减少成本。而动态出价策略则是考虑到可抢占虚拟机实例的当前价格,以及未来的价格变化,并且添加了成本限制、时间限制等约束条件来寻找最优的出价价格,但是这也会带来很高的计算复杂度。这一类方法效果的关键在于对可抢占虚拟机实例价格或者可抢占虚拟机实例稳定性所建立模型的准确性。除此之外,这些研究仅限于单个任务的情况下,对于工作流并不能完全适用。其它支持可抢占虚拟机实例的工作流调度方法,则是以保证可抢占虚拟机实例稳定性为主,并没有很好发
挥可抢占虚拟机实例的特点,降低工作流的计算成本。


技术实现要素:

4.本发明技术解决问题:克服现有技术的不足和缺陷,提供一种支持可抢占虚拟机实例的云工作流配置和调度方法,满足工作流的执行时限要求,充分利用可抢占虚拟机实例价格优势,大幅度降低工作流的计算成本。
5.本发明的技术解决方案,支持可抢占虚拟机实例的云工作流配置和调度方法,其特征在于,包括以下步骤:
6.步骤1:一个工作流被用户提交到云计算平台上执行,由用户指定工作流执行时限;并且用户需要提供工作流中各个任务的估计计算时间;该方法会将工作流解析为有向无环图,并计算各个任务的依赖数量d
i
(即有向无环图中的节点的边数,节点的边数越多,那么对应任务的依赖任务数量就越大);
7.步骤2:该方法会根据用户提供的任务的计算时间,得到该任务在最大规格的可抢占虚拟机实例下的计算时间;
8.步骤3:对所有任务分配最大规格的可抢占虚拟机实例,作为初始时工作流配置的基础状态;
9.步骤4:根据所有任务的依赖数量d
i
和任务的计算量,来进行排序,得到任务序列t;
10.步骤5:按任务序列t的顺序,逐个取出任务t
i

11.步骤6:降低单个任务t
i
的可抢占虚拟机实例规格,重新计算该任务完成所需要的时间;
12.步骤7:根据得到时间计算整个工作流的工作时间,有两种情况:一为工作时间满足用户的工作流执行时限,此时该任务对应的可抢占虚拟机实例规格为降低后的规格;二为工作时间超出用户的工作流执行时限,此时该任务对应的可抢占虚拟机实例规格为降低前的规格;
13.步骤8:重复步骤5到步骤7,直到没有任务调整对应的可抢占虚拟机实例规格;
14.步骤9:在运行时,按照工作流的依赖顺序执行任务;在要执行任务t
i
时,云计算平台提供不同可抢占虚拟机实例不同规格的当前价格;
15.步骤10:根据可抢占虚拟机实例不同规格的价格差异,调整任务的可抢占虚拟机实例规格;
16.步骤11:根据可抢占虚拟机实例的当前价格和历史价格确定购买策略,设置出价,购买可抢占虚拟机实例用于执行任务;此时有两种情况:一为出价大于等于可抢占虚拟机实例的当前价格,那么任务就可以在申请到的可抢占虚拟机实例上执行;二为出价小于可抢占虚拟机实例的价格,那么任务会在一段时间后重复步骤11,直到任务申请到可抢占虚拟机实例为止;
17.步骤12:在任务执行过程中,每隔一段时间进行备份,而可抢占虚拟机实例会出现两种中止情况:一为任务执行结束,主动中止可抢占虚拟机实例,此时可以开始执行后续的任务;二为可抢占虚拟机实例的价格超过方法申请时的出价,任务的可抢占虚拟机实例会被云计算平台中止,还有剩余任务需要完成,此时重复步骤11到步骤12,直到任务完成;
18.步骤13:重复步骤9到步骤12,直到工作流中所有任务完成。
19.所述步骤1中,由各个任务依赖数量d
i
的计算方式实现为:
20.(1)工作流中所有任务的d
i
初始为0;
21.(2)如果任务在工作流的有向无环图中,有x条边指向该任务,那么d
i
增加x;
22.(3)如果任务在工作流的有向无环图中,有y条边是从该任务出发,那么d
i
增加y。
23.所述步骤4中,更具任务的依赖数量d
i
和任务的计算量来进行排序,计算方法如下:
24.(1)需要排序的指标设为q
i
,用户提供的任务完成的估计时间为t
i
,每个任务的q
i
=d
i
*t
i

25.(2)所有任务按照计算得到的q
i
,从大到小进行排序;
26.(3)当多个任务q
i
相同时,这些任务按照d
i
从大到小进行排序;
27.(4)当多个任务q
i
和d
i
相同时,这些任务进行随机排序。
28.所述步骤6中,降低单个任务t
i
的可抢占虚拟机实例规格的方式,以及该任务完成所需要时间的计算方式:
29.(1)对于降低单个任务t
i
的可抢占虚拟机实例规格的方式,假设s为可抢占虚拟机实例的规格,具体实现如下:
30.(1-1)对所有可能的可抢占虚拟机实例规格依照价格从大到小进行排序,得到可抢占虚拟机实例序列s,其中序列s中的可抢占虚拟机实例数量为n;
31.(1-2)根据任务对应的可抢占虚拟机实例规格,找到该实例在序列s中的位置i;每个实例都有对应的规格,根据规格找到在序列s中的位置,来确定哪个虚拟机实例规格比当前规格价格更低;
32.(1-3)如果i<n,i代表任务对应的可抢占虚拟机实例规格在序列s中的位置;i小于n代表s
i
的价格不是最低的,则将任务对应的可抢占虚拟机实例规格调整为s
i+1

33.(1-4)如果i=n,则不调整任务对应的可抢占虚拟机实例规格。
34.(2)对于重新计算该任务完成所需要时间,设可抢占虚拟机实例的计算能力为c,为任务t
i
在可抢占虚拟机实例规格为s的条件下完成所需要的时间,任务的可抢占虚拟机实例规格从s调整为s

,具体实现如下:
35.(2-1)计算不同规格的可抢占虚拟机实例的计算能力,c=cpu核心数*4+内存大小(gb);调整前后的可抢占虚拟机实例计算能力分别为c,c


36.(2-2)调整后的任务完成时间
37.所述步骤10中,根据可抢占虚拟机实例不同规格的价格差异,调整任务的可抢占虚拟机实例规格,具体实现方法如下:
38.(1)如果任务的依赖数量d
i
≤2,且任务所对应的可抢占虚拟机实例规格在可抢占虚拟机实例序列s中的s
i
,满足i<n;
39.(2)计算将任务调整为s
i+1
后,所需要的完成时间;
40.(3)根据该完成时间,计算整个工作流的最早完成时间;此时有两种情况:一为工作流的最早完成时间满足用户的工作流执行时限,则将此任务的可抢占虚拟机实例规格调整为s
i+1
;二为工作流的最早完成时间不能满足用户的工作流执行时限,则将此任务的可抢
占虚拟机实例规格调整为原来的规格;
41.(4)如果任务的依赖数量d
i
>2,且任务所对应的可抢占虚拟机实例规格在可抢占虚拟机实例序列s中的s
i
,满足i>1;
42.(5)计算可抢占虚拟机实例不同规格的平均价格和pcp
i-1

43.(6)如果pcp
i
≥pcp
i-1
,则将任务的可抢占虚拟机实例规格调整为s
i-1

44.(7)如果pcp
i
<pcp
i-1
,则不调整任务的可抢占虚拟机实例规格;
45.(8)如果上述条件均不满足,则不调整任务的可抢占虚拟机实例规格。
46.所述步骤11中,根据可抢占虚拟机实例的当前价格和历史价格决定出价和出价小于可抢占虚拟机实例后的再次出价时间选定,具体实现如下:
47.(1)根据可抢占虚拟机实例的当前价格和历史价格决定出价,设可抢占虚拟机实例历史价格序列为p
history
,可抢占虚拟机实例的当前价格为p,具体实现如下:
48.(1-1)根据可抢占虚拟机实例历史价格序列,建立关于可抢占虚拟机实例价格的累计分布函数f,其中f(x)=p(x≤x),x∈p
history

49.(1-2)根据工作流中其它任务的完成所需时间,计算得到该任务的最晚完成时间t
last

50.(1-3)根据当前任务的完成所需时间t
i
,得到该任务的最早完成时间t
early

51.(1-4)如果t
last
和t
early
相差小于等于1小时时,出价为可抢占虚拟机实例历史价格中的最高价格;
52.(1-5)如果t
last
和t
early
相差大于1小时时,出价为b,其中b为满足的最小值。
53.(2)当出价小于可抢占虚拟机实例的价格时,需要在一段时间后重复步骤11,具体实现方法如下:
54.(2-1)计算得到该任务的最早完成时间t
early
和最晚完成时间t
last

55.(2-2)如果t
early
和t
last
相差时间小于等于1小时,则立即重复步骤11;
56.(2-3)如果t
early
和t
last
相差时间大于1小时,则在1小时后重复步骤11。
57.所述步骤12中,会在任务执行的过程中,每隔1小时对其进行备份。
58.所述步骤12中,如果任务的可抢占虚拟机实例被云计算平台中止时,会使用备份来申请可抢占虚拟机实例以继续执行,直到任务完成。
59.有益效果:
60.本发明针对现有工作不适用于工作流的场景、无法充分发挥可抢占虚拟机实例价格优势等不足,在工作流执行过程中利用可抢占虚拟机实例低价和不同规格的价格差异等特点,根据可抢占虚拟机实例的价格信息和工作流执行情况,动态调整使用的可抢占虚拟机实例和出价策略,降低工作流的计算成本。本发明可以通过可抢占虚拟机实例的价格信息预测出未来的价格变化,并且通过对比不同规格实例的价格差异,来获得不同时刻的最优可抢占虚拟机实例规格。考虑到未来工作流的复杂化、规模化,本发明可以很好地降低工作流的计算成本,同时满足用户执行时间的要求,为用户节约大量的计算成本。
附图说明
61.图1是本发明提出整体结构示意图;
62.图2是本发明提出的可抢占虚拟机实例规格降低方法的示意图;
63.图3是本发明提出的动态调整可抢占虚拟机实例规格的策略示意图;
64.图4是本发明提出的可抢占虚拟机实例购买策略示意图。
具体实施方式
65.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
66.本发明的整体结构示意图如图1所示,分为运行前和运行时两部分。
67.如图1所示:本发明具体实施步骤如下:
68.步骤1:用户提交工作流,而且指定工作流完成的工作流执行时限;并且用户提供工作流中各个任务的估计计算时间;该方法将工作流解析为有向无环图,并且计算各个任务的依赖数量d
i

69.步骤2:根据用户提供任务的计算时间,得到该任务在不同规格可抢占虚拟机实例下的计算时间;
70.步骤3:对所有任务分配最大规格的可抢占虚拟机实例,作为初始时的工作流配置的基础状态;
71.步骤4:根据所有任务的依赖数量d
i
和任务的计算量,来进行排序,得到任务序列t;
72.步骤5:按任务序列t的顺序,逐个取出任务t
i

73.步骤6:降低单个任务t
i
的可抢占虚拟机实例规格,重新计算该任务完成所需要的时间。本发明提出的降低单个任务t
i
的可抢占虚拟机实例规格的流程如图2所示。具体步骤如下:
74.(1)对所有可能的可抢占虚拟机实例规格依照价格从大到小进行排序,得到可抢占虚拟机实例序列s,其中序列s中的可抢占虚拟机实例数量为n;
75.(2)根据任务对应的可抢占虚拟机实例规格,找到该实例在序列s中的位置i;每个实例都有对应的规格,根据规格找到在序列s中的位置,来确定哪个虚拟机实例规格比当前规格价格更低;
76.(3)如果i<n,i代表任务对应的可抢占虚拟机实例规格在序列s中的位置;i小于n代表s
i
的价格不是最低的,则将任务对应的可抢占虚拟机实例规格调整为s
i+1

77.(4)如果i=n,则不调整任务对应的可抢占虚拟机实例规格;
78.步骤7:根据得到时间计算整个工作流的工作时间,有两种情况:一为工作时间满足用户的工作流执行时限,此时该任务对应的可抢占虚拟机实例规格为降低后的规格;二为工作时间超出用户的工作流执行时限,此时该任务对应的可抢占虚拟机实例规格为降低前的规格;
79.步骤8:重复步骤5到步骤7,直到没有任务调整对应的可抢占虚拟机实例规格;
80.步骤9:在运行时,按照工作流的依赖顺序执行任务;在要执行任务t
i
时,云计算平台提供不同可抢占虚拟机实例不同规格的当前价格;
81.步骤10:根据可抢占虚拟机实例不同规格的价格差异,调整任务的可抢占虚拟机实例规格;本发明提出的动态调整可抢占虚拟机实例规格的策略如图3所示。具体步骤如下:
82.(1)如果任务的依赖数量d
i
≤2,且任务所对应的可抢占虚拟机实例规格在可抢占虚拟机实例序列s中的s
i
,满足i<n;
83.(2)计算将任务调整为s
i+1
后,所需要的完成时间;
84.(3)根据该完成时间,计算整个工作流的最早完成时间;此时有两种情况:一为工作流的最早完成时间满足用户的工作流执行时限,则将此任务的可抢占虚拟机实例规格调整为s
i+1
;二为工作流的最早完成时间不能满足用户的工作流执行时限,则将此任务的可抢占虚拟机实例规格调整为原来的规格;
85.(4)如果任务的依赖数量d
i
>2,且任务所对应的可抢占虚拟机实例规格在可抢占虚拟机实例序列s中的s
i
,满足i>1;
86.(5)计算可抢占虚拟机实例不同规格的平均价格和pcp
i-1

87.(6)如果pcp
i
≥pcp
i-1
,则将任务的可抢占虚拟机实例规格调整为s
i-1

88.(7)如果pcp
i
<pcp
i-1
,则不调整任务的可抢占虚拟机实例规格;
89.(8)如果上述条件均不满足,则不调整任务的可抢占虚拟机实例规格。
90.步骤11:根据可抢占虚拟机实例的当前价格和历史价格确定购买策略,设置出价,购买可抢占虚拟机实例用于执行任务;此时有两种情况:一为出价大于等于可抢占虚拟机实例的当前价格,那么任务就可以在申请到的可抢占虚拟机实例上执行;二为出价小于可抢占虚拟机实例的价格,那么任务会在一段时间后重复步骤11,直到任务申请到可抢占虚拟机实例为止;本发明提出的可抢占虚拟机实例购买策略如图4所示。具体步骤如下:
91.(1)根据可抢占虚拟机实例历史价格序列,建立关于可抢占虚拟机实例价格的累计分布函数f,其中f(x)=p(x≤x),x∈p
history

92.(2)根据工作流中其它任务的完成所需时间,计算得到该任务的最晚完成时间t
last

93.(3)根据当前任务的完成所需时间t
i
,得到该任务的最早完成时间t
early

94.(4)如果t
last
和t
early
相差小于等于1小时时,出价为可抢占虚拟机实例历史价格中的最高价格;
95.(5)如果t
last
和t
early
相差大于1小时时,出价为b,其中b为满足的最小值。
96.步骤12:在任务执行过程中,每隔一段时间进行备份,而可抢占虚拟机实例会出现两种中止情况:一为任务执行结束,主动中止可抢占虚拟机实例,此时可以开始执行后续的任务;二为可抢占虚拟机实例的价格超过方法申请时的出价,任务的可抢占虚拟机实例会被云计算平台中止,还有剩余任务需要完成,此时重复步骤11到步骤12,直到任务完成;
97.步骤13:重复步骤9到步骤12,直到工作流中所有任务完成。
98.尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术
人员理解本发明,且应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1