CN105808346B - 一种任务调度方法与装置 - Google Patents

一种任务调度方法与装置 Download PDF

Info

Publication number
CN105808346B
CN105808346B CN201410853237.4A CN201410853237A CN105808346B CN 105808346 B CN105808346 B CN 105808346B CN 201410853237 A CN201410853237 A CN 201410853237A CN 105808346 B CN105808346 B CN 105808346B
Authority
CN
China
Prior art keywords
task
run
node
memory
destination node
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
CN201410853237.4A
Other languages
English (en)
Other versions
CN105808346A (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.)
Shenzhen Huawei Cloud Computing Technology Co ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410853237.4A priority Critical patent/CN105808346B/zh
Publication of CN105808346A publication Critical patent/CN105808346A/zh
Application granted granted Critical
Publication of CN105808346B publication Critical patent/CN105808346B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种任务调度方法,用于保证分布式系统中的工作任务能够顺利执行。本发明实施例方法包括:确定待运行的任务、确定所述待运行的任务所需内存的估算值、确定目的节点,并将所述待运行的任务调度到所述目的节点上运行,所述目的节点的剩余内存不小于所述估算值。本发明实施例根据节点的内存来进行任务调度,将剩余内存大于工作任务所需内存的节点作为调度工作任务的目的节点,保证了目的节点的内存一定能够满足调度到目的节点上的工作任务的需要,能够保证工作任务的顺利执行。本发明实施例还提供了相关的任务调度装置。

Description

