CN115033357A - 基于动态资源选择策略的微服务工作流调度方法及装置 - Google Patents
基于动态资源选择策略的微服务工作流调度方法及装置 Download PDFInfo
- Publication number
- CN115033357A CN115033357A CN202210534598.7A CN202210534598A CN115033357A CN 115033357 A CN115033357 A CN 115033357A CN 202210534598 A CN202210534598 A CN 202210534598A CN 115033357 A CN115033357 A CN 115033357A
- Authority
- CN
- China
- Prior art keywords
- task
- tasks
- virtual machine
- representing
- time
- 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.)
- Pending
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
- 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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本发明涉及一种基于动态资源选择策略(Dynamic Resource SelectionStrategy,DRSS)的微服务工作流调度方法,属于云计算、微服务技术领域。
背景技术
近些年来,随着互联网热潮的兴起,传统的单体式架构应用已经无法应对用户流量的暴涨,应用服务商们都开始采用微服务架构来面对这一问题。如今,商业或者科学应用大多都包含着大量的计算任务,这些应用往往都以工作流的形式表示。在采用微服务架构之后,用微服务工作流来表示一组带有偏序关系的微服务任务的集合也是应用服务提供商采用的构建应用业务流程的常用方法。
对于工作流来说,将工作流中的任务调度到相应的资源上执行总是不可或缺的一个环节。相较于传统工作流中的任务,微服务任务要小得多,所需要的计算资源也少得多,这意味着如果按照传统云平台的工作流调度方案,一对一地将微服务任务分配到虚拟机实例上执行,将造成大量的资源浪费与非必要的成本。轻量级虚拟机技术容器的出现正好解决了这一问题,容器具有轻量级、快速启动、良好的资源隔离和快速部署等特点,非常适合于微服务任务的部署。将微服务任务部署到容器中,再将装有任务的容器部署到虚拟机上,则可以实现多个微服务任务在同一台虚拟机实例上执行,有效地利用剩余资源。
现有的微服务工作流调度方法中的资源选择策略主要为基于成本的策略以及基于向量相似度的策略。基于成本的选择策略仅仅考虑了每次选择的虚拟机的成本,忽略了任务异构的资源需求会导致虚拟机实例剩余资源不够均衡的情况,导致在选择时频繁选择新的虚拟机实例,造成成本的增加。基于向量相似度的策略完全忽略了成本因素,随着任务分配过程的进行,后续剩余的未分配任务量越来越少,继续以向量相似度这个指标进行分配导致的虚拟机数量减少所带来的成本降低远远不及选择高单价的虚拟机实例所带来的成本增加。
以上两种策略都会导致调度的总成本偏高。所以如何设计一个既能满足用户截止期需求,又能尽可能地降低调度总成本的算法是研究的重点。
发明内容
为解决上述问题,本发明提供一种基于动态资源选择策略的微服务工作流调度方法及装置。
技术方案:为解决上述技术问题,本发明采用的技术方案为:
第一方面,一种微服务工作流调度方法,包括:
(1)获取输入的工作流应用信息;
(2)对工作流应用信息进行预处理,得到工作流中各个微服务任务的子截止期以及调度优先级,并将此时的就绪任务按照调度优先级放入到就绪队列之中;
(3)从就绪队列中依次取出就绪任务,在保证资源需求方面和任务子截止期的限制下,为任务寻找可用的资源虚拟机实例,并存入可以虚拟机实例集合中;
(4)通过动态资源选择策略在虚拟机实例可用集合中为任务选择合适的虚拟机实例,并将任务放置到虚拟机实例上执行,得到任务的真实执行时间;
(5)响应于任务分配完成,使用任务的真实执行时间来代替预处理过程中使用的平均执行时间,通过在线调整过程对这个任务的后续任务的参数进行更新,并将由于此任务完成所产生的新就绪任务放置到就绪队列之中;
(6)响应于就绪队列为空,调度完成,输出整个调度方案。
在一些实施例中,所述对工作流应用信息进行预处理,包括:
(21)将用户输入的工作流应用转换成有向无环图的形式,并将各个任务的平均执行时间以及有依赖关系的任务之间的数据传输时间填入有向无环图中;
(22)使用任务的平均执行时间代替实际执行时间,计算各个任务的最早开始时间;
(23)通过任务的最早开始时间以及任务之间的数据传输时间来计算任务的升秩,并计算出任务的子截止期;
(24)将就绪任务的放入到就绪队列中,通过得到的子截止期参数计算就绪任务的调度优先级。
进一步的,在一些实施例中,所述将用户输入的工作流应用转换成有向无环图的形式,包括:
工作流模型可以用一个有向无环图DAG来表示,DAG=(T,E);T={t1,t2,…,tn}是有向无环图中节点的集合,每一个节点都代表一个计算任务;E是DAG中边的集合,任务之间的数据依赖关系由相应节点的边eij来进行表示,eij={ti,tj}代表了任务ti和任务tj之间的依赖关系,即任务tj必须在任务ti完成之后方可执行,此时任务ti被称作任务tj的直接前驱任务,而任务tj被称作任务ti的直接后继任务;如果任务之间存在数据传输,在边eij上加上datai,j属性,表示任务之间需要传输的数据量;此时,对任务ti而言,只有当ti的直接前驱任务集合pred(ti)中所有的任务都执行完,且数据都被传输完之后,ti才可以开始执行;所有微服务任务都事先给定执行任务中所需要的计算资源,用需求资源向量表示,其中m是计算资源种类的数目。
在一些实施例中,所述使用任务的平均执行时间代替实际执行时间,计算各个任务的最早开始时间,包括:
任务的最早开始时间定义如下:
其中,EST(ti)代表任务ti的最早开始时间,tentry表示有向无环图中的入口任务,pred(ti)表示ti的直接前驱任务,ET(tk,vl)表示任务tk在虚拟机实例vl上的执行时间;TT(ti,tk)来表示任务ti与任务tk间的数据传输时间;两个任务如果在同一个虚拟机实例上执行,则它们之间的数据传输时间为0;否则,数据传输时间为任务ti与任务tk间需要传输的数据量和数据中心的平均带宽的比值;
采用任务在所有虚拟机实例上的平均执行时间AETi来替代ET(tk,vl)进行初始计算。
在一些实施例中,所述通过任务的最早开始时间以及任务之间的数据传输时间来计算任务的升秩,并计算出任务的子截止期,包括:
任务ti的升秩ranku(ti)表示任务ti到出口任务texit之间的关键路径的长度,定义如下:
其中ET(ti,vl)表示任务ti在虚拟机实例vl上的执行时间;TT(ti,tk)来表示任务ti与任务tk间的数据传输时间;succ(ti)表示任务ti的后续任务集合;对于出口任务texit,ranku(texit)=0;通过这个值,递归的求出每一个任务的升秩;通过升秩这个概念,任务ti的子截止期sdi的定义为:
其中D指的是用户提交的截止期,ET(ti,vl)表示任务ti在虚拟机实例vl上的执行时间,tentry指的是有向无环图中的入口任务。
在一些实施例中,所述将就绪任务的放入到就绪队列中,通过得到的子截止期参数计算就绪任务的调度优先级,包括:
就绪任务的定义为:当一个任务的所有前驱任务都已经被分配到虚拟机实例上执行完毕,且所有数据都已经接收,该任务就被认为是就绪任务;任务一旦成为就绪任务,就会被放入到就绪队列;计算出就绪队列中每个就绪任务的调度紧急度
其中,ui值表示就绪队列中就绪任务的调度紧急度,sdi表示任务ti的子截止期,EST(ti)代表任务ti的最早开始时间,ET(ti,vl)表示任务ti在虚拟机实例vl上的执行时间;ut(ti)表示任务ti到出口任务texit之间的未调度的任务数。
在一些实施例中,所述在保证资源需求方面和任务子截止期的限制下,为任务寻找可用的资源虚拟机实例,包括:
合适的虚拟机实例需要满足:在容器生命周期内,虚拟机的可用空闲资源一直都满足任务的计算需求,并且任务的完成时间在子截止期之前;即满足:
EST(tcur)+ET(tcur,vl)≤sdcur
其中,代表虚拟机实例总可用资源向量,代表虚拟机实例在t时刻的可用资源向量,代表了虚拟机实例在t时刻的已用资源向量,在t时刻待分配任务的资源需求向量,EST(ti)代表任务ti的最早开始时间,ET(ti,vl)表示任务ti在虚拟机实例vl上的执行时间;sdi表示任务ti的子截止期,tcur表示的是正在进行调度的任务。
在一些实施例中,所述动态资源选择策略,包括:
定义虚拟机实例的质量Q如下:
其中CS(i,l,t)指的是余弦相似度,其定义如下:
其中m是计算资源种类的数目;代表的是虚拟机实例在t时刻的可用资源向量中的第g种资源的数量,代表的是任务的资源需求向量中第g种资源的数量;pricel是虚拟机实例vl的单价,pricemax代表资源池最昂贵的虚拟机的单价;而θ是一个加权因子,计算公式如下:
其中f代表已完成调度的任务数,n代表有向无环图中的总任务数,用已调度任务与总任务数的比例来代表整个调度完成的程度。
第二方面,本发明提供了一种微服务工作流调度装置,包括处理器及存储介质;
所述存储介质用于存储指令;
所述处理器用于根据所述指令进行操作以执行根据第一方面所述方法的步骤。
第三方面,本发明提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述方法的步骤。
与现有技术相比,本发明所达到的有益效果:
该算法通过采用子截止期划分的方法来对任务的执行时间进行约束,并且合理地对子截止期进行设置,该步骤能够尽量保证每个任务都能在其子截止期内完成,整个工作流从而能够在总的截止期内完成,保证了调度的成功率。接下来是对就绪任务进行优先级排序,这样能够让更容易超出子截止期的任务被有限分配,减少任务的完成时间超出其子截止期的情况。在资源搜索过程中,通过资源和任务的子截止期的限制来在资源池中搜索可用的虚拟机实例,保证了选取的虚拟机实例的可用性。在任务调度过程中,采用动态资源分配策略。该策略依靠随调度进度变化的加权因子,既在调度前期保证了后续任务分配的灵活性,也在调度后期降低了虚拟机单价成本,使得最终的总成本能够大量降低。最后的动态调整过程则是保证整个调度过程能够有序进行。使用了四种科学工作流进行实验评估,本发明提出的算法相较于同类型算法可以获得更高的调度成功率以及更低的调度总成本。
附图说明
图1为本发明实施例工作流示例图;
图2为本发明实施例四种工作流结构示意图;
图3为本发明实施例微服务工作流调度方法流程图;
图4为本发明实施例不同截止期因子条件下调度成功率对比图;
图5为本发明实施例不同截止期因子条件下调度成本对比图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
一种微服务工作流调度方法,包括:
(1)获取输入的工作流应用信息;
(2)对工作流应用信息进行预处理,得到工作流中各个微服务任务的子截止期以及调度优先级,并将此时的就绪任务按照调度优先级放入到就绪队列之中;
(3)从就绪队列中依次取出就绪任务,在保证资源需求方面和任务子截止期的限制下,为任务寻找可用的资源虚拟机实例,并存入可以虚拟机实例集合中;
(4)通过动态资源选择策略在虚拟机实例可用集合中为任务选择合适的虚拟机实例,并将任务放置到虚拟机实例上执行,得到任务的真实执行时间;
(5)响应于任务分配完成,使用任务的真实执行时间来代替预处理过程中使用的平均执行时间,通过在线调整过程对这个任务的后续任务的参数进行更新,并将由于此任务完成所产生的新就绪任务放置到就绪队列之中;
(6)响应于就绪队列为空,调度完成,输出整个调度方案,从而计算此次调度的成功率以及总成本。
在一些实施例中,所述对工作流应用信息进行预处理,包括:
(21)将用户输入的工作流应用转换成有向无环图的形式,并将各个任务的平均执行时间以及有依赖关系的任务之间的数据传输时间填入有向无环图中;
(22)使用任务的平均执行时间代替实际执行时间,计算各个任务的最早开始时间;
(23)通过任务的最早开始时间以及任务之间的数据传输时间来计算任务的升秩,并计算出任务的子截止期;
(24)将就绪任务的放入到就绪队列中,通过得到的子截止期参数计算就绪任务的调度优先级。
在一些具体实施例中,本发明主要研究微服务工作流调度方法,在带有截止期的工作流应用的调度需求下,兼顾调度的成功率与调度的总成本,提出了一种微服务工作流调度方法。参考图3的流程图,具体实施步骤如下所示:
第一步,接收用户提交的带截止期限的工作流应用。
第二步,使用有向无环图模型来表示工作流应用。ti的直接前驱任务用pred(ti)表示,ti的直接后继任务用succ(ti)表示。为了使模型更加一般化,在工作流的开始和末尾分别添加两个负载为零且不能传输任何数据的虚拟计算任务tentry和texit。图1为一个工作流的示例图。
使用TT(ti,tk)来表示任务ti与任务tk间的数据传输时间,定义如下:
其中datai,j表示任务之间需要传输的数据量,BW表示数据中心的平均带宽。如果两个任务如果在同一个虚拟机实例上执行,则它们之间的数据传输时间为0。否则,数据传输时间为任务ti与任务tk间需要传输的数据量和数据中心的平均带宽的比值。令ET(ti,vl)表示任务ti在虚拟机实例vl上的执行时间,任务ti的最早开始时间EST(ti)可以由下式定义:
其中,EST(ti)代表任务ti的最早开始时间,pred(ti)表示ti的直接前驱任务,ET(tk,vl)表示任务tk在虚拟机实例vl上的执行时间;TT(ti,tk)来表示任务ti与任务tk间的数据传输时间;两个任务如果在同一个虚拟机实例上执行,则它们之间的数据传输时间为0;否则,数据传输时间为任务ti与任务tk间需要传输的数据量和数据中心的平均带宽的比值;
采用任务在所有虚拟机实例上的平均执行时间AETi来替代ET(tk,vl)进行初始计算。工作流的开始和末尾的两个负载为零且不能传输任何数据的虚拟计算任务tentry和texit分别表示有向无环图中的入口任务、出口任务。
单个虚拟机实例vl的执行成本cl定义如下:
其中,UTl指的是虚拟机实例vl的使用时间,interval指的是计费时间间隔,一般为一小时,pricel指的是虚拟机实例vl的单价。所以,总成本可以定义为:
工作流的实际完成时间定义为调度长度Makespan,用户给定的截止期记为D。对于有向无环图,由于texit的执行时间为0,所以texit的实际完成时间为工作流的调度长度,即Makespan=FT(texit),FT(texit)为出口任务texit的完成时间。整个问题的优化目标为在满足截止期约束的条件下,降低调度的总成本,如下所示:
min Cost
s.t. Makespan≤D (5)
第三步,子截止期划分环节。
首先引入概念,任务ti的升秩ranku(ti),该值表示任务ti到任务texit之间的关键路径的长度,定义如下:
其中ET(ti,vl)表示任务ti在虚拟机实例vl上的执行时间;TT(ti,tk)来表示任务ti与任务tk间的数据传输时间;succ(ti)表示任务ti的后续任务集合;
对于出口任务texit,ranku(texit)=0。通过这个值,可以递归的求出每一个任务的升秩。通过升秩这个概念,任务ti的子截止期sdi的定义为:
其中D指的是用户提交的截止期,ET(ti,vl)表示任务ti在虚拟机实例vl上的执行时间,tentry指的是有向无环图中的入口任务。
公式(7)使用了任务ti与入口任务tentry的升秩之间的比例来对截止期进行划分,升秩这个概念反映出了任务ti所处于整个工作流的位置以及任务大小。任务距离入口任务越远,ranku(tentry)-ranku(ti)的值就会越大,任务计算量越大,ET(ti,vl)就会越大。这两种情况都会导致子截止期的延长,正符合预期的逻辑,所以采取这种方法分配子截止期是较为合理的。
第四步,就绪任务排序环节,就绪任务的定义为:当一个任务的所有前驱任务都已经被分配到虚拟机实例上执行完毕,且所有数据都已经接收,该任务就被认为是就绪任务。任务一旦成为就绪任务,就会被放入到就绪队列。就绪队列是一个优先队列,使用紧急度这个概念来确定任务的优先级,定义如下:
其中,ui值表示就绪队列中就绪任务的调度紧急度,sdi表示任务ti的子截止期,EST(ti)代表任务ti的最早开始时间,ET(ti,vl)表示任务ti在虚拟机实例vl上的执行时间;ut(ti)表示任务ti到出口任务texit之间的未调度的任务数。sdi与EST(ti)+ET(ti,vl)之间的距离越小,则表明该任务超过子截止期的风险越大。任务ti之后的待调度任务越多,ti的完成时间超出子截止期后导致的延迟对后续的任务影响就会越大。因此,ui值越小,ti的调度紧迫性越高。
第五步,合适的虚拟机实例需要满足:在容器生命周期内,虚拟机的可用空闲资源一直都满足任务的计算需求,并且任务的完成时间在子截止期之前,即满足:
EST(tcur)+ET(tcur,vl)≤sdcur (11)
其中,代表虚拟机实例总可用资源向量,代表虚拟机实例在t时刻的可用资源向量,代表了虚拟机实例在t时刻的已用资源向量,在t时刻待分配任务的资源需求向量,EST(ti)代表任务ti的最早开始时间,ET(ti,vl)表示任务ti在虚拟机实例vl上的执行时间;sdi表示任务ti的子截止期,tcur表示的是正在进行调度的任务。
第六步,现有的算法在为任务选择虚拟机实例时采用的是为当前任务选择最便宜的虚拟机实例的策略或者选取可用资源向量与当前任务资源需求向量之间的余弦相似度最大的虚拟机实例的策略。余弦相似度定义如下:
余弦相似度越大,则说明两个向量越相似,意味着任务如果在这台虚拟机实例上执行,剩余的资源不会被过度消耗。
基于成本的选择策略仅仅考虑了每次选择的虚拟机的成本,忽略了任务异构的资源需求会导致虚拟机实例剩余资源不够均衡的情况,导致在选择时频繁选择新的虚拟机实例,造成成本的增加。基于余弦相似度的选择策略考虑到了基于成本选择策略的不足,在选择时考虑虚拟机实例内部剩余的资源情况,使得后续分配更加具有灵活性。但是这种方法过度地考虑了资源这一因素,而完全忽略了成本因素。随着任务分配过程的进行,后续剩余的未分配任务量越来越少,继续以余弦相似度这个指标进行分配导致的虚拟机数量减少所带来的成本降低远远不及选择高单价的虚拟机实例所带来的成本增加。
考虑到以上两种策略的缺陷,本发明提出动态资源选择策略,定义虚拟机实例的质量Q如下:
其中pricel是虚拟机实例vl的单价,pricemax代表资源池最昂贵的虚拟机的单价。而θ是一个加权因子,计算公式如下:
其中f代表已完成调度的任务数,n代表有向无环图中的总任务数,用已调度任务与总任务数的比例来代表整个调度完成的程度。当处于调度前期时,θ值较小,此时Q主要受到余弦相似度的影响,通过选取Q值大的虚拟机实例,就可以选取到余弦相似度大的虚拟机。此时后续还有较多待调度任务,选择余弦相似度较大的虚拟机就可以为后续的任务分配提供更大的灵活性,有助于减少虚拟机的使用数量。随着调度过程的进行,当来到调度过程的后期时,θ值较大,此时Q主要受到pricemax/pricel项的影响,通过选取Q值大的虚拟机实例,就可以选取到单价低的虚拟机实例。此时后续剩余的待调度任务数量较少,继续以余弦相似度进行分配带来的虚拟机数量减少带来的成本降低远远不及虚拟机的高单价所带来的成本增加。在此时,选取单价较低的虚拟机来完成任务,可以从虚拟机单价方面减少掉不必要的成本。
第七步,在任务调度环节中完成对就绪任务ti的调度后,任务ti的实际执行时间即可得到。由于任务ti的实际执行时间会对其直接后继任务集合succ(ti)中的任务的最早开始时间产生影响,所以此时需要对succ(ti)集合中任务的各类时间参数进行更新。其次,还要检查工作流中受影响的任务节点,判断这些受影响的任务是否已经转变成就绪任务,并将已经成为就绪任务的任务添加到就绪队列之中进行新一轮的排序。同时,在任务分配到虚拟机实例上或者任务执行完成后,对应虚拟机的可用资源向量也需要进行同步更新。
第八步,判断就绪队列是否为空。该过程控制调度过程的终止条件,只有当就绪队列中无任务时,才能说明整个工作流中的任务都已被调度完成,此时能够得到整个调度方案。如果就绪队列中还有任务,则返回资源搜索继续对就绪队列的队首任务进行处理。
第九步,统计前一步获得的调度方案的调度总成本和调度成功率。
为了评估算法处理真实负载的性能,使用了如图2所示的四种的科学工作流应用程序进行测试,包括CyberShake、Epigenomics、LIGO和Montage。
为了衡量调度不同工作流的每种算法的性能,引入两个基准:
(1)最慢(最便宜)的调度方案,即在不考虑截止期的前提下,为所有的任务分配最便宜的虚拟机实例,得到该调度方案花费的总时间MS和总成本CS。
(2)最快(最昂贵)的调度方案,即为所有的任务分配最昂贵的虚拟机实例,得到该调度方案花费的总时间MF和总成本CF。
为了评估算法的敏感度,设置了不同的截止期约束,截止期由严格变化至宽松。工作流的截止期D定义如下:
D=MF+(MS-MF)×λ (15)
其中,λ表示截止期因子,范围从0到1。工作流的截止期D由λ来决定,使得截止期可以在相对的严格到宽松之间变化,λ越大,则代表截止期越宽松。通过以上的设定,可以通过控制截止因子λ的值来设置一个合理的截止期以测试不同算法的性能。
评估算法性能的指标是:
调度成功率SR:算法调度成功率表示成功调度的工作流的数量与工作流总数的比值,定义如下:
标准化成本NC:标准化成本为调度方案的总成本Cost与最便宜调度方案的成本CS的比值,定义如下:
图4和图5分别是不同截止期因子条件下调度成功率对比图与不同截止期因子条件下调度成本对比图。图4与图5中的对比实验组分为使用基于成本的调度策略的IC-PCP算法以及使用基于余弦相似度的调度策略的SMWS算法。在图4的四种工作流条件下,DRSS算法获得的调度成功率普遍高于其他两种算法。在图5中,DRSS算法所花费的调度总成本普遍低于其他两种算法。通过图4和图5可以看出,本发明提出的基于动态资源选择策略的调度算法DRSS在调度成功率与调度总成本两个方面都有相应的改善。
实施例2
第二方面,本实施例提供了一种微服务工作流调度装置,包括处理器及存储介质;
所述存储介质用于存储指令;
所述处理器用于根据所述指令进行操作以执行根据实施例1所述方法的步骤。
实施例3
第三方面,本实施例提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现实施例1所述方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种微服务工作流调度方法,其特征在于,包括:
获取输入的工作流应用信息;
对工作流应用信息进行预处理,得到工作流中各个微服务任务的子截止期以及调度优先级,并将此时的就绪任务按照调度优先级放入到就绪队列之中;
从就绪队列中依次取出就绪任务,在保证资源需求方面和任务子截止期的限制下,为任务寻找可用的资源虚拟机实例,并存入可以虚拟机实例集合中;通过动态资源选择策略在虚拟机实例可用集合中为任务选择合适的虚拟机实例,并将任务放置到虚拟机实例上执行,得到任务的真实执行时间;响应于任务分配完成,使用任务的真实执行时间来代替预处理过程中使用的平均执行时间,通过在线调整过程对这个任务的后续任务的参数进行更新,并将由于此任务完成所产生的新就绪任务放置到就绪队列之中;
响应于就绪队列为空,调度完成。
2.根据权利要求1所述的微服务工作流调度方法,其特征在于,所述对工作流应用信息进行预处理,包括:
将用户输入的工作流应用转换成有向无环图的形式,并将各个任务的平均执行时间以及有依赖关系的任务之间的数据传输时间填入有向无环图中;
使用任务的平均执行时间代替实际执行时间,计算各个任务的最早开始时间;
通过任务的最早开始时间以及任务之间的数据传输时间来计算任务的升秩,并计算出任务的子截止期;
将就绪任务的放入到就绪队列中,通过得到的子截止期参数计算就绪任务的调度优先级。
3.根据权利要求2所述的微服务工作流调度方法,其特征在于,所述将用户输入的工作流应用转换成有向无环图的形式,包括:
工作流模型可以用一个有向无环图DAG来表示,DAG=(T,E);T={t1,t2,…,tn}是有向无环图中节点的集合,每一个节点都代表一个计算任务;E是DAG中边的集合,任务之间的数据依赖关系由相应节点的边eij来进行表示,eij={ti,tj}代表了任务ti和任务tj之间的依赖关系,即任务tj必须在任务ti完成之后方可执行,此时任务ti被称作任务tj的直接前驱任务,而任务tj被称作任务ti的直接后继任务;如果任务之间存在数据传输,在边eij上加上datai,j属性,表示任务之间需要传输的数据量;此时,对任务ti而言,只有当ti的直接前驱任务集合pred(ti)中所有的任务都执行完,且数据都被传输完之后,ti才可以开始执行;所有微服务任务都事先给定执行任务中所需要的计算资源,用需求资源向量表示,其中m是计算资源种类的数目。
4.根据权利要求2所述的微服务工作流调度方法,其特征在于,所述使用任务的平均执行时间代替实际执行时间,计算各个任务的最早开始时间,包括:
任务的最早开始时间定义如下:
其中,EST(ti)代表任务ti的最早开始时间,tentry表示有向无环图中的入口任务,pred(ti)表示ti的直接前驱任务,ET(tk,vl)表示任务tk在虚拟机实例vl上的执行时间;TT(ti,tk)来表示任务ti与任务tk间的数据传输时间;两个任务如果在同一个虚拟机实例上执行,则它们之间的数据传输时间为0;否则,数据传输时间为任务ti与任务tk间需要传输的数据量和数据中心的平均带宽的比值;采用任务在所有虚拟机实例上的平均执行时间AETi来替代ET(tk,vl)进行初始计算。
5.根据权利要求2所述的微服务工作流调度方法,其特征在于,所述通过任务的最早开始时间以及任务之间的数据传输时间来计算任务的升秩,并计算出任务的子截止期,包括:
任务ti的升秩ranku(ti)表示任务ti到出口任务texit之间的关键路径的长度,定义如下:
其中ET(ti,vl)表示任务ti在虚拟机实例vl上的执行时间;TT(ti,tk)来表示任务ti与任务tk间的数据传输时间;succ(ti)表示任务ti的后续任务集合;对于出口任务texit,ranku(texit)=0;通过这个值,递归的求出每一个任务的升秩;通过升秩这个概念,任务ti的子截止期sdi的定义为:
其中D指的是用户提交的截止期,ET(ti,vl)表示任务ti在虚拟机实例vl上的执行时间,tentry指的是有向无环图中的入口任务。
6.根据权利要求2所述的微服务工作流调度方法,其特征在于,所述将就绪任务的放入到就绪队列中,通过得到的子截止期参数计算就绪任务的调度优先级,包括:
就绪任务的定义为:当一个任务的所有前驱任务都已经被分配到虚拟机实例上执行完毕,且所有数据都已经接收,该任务就被认为是就绪任务;任务一旦成为就绪任务,就会被放入到就绪队列;计算出就绪队列中每个就绪任务的调度紧急度
其中,ui值表示就绪队列中就绪任务的调度紧急度,sdi表示任务ti的子截止期,EST(ti)代表任务ti的最早开始时间,ET(ti,vl)表示任务ti在虚拟机实例vl上的执行时间;ut(ti)表示任务ti到出口任务texit之间的未调度的任务数。
7.根据权利要求1所述的微服务工作流调度方法,其特征在于,所述在保证资源需求方面和任务子截止期的限制下,为任务寻找可用的资源虚拟机实例,包括:
合适的虚拟机实例需要满足:在容器生命周期内,虚拟机的可用空闲资源一直都满足任务的计算需求,并且任务的完成时间在子截止期之前;即满足:
EST(tcur)+ET(tcur,vl)≤sdcur
9.一种微服务工作流调度装置,其特征在于,包括处理器及存储介质;
所述存储介质用于存储指令;
所述处理器用于根据所述指令进行操作以执行根据权利要求1至8任一项所述方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210534598.7A CN115033357A (zh) | 2022-05-17 | 2022-05-17 | 基于动态资源选择策略的微服务工作流调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210534598.7A CN115033357A (zh) | 2022-05-17 | 2022-05-17 | 基于动态资源选择策略的微服务工作流调度方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115033357A true CN115033357A (zh) | 2022-09-09 |
Family
ID=83121837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210534598.7A Pending CN115033357A (zh) | 2022-05-17 | 2022-05-17 | 基于动态资源选择策略的微服务工作流调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115033357A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115599557A (zh) * | 2022-12-12 | 2023-01-13 | 华南理工大学(Cn) | 一种考虑任务重要程度动态变化的调度器系统 |
CN116149828A (zh) * | 2023-04-19 | 2023-05-23 | 南京信息工程大学 | 一种基于动态可调整子截止日期的云工作流调度方法 |
CN116414541A (zh) * | 2023-05-26 | 2023-07-11 | 摩尔线程智能科技(北京)有限责任公司 | 兼容多种任务工作模式的任务执行方法和装置 |
-
2022
- 2022-05-17 CN CN202210534598.7A patent/CN115033357A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115599557A (zh) * | 2022-12-12 | 2023-01-13 | 华南理工大学(Cn) | 一种考虑任务重要程度动态变化的调度器系统 |
CN116149828A (zh) * | 2023-04-19 | 2023-05-23 | 南京信息工程大学 | 一种基于动态可调整子截止日期的云工作流调度方法 |
CN116414541A (zh) * | 2023-05-26 | 2023-07-11 | 摩尔线程智能科技(北京)有限责任公司 | 兼容多种任务工作模式的任务执行方法和装置 |
CN116414541B (zh) * | 2023-05-26 | 2023-09-05 | 摩尔线程智能科技(北京)有限责任公司 | 兼容多种任务工作模式的任务执行方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107301500B (zh) | 一种基于关键路径任务前瞻的工作流调度方法 | |
CN115033357A (zh) | 基于动态资源选择策略的微服务工作流调度方法及装置 | |
CN112084002B (zh) | 云环境下微服务系统的弹性伸缩方法、系统、介质及设备 | |
US8997107B2 (en) | Elastic scaling for cloud-hosted batch applications | |
CN111756812A (zh) | 一种能耗感知的边云协同动态卸载调度方法 | |
CN111367644B (zh) | 一种面向异构融合系统的任务调度方法及装置 | |
Zhu et al. | A cost-effective scheduling algorithm for scientific workflows in clouds | |
CN106775932B (zh) | 一种云计算系统中随机事件触发的实时工作流调度方法 | |
CN110689262B (zh) | 天基信息系统任务调度方法、装置和电子设备 | |
CN111861412B (zh) | 面向完成时间优化的科学工作流调度方法及系统 | |
CN107193655B (zh) | 一种基于效用函数的面向大数据处理的公平资源调度方法 | |
Chakravarthi et al. | TOPSIS inspired budget and deadline aware multi-workflow scheduling for cloud computing | |
CN112416585A (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
Ding et al. | QoS-constrained service selection for networked microservices | |
CN114217966A (zh) | 基于资源调整的深度学习模型动态批处理调度方法和系统 | |
Ghasemzadeh et al. | Deadline-budget constrained scheduling algorithm for scientific workflows in a cloud environment | |
CN106407007B (zh) | 面向弹性分析流程的云资源配置优化方法 | |
US8281313B1 (en) | Scheduling computer processing jobs that have stages and precedence constraints among the stages | |
CN117519930A (zh) | 批量任务的执行方法、装置及电子设备 | |
CN116069473A (zh) | 一种基于深度强化学习的Yarn集群工作流调度方法 | |
CN110008002B (zh) | 基于平稳分布概率的作业调度方法、装置、终端和介质 | |
Djigal et al. | BUDA: Budget and deadline aware scheduling algorithm for task graphs in heterogeneous systems | |
Zhu et al. | High-Throughput Scientific Workflow Scheduling under Deadline Constraint in Clouds. | |
CN113064710B (zh) | 一种云工作流调度方法及系统 | |
CN114489926B (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 |