一种任务调度方法与装置
技术领域
本发明涉及信息处理领域,尤其涉及一种任务调度方法与装置。
背景技术
分布式计算系统作为一种廉价、高效、维护方便的计算系统,在实际应用中具有重要价值。任务调度和资源管理是分布式计算系统的重要功能,能够高效的进行资源管理的任务调度的平台对整个分布式计算系统的性能有着重要影响。
现有的分布式计算系统在进行任务调度时,考虑的主要因素为系统集群中节点的核数。例如,若当前有3个工作任务等待并行调度,则分布式计算系统需要在集群的节点中寻找核数不小于3的节点,并将该3个任务调度到寻找到的节点上。
但是节点处理工作任务的能力是有限,当同时处理多个工作任务的时候,节点的内存资源很可能不能满足该多个工作任务的需要,导致工作任务执行失败。
发明内容
本发明实施例提供了一种任务调度方法,用于保证分布式系统中的工作任务能够顺利执行。
本发明实施例的第一方面提供了一种任务调度方法,适用于分布式系统,包括:
确定待运行的任务;
确定所述待运行的任务所需内存的估算值;
确定目的节点,并将所述待运行的任务调度到所述目的节点上运行,所述目的节点的剩余内存不小于所述估算值。
结合本发明实施例的第一方面,本发明实施例的第一方面的第一种实现方式中,所述确定待运行的任务包括:
接收客户端下发的执行指令,所述执行指令包括待执行的应用的执行指示;
将所述待执行的应用分解为一个或多个执行阶段,并将其中的一个执行阶段分解为一个或多个工作任务,将所述一个或多个工作任务中的一个工作任务确定为待运行的任务。
结合本发明实施例的第一方面的第一种实现方式,本发明实施例的第一方面的第二种实现方式中,所述确定所述待运行的任务所需内存的估算值包括:
若所述待运行的任务不为所述一个或多个工作任务中首个运行的工作任务,则根据所述一个或多个工作任务中,已运行的工作任务所占用的内存大小,确定所述待运行的任务所需内存的估算值。
结合本发明实施例的第一方面的第二种实现方式,本发明实施例的第一方面的第三种实现方式中,所述执行指令还包括内存初始估计值;
所述确定所述待运行的任务所需内存的估算值还包括:
若所述待运行的任务为所述一个或多个工作任务中首个运行的工作任务,则将所述内存初始估计值确定为所述待运行的任务所需内存的估算值。
结合本发明实施例的第一方面、或第一方面的第一种至第三种实现方式中的任一项,本发明实施例的第一方面的第四种实现方式中,所述确定目的节点包括:
若当前集群的节点中存在剩余内存不小于所述估算值的节点,则将所述剩余内存不小于所述估算值的节点中的一个节点确定为目的节点;
若当前集群的节点中不存在剩余内存不小于所述估算值的节点,则将当前集群的节点中剩余内存最大的节点确定为目的节点,并待所述目的节点的剩余内存不小于所述估算值时,再触发所述将所述待运行的任务调度到所述目的节点上运行的步骤。
结合本发明实施例的第一方面、或第一方面的第一种至第四种实现方式中的任一项,本发明实施例的第一方面的第五种实现方式中,所述将所述待运行的任务调度到所述目的节点上运行之后还包括:
若所述待运行的任务未成功调度到所述目的节点上,则判断所述待运行的任务调度失败的原因是否为目的节点的剩余内存不足;
若确定所述待运行的任务调度失败的原因为目的节点的剩余内存不足,则增大所述估算值,并再次触发所述确定目的节点的步骤。
本发明实施例的第二方面提供了一种任务调度装置,适用于分布式系统,包括:
任务确定模块,用于确定待运行的任务;
内存估算模块,用于确定所述待运行的任务所需内存的估算值;
节点确定模块,用于确定目的节点,并将所述待运行的任务调度到所述目的节点上运行,所述目的节点的剩余内存不小于所述估算值。
结合本发明实施例的第二方面,本发明实施例的第二方面的第一种实现方式中,所述任务确定模块包括:
指令接收单元,用于接收客户端下发的执行指令,所述执行指令包括待执行的应用的执行指示;
任务确定单元,用于将所述待执行的应用分解为一个或多个执行阶段,并将其中的一个执行阶段分解为一个或多个工作任务,将所述一个或多个工作任务中的一个工作任务确定为待运行的任务。
结合本发明实施例的第二方面的第一种实现方式,本发明实施例的第二方面的第二种实现方式中,所述内存估算模块具体用于:
若所述待运行的任务不为所述一个或多个工作任务中首个运行的工作任务,则根据所述一个或多个工作任务中,已运行的工作任务所占用的内存大小,确定所述待运行的任务所需内存的估算值。
结合本发明实施例的第二方面的第二种实现方式,本发明实施例的第二方面的第三种实现方式中,所述执行指令还包括内存初始估计值;
所述内存估算模块还用于:
若所述待运行的任务为所述一个或多个工作任务中首个运行的工作任务,则将所述内存初始估计值确定为所述待运行的任务所需内存的估算值。
结合本发明实施例的第二方面、或第二方面的第一种至第三种实现方式中的任一项,本发明实施例的第二方面的第四种实现方式中,所述节点确定模块具体用于:
若当前集群的节点中存在剩余内存不小于所述估算值的节点,则将所述剩余内存不小于所述估算值的节点中的一个节点确定为目的节点;
若当前集群的节点中不存在剩余内存不小于所述估算值的节点,则将当前集群的节点中剩余内存最大的节点确定为目的节点,并待所述目的节点的剩余内存不小于所述估算值时,再触发所述将所述待运行的任务调度到所述目的节点上运行的步骤。
结合本发明实施例的第二方面、或第二方面的第一种至第四种实现方式中的任一项,本发明实施例的第二方面的第五种实现方式中,所述装置还包括:
原因判断模块,用于在所述节点确定模块将所述待运行的任务调度到所述目的节点上运行之后,所述待运行的任务未成功调度到所述目的节点上时,判断所述待运行的任务调度失败的原因是否为目的节点的剩余内存不足;
参数更改模块,用于当确定所述待运行的任务调度失败的原因为目的节点的剩余内存不足时,增大所述估算值,并再次触发所述节点确定模块确定目的节点的步骤。
本发明实施例提供的任务调度方法包括确定待运行的任务、确定所述待运行的任务所需内存的估算值、确定目的节点,并将所述待运行的任务调度到所述目的节点上运行,所述目的节点的剩余内存不小于所述估算值。本发明实施例根据节点的内存来进行任务调度,将剩余内存大于工作任务所需内存的节点作为调度工作任务的目的节点,保证了目的节点的内存一定能够满足调度到目的节点上的工作任务的需要,能够保证工作任务的顺利执行。
附图说明
图1为本发明实施例中任务调度方法一个实施例流程图;
图2为本发明实施例中任务调度方法另一个实施例流程图;
图3为本发明实施例中任务调度方法另一个实施例流程图;
图4为本发明实施例中任务调度装置一个实施例流程图;
图5为本发明实施例中任务调度装置另一个实施例流程图;
图6为本发明实施例中任务调度装置另一个实施例流程图;
图7为本发明实施例中任务调度装置另一个实施例流程图。
具体实施方式
本发明实施例提供了一种任务调度方法,用于保证分布式系统中的工作任务能够顺利执行。本发明实施例还提供了相关的任务调度装置,下面将分别进行描述。
本发明实施例提供的任务调度方法的基本流程请参阅图1,包括:
101、确定待运行的任务;
在分布式系统中,任务调度装置确定待运行的任务。其确定方法有很多,将在后面的实施例中详述,此处不做限定。
本实施例中,待运行的任务可以是一个任务,也可以是多个任务,此处不做限定。
102、确定待运行的任务所需内存的估算值;
任务调度装置确定了待运行的任务后,确定待运行的任务所需的内存的估算值。其确定方法有很多,可以由客户端下发该估算值,也可以由任务调度装置自主确定该估算值,具体将在后面的实施例中详述,此处不做限定。
103、确定目的节点,并将待运行的任务调度到目的节点上运行。
任务调度装置确定了待运行的任务所需的内存的估算值后,在分布式系统当前集群的节点中选取一个剩余内存不小于该估算值的节点作为目的节点,并将该待运行的任务调度到目的节点上运行。
可选的,本实施中,任务调度装置在确定目的节点时,也可以同现有技术一样将节点的核数纳入考虑范围,将剩余内存不小于估算值且核数满足要求的节点确定为目的节点。任务调度装置在确定目的节点时也可以考虑其他因素,本实施例中不做限定。
本实施例提供的任务调度方法包括确定待运行的任务、确定所述待运行的任务所需内存的估算值、确定目的节点,并将所述待运行的任务调度到所述目的节点上运行,所述目的节点的剩余内存不小于所述估算值。本实施例根据节点的内存来进行任务调度,将剩余内存大于工作任务所需内存的节点作为调度工作任务的目的节点,保证了目的节点的内存一定能够满足调度到目的节点上的工作任务的需要,能够保证工作任务的顺利执行。
图1所示的实施例给出了本发明提供的任务调度方法的基本流程,下面将详细解释该流程的每个步骤,请参阅图2,本发明提供的又一种任务调度方法的基本流程包括:
201、接收客户端下发的执行指令;
客户端需要运行待执行的应用时,会向任务调度装置下发执行指令,该执行指令包括待执行的应用的执行指示。任务调度装置接收该执行指令。
202、将待执行的应用分解为一个或多个执行阶段,并将其中的一个执行阶段分解为一个或多个工作任务,将该一个或多个工作任务中的一个工作任务确定为待运行的任务;
图1所示的实施例没有对待运行的任务的个数做出限定,本实施中,限定待运行的任务只为一个工作任务。具体的,任务调度装置将待执行的应用分解为一个或多个执行阶段,并将其中的一个执行阶段分解为一个或多个工作任务,将该一个或多个工作任务中的一个工作任务确定为待运行的任务。
203、确定待运行的任务所需内存的估算值;
任务调度装置确定了待运行的任务后,确定待运行的任务所需的内存的估算值。
步骤202中限定了待运行的任务只为一个工作任务,本步骤也可以随之进行进一步的细化。可选的,由于同一执行阶段的工作任务的类型往往类似,因此运行同一执行阶段的工作任务所需的内存也往往大致相同。因此,若待运行的任务不为其所属的执行阶段的工作任务中首个运行的工作任务,则任务调度装置可以根据该执行阶段的工作任务中,已运行的工作任务所占用的内存大小,确定待运行的任务所需内存的估算值。具体的确定方法有很多,例如将该执行阶段的工作任务中,已运行的工作任务所占用的内存大小的平均值确定为待运行的任务所需内存的估算值;或,将该执行阶段的工作任务中,任一已运行的工作任务所占用的内存大小确定为待运行的任务所需内存的估算值,也可以为其他确定方法,此处不做限定。
若待运行的任务为其所属的执行阶段的工作任务中首个运行的工作任务,则无法使用上一段所说的方法确定所需内存的估计值。在这种场景下,可选的,客户端在下发执行指令时,可以在执行指令中携带内存初始估计值,任务调度装置将该内存初始估计值确定为待运行的任务所需内存的估算值。
任务调度装置也可以采用其他方法确定待运行的任务所需内存的估算值,本实施例中不做限定。
204、确定目的节点,并将待运行的任务调度到目的节点上运行。
任务调度装置确定了待运行的任务所需内存的估算值后,确定目的节点,并将待运行的任务调度到目的节点上运行。可选的,本实施例中采用如下方法确定目的节点:
若当前集群的节点中存在剩余内存不小于该估算值的节点,则任务调度装置将剩余内存不小于所述估算值的节点中的一个节点确定为目的节点;
若当前集群的节点中不存在剩余内存不小于所述估算值的节点,则任务调度装置将当前集群的节点中剩余内存最大的节点确定为目的节点,并停止向该目的节点调度新的工作任务。当该目的节点运行的旧的工作任务逐渐执行完毕,释放出内存资源,使得该节点的剩余内存不小于该估算值时,任务调度装置再将待运行的任务调度到该目的节点上运行。
本实施例也可以采用其他方法确定目的节点,此处不做限定。
本实施例在图1所示的实施例的基础上提供了一种更为详细的任务调度方法,其中,任务调度装置接收客户端下发的执行指令;将待执行的应用分解为一个或多个执行阶段,并将其中的一个执行阶段分解为一个或多个工作任务,将该一个或多个工作任务中的一个工作任务确定为待运行的任务;确定待运行的任务所需内存的估算值;确定目的节点,并将待运行的任务调度到目的节点上运行。本实施例根据节点的内存来进行任务调度,将剩余内存大于工作任务所需内存的节点作为调度工作任务的目的节点,保证了目的节点的内存一定能够满足调度到目的节点上的工作任务的需要,能够保证工作任务的顺利执行。
在实际应用中,分布式系统进行任务调度会具有一定的失败比率。下面将在图2所示的实施例的基础上,提供一种可以降低任务调度失败比率的任务调度方法,请参阅图3,其流程包括:
301、接收客户端下发的执行指令;
302、将待执行的应用分解为一个或多个执行阶段,并将其中的一个执行阶段分解为一个或多个工作任务,将该一个或多个工作任务中的一个工作任务确定为待运行的任务;
303、确定待运行的任务所需内存的估算值;
304、确定目的节点,并将待运行的任务调度到目的节点上运行;
步骤301至304与步骤201至204基本相同,此处不做限定。
若步骤304中,待运行的任务未成功调度到目的节点上,则执行步骤305。
305、判断待运行的任务调度失败的原因是否为目的节点的剩余内存不足;
分布式系统中,任务调度失败有很多原因,例如节点的剩余内存不足,不够调度任务、或进程异常终止、或磁盘访问失败等。本实施例中,若待运行的任务未成功调度到目的节点上,则任务调度装置判断待运行的任务调度失败的原因是否为目的节点的剩余内存不足。
若资源调度装置确定待运行的任务调度失败的原因为目的节点的剩余内存不足,则执行步骤306。
306、增大估算值。
若资源调度装置确定待运行的任务调度失败的原因为目的节点的剩余内存不足,则说明步骤303中计算得到的待运行的任务所需内存的估算值过小,不足以运行该待运行的任务。因此任务调度装置增大步骤303中计算得到的估算值,例如将该估算值倍乘1.5,作为新的估算值,并使用该新的估算值再次触发步骤304中确定目的节点的操作。
本实施例在图2所示的实施例的基础上提供了一种更为详细的任务调度方法,其中,任务调度装置接收客户端下发的执行指令;将待执行的应用分解为一个或多个执行阶段,并将其中的一个执行阶段分解为一个或多个工作任务,将该一个或多个工作任务中的一个工作任务确定为待运行的任务;确定待运行的任务所需内存的估算值;确定目的节点,并将待运行的任务调度到目的节点上运行。若待运行的任务未成功调度到目的节点上,则判断待运行的任务调度失败的原因是否为目的节点的剩余内存不足,若是,则增大估算值,并使用该新的估算值再次触发确定目的节点的操作。本实施例根据节点的内存来进行任务调度,将剩余内存大于工作任务所需内存的节点作为调度工作任务的目的节点,保证了目的节点的内存一定能够满足调度到目的节点上的工作任务的需要,能够保证工作任务的顺利执行。且若任务因目的节点的剩余内存不足而调度失败,则增大所需内存的估算值并重新确定目的几点。这样可以避免因所需内存的估算值估算的过小而造成的待运行的任务调度失败的问题,提高任务调度成功比率。
上面的实施例详细解释了本发明提供的任务调度方法的基本流程,下面将以一个具体的应用场景为例进行描述。
分布式系统中,任务调度装置接收用户通过客户端下发的执行指令,该执行指令包括应用A的执行指示。
任务调度装置将应用A分解为3个执行阶段:阶段一、阶段二、阶段三,并将阶段一分解为4个工作任务:任务1、任务2、任务3和任务4。在某时刻,任务1与任务2已经运行完成,任务调度装置将任务3确定为待运行的任务。
任务调度装置估算运行任务3所需的内存,具体的,任务1运行时所占用的内存为100M,任务2运行时所占用的内存为200M,任务调度装置将任务1与任务2所占用的内存的平均值150M作为任务3所需内存的估算值。
当前集群的节点中有10个剩余内存大于150M的节点,任务调度装置将其中的节点X确定为目的节点,并将任务3调度到节点X上运行。
但是在上一段的步骤中,任务3没有成功调度到节点X上。任务调度装置确定任务3调度失败的原因为节点X的剩余内存不足,因此将任务3所需内存的估算值由150M增大到200M。
当前集群的节点中有5剩余内存大于200M的节点,任务调度装置将其中的节点Y确定为新的目的节点,并成功的将任务3调度到节点Y上运行。
本发明实施例还提供了一种任务调度装置装置,用于实现上面的实施例所描述的任务调度方法。其基本结构请参阅图4,包括:
任务确定模块401,用于确定待运行的任务;
内存估算模块402,用于确定待运行的任务所需内存的估算值;
节点确定模块403,用于确定目的节点,并将待运行的任务调度到目的节点上运行,其中目的节点的剩余内存不小于估算值。
本实施例中,任务确定模块401确定待运行的任务、内存估算模块402确定所述待运行的任务所需内存的估算值、节点确定模块403确定目的节点,并将所述待运行的任务调度到所述目的节点上运行,所述目的节点的剩余内存不小于所述估算值。本实施例提供的任务调度装置根据节点的内存来进行任务调度,将剩余内存大于工作任务所需内存的节点作为调度工作任务的目的节点,保证了目的节点的内存一定能够满足调度到目的节点上的工作任务的需要,能够保证工作任务的顺利执行。
图4所示的实施例给出了本发明提供的任务调度装置的基本结构,下面将详细解释任务确定模块的具体结构,请参阅图5,本发明提供的又一种任务调度装置的基本结构包括:
任务确定模块501,用于确定待运行的任务。本实施例中,任务确定模块501具体包括:
指令接收单元5011,用于接收客户端下发的执行指令,该执行指令包括待执行的应用的执行指示;
任务确定单元5012,用于将所待执行的应用分解为一个或多个执行阶段,并将其中的一个执行阶段分解为一个或多个工作任务,将该一个或多个工作任务中的一个工作任务确定为待运行的任务。
内存估算模块502,用于确定待运行的任务所需内存的估算值;
节点确定模块503,用于确定目的节点,并将待运行的任务调度到目的节点上运行,其中目的节点的剩余内存不小于估算值。
本实施例在图4所示的实施例的基础上提供了一种更为详细的任务调度装置,其中,指令接收单元5011接收客户端下发的执行指令;任务确定单元5012将待执行的应用分解为一个或多个执行阶段,并将其中的一个执行阶段分解为一个或多个工作任务,将该一个或多个工作任务中的一个工作任务确定为待运行的任务;内存估算模块502确定待运行的任务所需内存的估算值;节点确定模块503确定目的节点,并将待运行的任务调度到目的节点上运行。本实施例提供的任务调度装置根据节点的内存来进行任务调度,将剩余内存大于工作任务所需内存的节点作为调度工作任务的目的节点,保证了目的节点的内存一定能够满足调度到目的节点上的工作任务的需要,能够保证工作任务的顺利执行。
优选的,作为本发明的又一个实施例,内存估算模块502具体可以用于:若待运行的任务不为该一个或多个工作任务中首个运行的工作任务,则根据该一个或多个工作任务中,已运行的工作任务所占用的内存大小,确定待运行的任务所需内存的估算值。
优选的,作为本发明的又一个实施例,执行指令还包括内存初始估计值;内存估算模块502具体还可以用于:若待运行的任务为该一个或多个工作任务中首个运行的工作任务,则将内存初始估计值确定为待运行的任务所需内存的估算值。
优选的,作为本发明的又一个实施例,节点确定模块503具体可以用于:若当前集群的节点中存在剩余内存不小于估算值的节点,则将该剩余内存不小于该估算值的节点中的一个节点确定为目的节点;若当前集群的节点中不存在剩余内存不小于该估算值的节点,则将当前集群的节点中剩余内存最大的节点确定为目的节点,并待该目的节点的剩余内存不小于该估算值时,再触发将待运行的任务调度到目的节点上运行的步骤。
在实际应用中,分布式系统进行任务调度会具有一定的失败比率。下面将在图5所示的实施例的基础上,提供一种可以降低任务调度失败比率的任务调度装置,请参阅图6,其结构包括:
任务确定模块601,用于确定待运行的任务。本实施例中,任务确定模块501具体包括:
指令接收单元6011,用于接收客户端下发的执行指令,该执行指令包括待执行的应用的执行指示;
任务确定单元6012,用于将所待执行的应用分解为一个或多个执行阶段,并将其中的一个执行阶段分解为一个或多个工作任务,将该一个或多个工作任务中的一个工作任务确定为待运行的任务。
内存估算模块602,用于确定待运行的任务所需内存的估算值;
节点确定模块603,用于确定目的节点,并将待运行的任务调度到目的节点上运行,其中目的节点的剩余内存不小于估算值
任务确定模块601、指令接收单元6011、任务确定单元6012、内存估算模块602、节点确定模块603与图5所示的实施例中对应的模块或单元基本相同,此处不做赘述。
原因判断模块604,用于在节点确定模块603将待运行的任务调度到目的节点上运行之后,待运行的任务未成功调度到目的节点上时,判断待运行的任务调度失败的原因是否为目的节点的剩余内存不足;
参数更改模块605,用于当确定待运行的任务调度失败的原因为目的节点的剩余内存不足时,增大该估算值,并再次触发节点确定模块603确定目的节点的步骤。
本实施例在图5所示的实施例的基础上提供了一种更为详细的任务调度装置,其中,指令接收单元6011接收客户端下发的执行指令;任务确定单元6012将待执行的应用分解为一个或多个执行阶段,并将其中的一个执行阶段分解为一个或多个工作任务,将该一个或多个工作任务中的一个工作任务确定为待运行的任务;内存估算模块602确定待运行的任务所需内存的估算值;节点确定模块603确定目的节点,并将待运行的任务调度到目的节点上运行。若待运行的任务未成功调度到目的节点上,则原因判断模块604判断待运行的任务调度失败的原因是否为目的节点的剩余内存不足,若是,则参数更改模块605增大估算值,并使用该新的估算值再次触发确定目的节点的操作。本实施例提供的任务调度装置根据节点的内存来进行任务调度,将剩余内存大于工作任务所需内存的节点作为调度工作任务的目的节点,保证了目的节点的内存一定能够满足调度到目的节点上的工作任务的需要,能够保证工作任务的顺利执行。且若任务因目的节点的剩余内存不足而调度失败,则增大所需内存的估算值并重新确定目的几点。这样可以避免因所需内存的估算值估算的过小而造成的待运行的任务调度失败的问题,提高任务调度成功比率。
上面的实施例详细解释了本发明提供的任务调度装置的基本结构,下面将以一个具体的应用场景为例进行描述。
分布式系统中,指令接收单元6011接收用户通过客户端下发的执行指令,该执行指令包括应用A的执行指示。
任务确定单元6012将应用A分解为3个执行阶段:阶段一、阶段二、阶段三,并将阶段一分解为4个工作任务:任务1、任务2、任务3和任务4。在某时刻,任务1与任务2已经运行完成,任务确定单元6012将任务3确定为待运行的任务。
内存估算模块602估算运行任务3所需的内存,具体的,任务1运行时所占用的内存为100M,任务2运行时所占用的内存为200M,内存估算模块602将任务1与任务2所占用的内存的平均值150M作为任务3所需内存的估算值。
当前集群的节点中有10个剩余内存大于150M的节点,节点确定模块603将其中的节点X确定为目的节点,并将任务3调度到节点X上运行。
但是在上一段的步骤中,任务3没有成功调度到节点X上。原因判断模块604确定任务3调度失败的原因为节点X的剩余内存不足,因此将任务3所需内存的估算值由150M增大到200M。
当前集群的节点中有5剩余内存大于200M的节点,参数更改模块605将其中的节点Y确定为新的目的节点,并成功的将任务3调度到节点Y上运行。
上面从单元化功能实体的角度对本发明实施例中的任务调度装置进行了描述,下面从硬件处理的角度对本发明实施例中的任务调度装置进行描述,请参阅图7,本发明实施例中的任务调度装置700另一实施例包括:
输入装置701、输出装置702、处理器703和存储器704(其中任务调度装置700中的处理器703的数量可以一个或多个,图7中以一个处理器703为例)。在本发明的一些实施例中,输入装置701、输出装置702、处理器703和存储器704可通过总线或其它方式连接,其中,图7中以通过总线连接为例。
其中,通过调用存储器704存储的操作指令,处理器703用于执行如下步骤:
确定待运行的任务;
确定所述待运行的任务所需内存的估算值;
确定目的节点,并将所述待运行的任务调度到所述目的节点上运行,所述目的节点的剩余内存不小于所述估算值。
本发明的一些实施例中,处理器703还执行如下步骤:
接收客户端下发的执行指令,所述执行指令包括待执行的应用的执行指示;
将所述待执行的应用分解为一个或多个执行阶段,并将其中的一个执行阶段分解为一个或多个工作任务,将所述一个或多个工作任务中的一个工作任务确定为待运行的任务。
本发明的一些实施例中,处理器703还执行如下步骤:
若所述待运行的任务不为所述一个或多个工作任务中首个运行的工作任务,则根据所述一个或多个工作任务中,已运行的工作任务所占用的内存大小,确定所述待运行的任务所需内存的估算值。
本发明的一些实施例中,所述执行指令还包括内存初始估计值,处理器703还执行如下步骤:
若所述待运行的任务为所述一个或多个工作任务中首个运行的工作任务,则将所述内存初始估计值确定为所述待运行的任务所需内存的估算值。
本发明的一些实施例中,处理器703还执行如下步骤:若当前集群的节点中存在剩余内存不小于所述估算值的节点,则将所述剩余内存不小于所述估算值的节点中的一个节点确定为目的节点;
若当前集群的节点中不存在剩余内存不小于所述估算值的节点,则将当前集群的节点中剩余内存最大的节点确定为目的节点,并待所述目的节点的剩余内存不小于所述估算值时,再触发所述将所述待运行的任务调度到所述目的节点上运行的步骤。
本发明的一些实施例中,处理器703还执行如下步骤:
若所述待运行的任务未成功调度到所述目的节点上,则判断所述待运行的任务调度失败的原因是否为目的节点的剩余内存不足;
若确定所述待运行的任务调度失败的原因为目的节点的剩余内存不足,则增大所述估算值,并再次触发所述确定目的节点的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (11)

1.一种任务调度方法,适用于分布式系统,其特征在于,包括:
确定待运行的任务;
确定所述待运行的任务所需内存的估算值;
确定目的节点,并将所述待运行的任务调度到所述目的节点上运行,所述目的节点的剩余内存不小于所述估算值,以使得所述目的节点的内存满足调度到所述目的节点上的工作任务的需要;
所述将所述待运行的任务调度到所述目的节点上运行之后还包括:
若所述待运行的任务未成功调度到所述目的节点上,则判断所述待运行的任务调度失败的原因是否为目的节点的剩余内存不足;
若确定所述待运行的任务调度失败的原因为目的节点的剩余内存不足,则增大所述估算值,并再次触发所述确定目的节点的步骤。
2.根据权利要求1所述的任务调度方法,其特征在于,所述确定待运行的任务包括:
接收客户端下发的执行指令,所述执行指令包括待执行的应用的执行指示;
将所述待执行的应用分解为一个或多个执行阶段,并将其中的一个执行阶段分解为一个或多个工作任务,将所述一个或多个工作任务中的一个工作任务确定为待运行的任务。
3.根据权利要求2所述的任务调度方法,其特征在于,所述确定所述待运行的任务所需内存的估算值包括:
若所述待运行的任务不为所述一个或多个工作任务中首个运行的工作任务,则根据所述一个或多个工作任务中,已运行的工作任务所占用的内存大小,确定所述待运行的任务所需内存的估算值。
4.根据权利要求3所述的任务调度方法,其特征在于,所述执行指令还包括内存初始估计值;
所述确定所述待运行的任务所需内存的估算值还包括:
若所述待运行的任务为所述一个或多个工作任务中首个运行的工作任务,则将所述内存初始估计值确定为所述待运行的任务所需内存的估算值。
5.根据权利要求1至4中任一项所述的任务调度方法,其特征在于,所述确定目的节点包括:
若当前集群的节点中存在剩余内存不小于所述估算值的节点,则将所述剩余内存不小于所述估算值的节点中的一个节点确定为目的节点;
若当前集群的节点中不存在剩余内存不小于所述估算值的节点,则将当前集群的节点中剩余内存最大的节点确定为目的节点,并待所述目的节点的剩余内存不小于所述估算值时,再触发所述将所述待运行的任务调度到所述目的节点上运行的步骤。
6.一种任务调度装置,适用于分布式系统,其特征在于,包括:
任务确定模块,用于确定待运行的任务;
内存估算模块,用于确定所述待运行的任务所需内存的估算值;
节点确定模块,用于确定目的节点,并将所述待运行的任务调度到所述目的节点上运行,所述目的节点的剩余内存不小于所述估算值,以使得所述目的节点的内存满足调度到所述目的节点上的工作任务的需要;
所述装置还包括:
原因判断模块,用于在所述节点确定模块将所述待运行的任务调度到所述目的节点上运行之后,所述待运行的任务未成功调度到所述目的节点上时,判断所述待运行的任务调度失败的原因是否为目的节点的剩余内存不足;
参数更改模块,用于当确定所述待运行的任务调度失败的原因为目的节点的剩余内存不足时,增大所述估算值,并再次触发所述节点确定模块确定目的节点的步骤。
7.根据权利要求6所述的任务调度装置,其特征在于,所述任务确定模块包括:
指令接收单元,用于接收客户端下发的执行指令,所述执行指令包括待执行的应用的执行指示;
任务确定单元,用于将所述待执行的应用分解为一个或多个执行阶段,并将其中的一个执行阶段分解为一个或多个工作任务,将所述一个或多个工作任务中的一个工作任务确定为待运行的任务。
8.根据权利要求7所述的任务调度装置,其特征在于,所述内存估算模块具体用于:
若所述待运行的任务不为所述一个或多个工作任务中首个运行的工作任务,则根据所述一个或多个工作任务中,已运行的工作任务所占用的内存大小,确定所述待运行的任务所需内存的估算值。
9.根据权利要求8所述的任务调度装置,其特征在于,所述执行指令还包括内存初始估计值;
所述内存估算模块还用于:
若所述待运行的任务为所述一个或多个工作任务中首个运行的工作任务,则将所述内存初始估计值确定为所述待运行的任务所需内存的估算值。
10.根据权利要求6至9中任一项所述的任务调度装置,其特征在于,所述节点确定模块具体用于:
若当前集群的节点中存在剩余内存不小于所述估算值的节点,则将所述剩余内存不小于所述估算值的节点中的一个节点确定为目的节点;
若当前集群的节点中不存在剩余内存不小于所述估算值的节点,则将当前集群的节点中剩余内存最大的节点确定为目的节点,并待所述目的节点的剩余内存不小于所述估算值时,再触发所述将所述待运行的任务调度到所述目的节点上运行的步骤。
11.根据权利要求6至9中任一项所述的任务调度装置,其特征在于,所述装置还包括:
原因判断模块,用于在所述节点确定模块将所述待运行的任务调度到所述目的节点上运行之后,所述待运行的任务未成功调度到所述目的节点上时,判断所述待运行的任务调度失败的原因是否为目的节点的剩余内存不足;
参数更改模块,用于当确定所述待运行的任务调度失败的原因为目的节点的剩余内存不足时,增大所述估算值,并再次触发所述节点确定模块确定目的节点的步骤。
CN201410853237.4A 2014-12-30 2014-12-30 一种任务调度方法与装置 Active CN105808346B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410853237.4A CN105808346B (zh) 2014-12-30 2014-12-30 一种任务调度方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410853237.4A CN105808346B (zh) 2014-12-30 2014-12-30 一种任务调度方法与装置

Publications (2)

Publication Number Publication Date
CN105808346A CN105808346A (zh) 2016-07-27
CN105808346B true CN105808346B (zh) 2019-09-20

Family

ID=56420813

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410853237.4A Active CN105808346B (zh) 2014-12-30 2014-12-30 一种任务调度方法与装置

Country Status (1)

Country Link
CN (1) CN105808346B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108958923B (zh) * 2017-05-25 2022-04-22 上海华为技术有限公司 一种调度硬件加速器的方法以及调度设备
CN107515786B (zh) * 2017-08-04 2021-02-19 北京奇虎科技有限公司 资源分配方法、主装置、从装置和分布式计算系统
CN109117115A (zh) * 2018-07-16 2019-01-01 精硕科技(北京)股份有限公司 数据运算调度处理方法及装置、存储介质、处理器
CN110908777B (zh) * 2018-09-17 2024-04-16 京东科技控股股份有限公司 作业调度方法、装置和系统
CN110109751B (zh) * 2019-04-03 2022-04-05 百度在线网络技术(北京)有限公司 分布式切图任务的分配方法、装置及分布式切图系统
CN111866043B (zh) * 2019-04-29 2023-04-28 中国移动通信集团河北有限公司 任务处理方法、装置、计算设备及计算机存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102111337A (zh) * 2011-03-14 2011-06-29 浪潮(北京)电子信息产业有限公司 任务调度方法和系统
CN102521029A (zh) * 2011-12-02 2012-06-27 曙光信息产业(北京)有限公司 一种基于内存独占的作业调度方法
CN103246550A (zh) * 2012-02-09 2013-08-14 深圳市腾讯计算机系统有限公司 一种基于容量的多任务调度方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959515B2 (en) * 2006-01-18 2015-02-17 International Business Machines Corporation Task scheduling policy for limited memory systems
CN102609303B (zh) * 2012-01-18 2014-12-17 华为技术有限公司 MapReduce系统的慢任务调度方法和装置
US9122523B2 (en) * 2012-05-03 2015-09-01 Nec Laboratories America, Inc. Automatic pipelining framework for heterogeneous parallel computing systems
CN103019853A (zh) * 2012-11-19 2013-04-03 北京亿赞普网络技术有限公司 一种作业任务的调度方法和装置
CN103365729A (zh) * 2013-07-19 2013-10-23 哈尔滨工业大学深圳研究生院 一种基于任务类型的动态MapReduce 调度方法及系统
CN103530182A (zh) * 2013-10-22 2014-01-22 海南大学 一种作业调度方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102111337A (zh) * 2011-03-14 2011-06-29 浪潮(北京)电子信息产业有限公司 任务调度方法和系统
CN102521029A (zh) * 2011-12-02 2012-06-27 曙光信息产业(北京)有限公司 一种基于内存独占的作业调度方法
CN103246550A (zh) * 2012-02-09 2013-08-14 深圳市腾讯计算机系统有限公司 一种基于容量的多任务调度方法及系统

Also Published As

Publication number Publication date
CN105808346A (zh) 2016-07-27

Similar Documents

Publication Publication Date Title
CN105808346B (zh) 一种任务调度方法与装置
US11119821B2 (en) FPGA acceleration for serverless computing
CN114138486B (zh) 面向云边异构环境的容器化微服务编排方法、系统及介质
CN104636204B (zh) 一种任务调度方法与装置
US10474504B2 (en) Distributed node intra-group task scheduling method and system
CN110162388A (zh) 一种任务调度方法、系统及终端设备
CN104657220A (zh) 混合云中基于截止时间和费用约束的调度模型及方法
WO2013107012A1 (zh) 分布式计算任务处理系统和任务处理方法
CN106020977B (zh) 用于监控系统的分布式任务调度方法及装置
Lai et al. Sol: Fast distributed computation over slow networks
CN110519370A (zh) 一种基于设施选址问题的边缘计算资源分配方法
CN109445921A (zh) 一种分布式数据任务处理方法及装置
CN106201701A (zh) 一种带任务重复的工作流调度算法
Yun et al. An integrated approach to workflow mapping and task scheduling for delay minimization in distributed environments
CN106407007B (zh) 面向弹性分析流程的云资源配置优化方法
Stavrinides et al. Multicriteria scheduling of linear workflows with dynamically varying structure on distributed platforms
Aldhalaan et al. Autonomic allocation of communicating virtual machines in hierarchical cloud data centers
CN111049900A (zh) 一种物联网流计算调度方法、装置和电子设备
CN109542617A (zh) 系统资源的处理方法及装置
CN110135685A (zh) 一种产品设计任务的分配方法及装置
CN109598411A (zh) 一种产品设计任务的处理方法及电子设备
CN104915250A (zh) 一种实现作业内的MapReduce数据本地化的方法
Shahid et al. Enhanced Particle Swarm Optimisation and Multi Objective Optimization for the Orchestration of Edge Cloud Clusters.
CN105830030B (zh) 用于组成并执行实时任务的方法
Alam et al. Adaptive threshold based scheduler for batch of independent jobs for cloud computing system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220208

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technologies Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221130

Address after: 518000 Huawei Headquarters Office Building 101, Wankecheng Community, Bantian Street, Longgang District, Shenzhen, Guangdong

Patentee after: Shenzhen Huawei Cloud Computing Technology Co.,Ltd.

Address before: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee before: Huawei Cloud Computing Technologies Co.,Ltd.

TR01 Transfer of patent right