CN102902587B - 分布式任务调度方法、系统和装置 - Google Patents

分布式任务调度方法、系统和装置 Download PDF

Info

Publication number
CN102902587B
CN102902587B CN201110214428.2A CN201110214428A CN102902587B CN 102902587 B CN102902587 B CN 102902587B CN 201110214428 A CN201110214428 A CN 201110214428A CN 102902587 B CN102902587 B CN 102902587B
Authority
CN
China
Prior art keywords
task
groove
resource
scheduling controller
distributed
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
CN201110214428.2A
Other languages
English (en)
Other versions
CN102902587A (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.)
MIGU Music Co Ltd
Original Assignee
China Mobile Group Sichuan 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 China Mobile Group Sichuan Co Ltd filed Critical China Mobile Group Sichuan Co Ltd
Priority to CN201110214428.2A priority Critical patent/CN102902587B/zh
Publication of CN102902587A publication Critical patent/CN102902587A/zh
Application granted granted Critical
Publication of CN102902587B publication Critical patent/CN102902587B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Multi Processors (AREA)

Abstract

本发明公开了分布式任务调度方法、系统和装置,系统中包括一个控制服务器和多个执行服务器,控制服务器中包括一个调度控制器,各执行服务器中均包括多个任务槽,每个任务槽均分配有一定的资源;系统运行时,调度控制器维护两个队列:任务等待队列和任务槽队列,当每接收到一个任务X时,如果任务槽队列中存在适合处理任务X的任务槽,则将任务X分配给该任务槽,否则,将任务X加入到任务等待队列中,当每接收到一个任务槽X主动发送来的任务请求时,如果任务等待队列中存在适合任务槽X处理的任务,则将该任务分配给任务槽X,否则,将任务槽X加入到任务槽队列中。应用本发明所述方案,能够提高资源利用率和任务处理效率。

Description

分布式任务调度方法、系统和装置
技术领域
本发明涉及任务调度技术,特别涉及分布式任务调度方法、系统和装置。
背景技术
分布式任务调度,是指将一个应用或者业务划分出的多个任务交由多个服务器进行处理。分布式任务调度可解决单个服务器资源不足等问题,达到大规模数据计算的目的。
通常,分布式任务调度系统中会包括一个控制服务器,其它各服务器称为执行服务器,可利用控制服务器来对各执行服务器进行统一管理,如当有任务需要执行时,由控制服务器按照某种规则将其分配给某一执行服务器。
对于执行服务器来说,其只能被动地接受所分配的任务,但该任务可能并不适合其处理,比如:假设执行服务器的可用内存为700M,当前执行的任务占用了200M,新分配的一个任务需要占用600M的内存,那么,该新分配的任务就将无法执行,即只能等到当前任务执行完毕后才能执行,那么剩余的500M内存就相等于被浪费了,而且,如果当前任务需要执行较长的时间,新分配的任务就需要等待较长的时间,从而降低了任务处理效率。
发明内容
有鉴于此,本发明的主要目的在于提供一种分布式任务调度方法,能够提高资源利用率和任务处理效率。
本发明的另一目的在于提供一种分布式任务调度系统,能够提高资源利用率和任务处理效率。
本发明的又一目的在于提供一种执行服务器,能够提高资源利用率和任务处理效率。
本发明的再一目的在于提供一种控制服务器,能够提高资源利用率和任务处理效率。
为达到上述目的,本发明的技术方案是这样实现的:
一种分布式任务调度方法,在分布式任务调度系统中设置一个控制服务器和一个以上执行服务器,在控制服务器中设置一个调度控制器,在每个执行服务器中分别划分出两个以上任务槽,并为每个任务槽分配所需的资源;当所述分布式任务调度系统运行时,该方法包括:
调度控制器维护两个队列,一个为任务等待队列,另一个为任务槽队列;
当每接收到一个任务X时,调度控制器确定任务槽队列中是否存在适合处理任务X的任务槽,如果是,则将任务X分配给该任务槽,否则,将任务X加入到任务等待队列中;
当每接收到一个任务槽X主动发送来的任务请求时,调度控制器确定任务等待队列中是否存在适合任务槽X处理的任务,如果是,则将该任务分配给任务槽X,否则,将任务槽X加入到任务槽队列中;所述任务请求为任务槽X确定自身资源使用情况适合主动请求新的任务后发送来的。
一种分布式任务调度系统,包括:两个以上服务器,其中一个为控制服务器,或同时为控制服务器和执行服务器,其余均为执行服务器;控制服务器中包括一个调度控制器,每个执行服务器中均包括两个以上任务槽,每个任务槽均分配有一定的资源,每个任务槽中进一步包括协调器和任务执行器;
调度控制器,用于维护两个队列,一个为任务等待队列,另一个为任务槽队列;当每接收到一个任务X时,确定任务槽队列中是否存在适合处理任务X的任务槽,如果是,则将任务X分配给该任务槽,否则,将任务X加入到任务等待队列中;当每接收到一个任务槽X主动发送来的任务请求时,确定任务等待队列中是否存在适合任务槽X处理的任务,如果是,则将该任务分配给任务槽X,否则,将任务槽X加入到任务槽队列中;
协调器,用于根据所在任务槽的资源使用情况主动向调度控制器请求新的任务,并接收调度控制器所分配的任务,发送给任务执行器;
任务执行器,用于执行所分配的任务。
一种执行服务器,包括两个以上任务槽,每个任务槽均分配有一定的资源,每个任务槽中进一步包括协调器和任务执行器;
协调器,用于根据所在任务槽的资源使用情况主动向调度控制器请求新的任务,并接收调度控制器所分配的任务,发送给任务执行器;
任务执行器,用于执行所分配的任务。
一种控制服务器,包括调度控制器;
所述调度控制器,用于维护两个队列,一个为任务等待队列,另一个为任务槽队列;当每接收到一个任务X时,确定任务槽队列中是否存在适合处理任务X的任务槽,如果是,则将任务X分配给该任务槽,否则,将任务X加入到任务等待队列中;当每接收到一个任务槽X主动发送来的任务请求时,确定任务等待队列中是否存在适合任务槽X处理的任务,如果是,则将该任务分配给任务槽X,否则,将任务槽X加入到任务槽队列中;所述任务请求为任务槽X确定自身的资源使用情况适合主动请求新的任务后发送来的。
可见,采用本发明所述方案,对各执行服务器的资源进行更细粒度的划分,得到多个任务槽,各任务槽均可执行任务,从而能够最大化的利用各执行服务器的资源,提高了资源利用率;另外,各任务槽可根据自身的资源使用情况主动确定是否接受新的任务,且调度控制器在为各任务槽分配任务时,会选择适合任务槽处理的任务,同样,调度控制器在分配任务时,会选择适合处理它的任务槽,这样一来,不但能够使任务被尽快处理,而且能够充分利用各任务槽的资源,从而不但提高了资源利用率,也提高了任务的处理效率;再有,本发明所述方案利用协调器来协助调度控制器进行任务调度,极大地减轻了调度控制器的负载,达到了负载均衡的目的,并增强了系统的可扩展性。
附图说明
图1为本发明一执行服务器中的各任务槽分配到的资源示意图。
图2为本发明分布式任务调度方法实施例的流程图。
图3为本发明分布式任务调度系统实施例的组成结构示意图。
具体实施方式
针对现有技术中存在的问题,本发明中提出一种改进后的分布式任务调度方案,能够提高资源利用率和任务处理效率。
本发明中,预先将分布式任务调度系统中的一个服务器定义为控制服务器,或同时定义为控制服务器和执行服务器,其余服务器均定义为执行服务器,在控制服务器中设置一个调度控制器,在每个执行服务器中分别划分出两个以上任务槽,并为每个任务槽分配所需的资源。
在实际应用中,可根据各执行服务器中的某种或某几种资源状况在各执行服务器中分别划分出多个任务槽,比如,根据CPU数目进行划分,有几个CPU就划分出几个任务槽,之后,根据划分出的任务槽数对其它资源,如内存等的可用资源数进行划分,划分原则可为:将每个执行服务器中的每种资源的可用资源数平均分配给该执行服务器中的每个任务槽,即有:
ResV alue i = Total ( Res i ) Count ( Task i ) ; - - - ( 1 )
其中,Resi表示一执行服务器中的第i种资源,Total(Resi)表示资源Resi的可用资源数,Taski表示任务槽i,Count(Taski)表示该执行服务器中划分出的任务槽数,将ResValuei分配给该执行服务器中的各任务槽。
图1为本发明一执行服务器中的各任务槽分配到的资源示意图。
任务槽具备主动请求任务、自我资源平衡以及任务执行等能力。
调度控制器是分布式任务调度系统的控制中心,功能主要包括基本任务调度、任务槽管理和处理任务槽的任务请求等。
出于对资源利用的考虑,调度控制器和任务槽应该是独立运行的进程。每个服务器中均包括一个后台管理单元,当分布式任务调度系统启动时,控制服务器中的后台管理单元启动调度控制器,并根据分布式任务调度系统中的服务器数量为调度控制器配置足够的资源,包括内存和线程数量等,如果控制服务器同时作为执行服务器,则还需要启动所划分的各任务槽,之后,通知各执行服务器启动;各执行服务器中的后台管理单元启动所划分的各任务槽;当完成上述处理后,各后台管理单元进入休眠状态,退出服务。
在分布式任务调度系统运行的过程中,调度控制器会维护两个队列,一个为任务等待队列,另一个为任务槽队列,其中,任务等待队列用于保存等待处理的任务,任务槽队列用于保存等待分配任务的任务槽。
图2为本发明分布式任务调度方法实施例的流程图。如图2所示,包括以下步骤:
步骤21:当每接收到一个任务X(用任务X来表示任意一个任务)时,调度控制器确定任务槽队列中是否存在适合处理任务X的任务槽,如果是,则将任务X分配给该任务槽,否则,将任务X加入到任务等待队列中。
如前所述,任务槽队列用于保存等待分配任务的任务槽,本步骤中,当接收到任务X时,调度控制器确定任务槽队列中是否存在适合处理任务X的任务槽,如果是,则将任务X分配给该任务槽,否则,将任务X加入到任务等待队列中,等待后续处理。
其中,如果接收到的任务X中附带有资源需求信息,即已知任务X的资源需求,则调度控制器可确定任务槽队列中是否存在未使用资源能够满足任务X的资源需求的任务槽,如果存在且个数为一,则将其作为适合处理任务X的任务槽,如果存在且个数为两个以上,则从中选出未使用资源最接近任务X的资源需求的任务槽,将其作为适合处理任务X的任务槽。
如果接收到的任务X中未附带资源需求信息,即不知道任务X的资源需求,则调度控制器可从任务槽队列中选出未使用资源最多的任务槽,将其作为适合处理任务X的任务槽。
如果已知任务X的资源需求,且任务槽队列中不存在未使用资源能够满足任务X的资源需求的任务槽,则调度控制器可确定其中是否存在能够使任务X在预定较短时间内得到执行,且在执行任务X时能够满足任务X的资源需求的任务槽,如果存在且个数为一,则将其作为适合处理任务X的任务槽,如果存在且个数为两个以上,则从中选出能够使任务X被最快执行的任务槽,将其作为适合处理任务X的任务槽。
上述各任务槽的未使用资源等信息可由任务槽上报给调度控制器。
步骤22:当每接收到一个任务槽X(用任务槽X来表示任意一个任务槽)主动发送来的任务请求时,调度控制器确定任务等待队列中是否存在适合任务槽X处理的任务,如果是,则将该任务分配给任务槽X,否则,将任务槽X加入到任务槽队列中;所述任务请求为任务槽X确定自身的资源使用情况适合主动请求新的任务后发送来的。
在实际应用中,各任务槽可周期性地计算反映自身资源使用情况的资源评分,并将计算结果与预先设定的可请求阈值进行比较,如果计算结果大于可请求阈值,则确定之前是否已经向调度控制器请求过新的任务但未分配到新的任务,如果是,则不作处理,否则,向调度控制器请求新的任务,并将自身的资源使用情况上报给调度控制器。
仍以任务槽X为例,其可按以下方式计算资源评分:
ResScore=∑Resi*Ratioi;(2)
其中,ResScore即表示计算得到的资源评分,Resi表示第i种资源的使用情况,Ratioi表示第i种资源对应的权重。
如果ResScore大于预先设定的可请求阈值,则任务槽X可向调度控制器请求任务,但是,有可能之前的某一个周期计算出的ResScore也大于可请求阈值,从而向调度控制器请求了任务,但调度控制器没有合适的任务分配给任务槽X,这样,就没有必要再重复请求了,因此,任务槽X在确定出ResScore大于可请求阈值后,需要首先确定之前是否已经向调度控制器请求过新的任务但未分配到新的任务,如果是,则不作处理,否则,向调度控制器请求新的任务,并且,将自身的资源使用情况上报给调度控制器。
调度控制器接收到任务槽X发来的任务请求后,确定任务等待队列中是否存在适合任务槽X处理的任务,如果存在,则将该任务分配给任务槽X,否则,将任务槽X加入到任务槽队列中。什么样的任务为适合任务槽X处理的任务可参照前述说明,此处不再赘述。
任务槽X接收到所分配的任务后,首先确定所分配的任务可否立即执行,如果是,则立即执行,否则,将所分配的任务进行缓存,当当前任务执行完毕后,再执行缓存的任务。
在实际应用中,如果需要,调度控制器可回收已分配给任务槽但未被执行的任务,并将回收的任务作为新接收到的任务进行处理,即按照步骤21所示方式进行处理。
需要说明的是,步骤21和22在执行时并没有先后顺序之分,通常是并行执行的,图2所示表示方式仅为了表述方便。
下面通过具体示例,对本发明所述方案进行进一步说明。
假设某分布式任务调度系统中共包括3个服务器,其中1个服务器具备4颗3GHz的CPU、4G内存,另外2个服务器具备2颗2GHz的CPU、3G内存,那么,可将具备4颗3GHz的CPU、4G内存的服务器作为控制服务器,并配置一个调度控制器,3个任务槽,并为调度控制器分配1G内存,为每个任务槽分配600M内存,剩余的内存可预留给本发明所述方案以外的其它应用;剩余的2个服务器均作为执行服务器,各配置3个任务槽,并为每个任务槽分配700M内存,同样,剩余的内存可预留给本发明所述方案以外的其它应用;这样,共得到9个任务槽,即6个<700M,2G>任务槽和3个<600M,3G>任务槽。
分布式任务调度系统启动后,各任务槽均向调度控制器请求任务,由于此时还没有任务可执行,因此所有任务槽均进入任务槽队列,随着任务的不断到来,各任务槽均被分配到任务。
后续,各任务槽,以任务槽X为例,周期性地计算自身的资源评分,如:
资源评分=CPU空闲率×40%+空余内存率×80%+(最大配置线程数/实际使用线程数)×5%;(3)
其中的40%、80%和5%均为权重,CPU空闲率、空余内存率和实际使用线程数均指一个周期内的平均值。
假设CPU空闲率为40%,空余内存率也为40%,最大配置线程数/实际使用线程数为4,那么可计算出资源评分为0.68,大于可请求阈值0.5,而且不存在之前已经向调度控制器发送过任务请求但未被分配到任务的情况,则任务槽X向调度控制器发送任务请求,并上报自身的资源使用情况,如<700M,40%;2G,40%>,另外,还可将自身的总体任务执行进度上报给调度控制器,其中,如果任务槽X当前在同时执行多个任务,那么总体任务执行进度是指这多个任务的平均执行进度。
调度控制器接收到来自任务槽X的任务请求以及所上报的资源使用情况和总体任务执行进度后,根据<700M,40%;2G,40%>进行计算,即用任务槽X所分配的内存乘以空余内存率40%,得到未使用的内存280M,用所分配的CPU2G乘以CPU空闲率40%,得到未使用的CPU 0.8G,即有<280M;0.8G>。通过查找任务等待队列,发现其中有一个内存需求为100M的任务可以分配给任务槽X,那么,将该任务从任务等待队列中取出,分配给任务槽X。
对于一个新接收到的内存需求为700M的任务X,如果调度控制器查看了任务槽队列中的各任务槽的资源使用情况后,发现没有未使用资源能够满足任务X的资源需求的任务槽,但是有一个任务槽的总体任务执行进度为90%,大于预定的阈值70%,且该任务槽所分配的内存为700M,这表明如果将任务X分配给该任务槽,那么任务X将会很快得到处理,而且到时候该任务槽将能够满足任务X的资源需求,因此,可将任务X分配给该任务槽。
另外,为进一步提高资源利用率,本发明所述方案中,还可根据资源使用情况等对各执行服务器中的任务槽数进行调整,所述调整包括增加和减少(合并),分别介绍如下。
1)减少
具体来说,每个任务槽X周期性地计算自身的资源评分,并将计算结果与预先设定的最小限定阈值进行比较,如果连续M个周期的计算结果均小于最小限定阈值,则可在执行完所有已分配的任务后,自我关闭,释放资源,并通知调度控制器,M为大于1的正整数;调度控制器将所释放的资源分配给任务槽X所在的执行服务器中的其它任务槽,这样一来,任务槽X所在的执行服务器中的任务槽数就减少了一个。
通常来说,只有处于满负荷状态的任务槽才需要增加资源,因此,任务槽X在确定出连续M个周期的计算结果均小于最小限定阈值之后,可先向调度控制器发送资源释放请求;调度控制器接收到来自任务槽X的资源释放请求后,确定任务槽X所在的执行服务器中是否存在处于满负荷状态的任务槽,如果是,则通知任务槽X释放资源,并不再为任务槽X分配任务,否则,不允许任务槽X释放资源;后续,调度控制器将任务槽X所释放的资源分配给处于满负荷状态的任务槽,如果处于满负荷状态的任务槽为多个,可从中随机选择一个。
2)增加
每个任务槽X周期性地计算自身的资源评分,并将计算结果与预先设定的最小限定阈值进行比较,如果连续M个周期的计算结果均小于最小限定阈值,则释放部分资源,并通知调度控制器,M为大于1的正整数;调度控制器在任务槽X所在的执行服务器中创建一个新的任务槽,并将所释放的资源分配给新创建的任务槽,这样一来,任务槽X所在的执行服务器中的任务槽数就增加了一个。
在实际应用中,可对执行服务器中允许存在的任务槽数进行限定,即设置一个最大任务槽限额数,这样,任务槽X在释放资源之前,可先向调度控制器发送资源释放请求;相应地,调度控制器确定任务槽X所在的执行服务器中的任务槽数是否小于最大任务槽限额数,如果是,则通知任务槽X释放资源,否则,不允许任务槽X释放资源。
任务槽X释放的资源量可根据实际需要而定,比如释放一半。
至此,即完成了关于本发明方法实施例的介绍。
基于上述介绍,图3为本发明分布式任务调度系统实施例的组成结构示意图。如图3所示,包括:两个以上服务器,其中一个为控制服务器,或同时为控制服务器和执行服务器,其余均为执行服务器;控制服务器中包括一个调度控制器,每个执行服务器中均包括两个以上任务槽,每个任务槽均分配有一定的资源,每个任务槽中进一步包括协调器和任务执行器。
调度控制器,用于维护两个队列,一个为任务等待队列,另一个为任务槽队列;当每接收到一个任务X时,确定任务槽队列中是否存在适合处理任务X的任务槽,如果是,则将任务X分配给该任务槽,否则,将任务X加入到任务等待队列中;当每接收到一个任务槽X主动发送来的任务请求时,确定任务等待队列中是否存在适合任务槽X处理的任务,如果是,则将该任务分配给任务槽X,否则,将任务槽X加入到任务槽队列中;
协调器,用于根据所在任务槽的资源使用情况主动向调度控制器请求新的任务,并接收调度控制器所分配的任务,发送给任务执行器;
任务执行器,用于执行所分配的任务。
其中,协调器可周期性地计算反映所在任务槽资源使用情况的资源评分,并将计算结果与预先设定的可请求阈值进行比较,如果计算结果大于可请求阈值,则进一步确定之前是否已经向调度控制器请求过新的任务但未分配到新的任务,如果是,则不作处理,否则,向调度控制器请求新的任务,并将自身的资源使用情况上报给调度控制器。
另外,如果已知任务X的资源需求,则调度控制器确定任务槽队列中是否存在未使用资源能够满足任务X的资源需求的任务槽,如果存在且个数为一,则将其作为适合处理任务X的任务槽,如果存在且个数为两个以上,则从中选出未使用资源最接近任务X的资源需求的任务槽,将其作为适合处理任务X的任务槽;如果不知道任务X的资源需求,则调度控制器从任务槽队列中选出未使用资源最多的任务槽,将其作为适合处理任务X的任务槽;如果已知任务X的资源需求,且任务槽队列中不存在未使用资源能够满足任务X的资源需求的任务槽,则调度控制器确定其中是否存在能够使任务X在预定较短时间内得到执行,且在执行任务X时能够满足任务X的资源需求的任务槽;如果存在且个数为一,则将其作为适合处理任务X的任务槽,如果存在且个数为两个以上,则从中选出能够使任务X被最快执行的任务槽,将其作为适合处理任务X的任务槽。
上述协调器可进一步用于,确定所分配的任务可否立即执行,如果是,则发送给任务执行器,否则,将所分配的任务进行缓存,当当前任务执行完毕后,将缓存的任务发送给任务执行器;相应地,调度控制器可进一步用于,回收已分配给任务槽但未被执行的任务。
另外,上述协调器还可进一步用于,周期性地计算所在任务槽的资源评分,并将计算结果与预先设定的最小限定阈值进行比较,如果连续M个周期的计算结果均小于最小限定阈值,则在任务执行器执行完所有已分配的任务后,关闭所在任务槽,释放资源,并通知调度控制器,M为大于1的正整数;相应地,调度控制器进一步用于,将所释放的资源分配给释放资源的任务槽所在的执行服务器中的其它任务槽。
上述协调器还可进一步用于,周期性地计算所在任务槽的资源评分,并将计算结果与预先设定的最小限定阈值进行比较,如果连续M个周期的计算结果均小于最小限定阈值,则释放部分资源,并通知调度控制器,M为大于1的正整数;相应地,调度控制器进一步用于,在释放部分资源的任务槽所在的执行服务器中创建一个新的任务槽,并将所释放的资源分配给新创建的任务槽。
图3所示系统实施例的具体工作流程请参照上述方法实施例中的相应说明,此处不再赘述。
需要说明的是,上述各实施例中涉及到的各阈值及权重的取值均可根据实际需要而定。
总之,采用本发明所述方案,对各执行服务器的资源进行更细粒度的划分,得到多个任务槽,各任务槽均可执行任务,从而能够最大化的利用各执行服务器的资源,提高了资源利用率;另外,各任务槽可根据自身的资源使用情况主动确定是否接受新的任务,且调度控制器在为各任务槽分配任务时,会选择适合任务槽处理的任务,同样,调度控制器在分配任务时,会选择适合处理它的任务槽,这样一来,不但能够使任务被尽快处理,而且能够充分利用各任务槽的资源,从而不但提高了资源利用率,也提高了任务的处理效率;再有,本发明所述方案利用协调器来协助调度控制器进行任务调度,极大地减轻了调度控制器的负载,达到了负载均衡的目的,并增强了系统的可扩展性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (22)

1.一种分布式任务调度方法,其特征在于,在分布式任务调度系统中设置一个控制服务器和一个以上执行服务器,在控制服务器中设置一个调度控制器,在每个执行服务器中分别划分出两个以上任务槽,并为每个任务槽分配所需的资源;当所述分布式任务调度系统运行时,该方法包括:
调度控制器维护两个队列,一个为任务等待队列,另一个为任务槽队列;
当每接收到一个任务X时,调度控制器确定任务槽队列中是否存在适合处理任务X的任务槽,如果是,则将任务X分配给该任务槽,否则,将任务X加入到任务等待队列中;
当每接收到一个任务槽X主动发送来的任务请求时,调度控制器确定任务等待队列中是否存在适合任务槽X处理的任务,如果是,则将该任务分配给任务槽X,否则,将任务槽X加入到任务槽队列中;所述任务请求为任务槽X确定自身资源使用情况适合主动请求新的任务后发送来的;
该方法进一步包括:
每个任务槽周期性地计算自身的资源评分,并将计算结果与预先设定的可请求阈值进行比较,如果计算结果大于可请求阈值,则确定之前是否已经向调度控制器请求过新的任务但未分配到新的任务,如果是,则不作处理,否则,向调度控制器请求新的任务,并将自身的资源使用情况上报给调度控制器。
2.根据权利要求1所述的方法,其特征在于,所述调度控制器确定任务槽队列中是否存在适合处理任务X的任务槽包括:
如果已知任务X的资源需求,则确定任务槽队列中是否存在未使用资源能够满足任务X的资源需求的任务槽,如果存在且个数为一,则将其作为适合处理任务X的任务槽,如果存在且个数为两个以上,则从中选出未使用资源最接近任务X的资源需求的任务槽,将其作为适合处理任务X的任务槽;
如果不知道任务X的资源需求,则从任务槽队列中选出未使用资源最多的任务槽,将其作为适合处理任务X的任务槽。
3.根据权利要求2所述的方法,其特征在于,该方法进一步包括:
如果已知任务X的资源需求,且任务槽队列中不存在未使用资源能够满足任务X的资源需求的任务槽,则确定其中是否存在能够使任务X在预定较短时间内得到执行,且在执行任务X时能够满足任务X的资源需求的任务槽;如果存在且个数为一,则将其作为适合处理任务X的任务槽,如果存在且个数为两个以上,则从中选出能够使任务X被最快执行的任务槽,将其作为适合处理任务X的任务槽。
4.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
各任务槽接收到所分配的任务后,确定所分配的任务可否立即执行,如果是,则立即执行,否则,将所分配的任务进行缓存,当当前任务执行完毕后,执行缓存的任务。
5.根据权利要求4所述的方法,其特征在于,该方法进一步包括:调度控制器回收已分配给任务槽但未被执行的任务。
6.根据权利要求4或5所述的方法,其特征在于,该方法进一步包括:
每个任务槽周期性地计算自身的资源评分,并将计算结果与预先设定的最小限定阈值进行比较,如果连续M个周期的计算结果均小于最小限定阈值,则在执行完所有已分配的任务后,自我关闭,释放资源,并通知调度控制器;M为大于1的正整数;
调度控制器将所释放的资源分配给释放资源的任务槽所在的执行服务器中的其它任务槽。
7.根据权利要求6所述的方法,其特征在于,确定连续M个周期的计算结果均小于最小限定阈值之后,进一步包括:
向调度控制器发送资源释放请求;调度控制器确定发送资源释放请求的任务槽所在的执行服务器中是否存在处于满负荷状态的任务槽,如果是,则通知发送资源释放请求的任务槽释放资源;
所述其它任务槽为:处于满负荷状态的任务槽。
8.根据权利要求4或5所述的方法,其特征在于,该方法进一步包括:
每个任务槽周期性地计算自身的资源评分,并将计算结果与预先设定的最小限定阈值进行比较,如果连续M个周期的计算结果均小于最小限定阈值,则释放部分资源,并通知调度控制器;M为大于1的正整数;
调度控制器在释放部分资源的任务槽所在的执行服务器中创建一个新的任务槽,并将所释放的资源分配给新创建的任务槽。
9.根据权利要求8所述的方法,其特征在于,所述释放部分资源之前,进一步包括:
向调度控制器发送资源释放请求;
调度控制器确定发送资源释放请求的任务槽所在的执行服务器中的任务槽数是否小于预先设定的最大任务槽限额数,如果是,则通知发送资源释放请求的任务槽释放资源。
10.一种分布式任务调度系统,其特征在于,包括:两个以上服务器,其中一个为控制服务器,或同时为控制服务器和执行服务器,其余均为执行服务器;控制服务器中包括一个调度控制器,每个执行服务器中均包括两个以上任务槽,每个任务槽均分配有一定的资源,每个任务槽中进一步包括协调器和任务执行器;
调度控制器,用于维护两个队列,一个为任务等待队列,另一个为任务槽队列;当每接收到一个任务X时,确定任务槽队列中是否存在适合处理任务X的任务槽,如果是,则将任务X分配给该任务槽,否则,将任务X加入到任务等待队列中;当每接收到一个任务槽X主动发送来的任务请求时,确定任务等待队列中是否存在适合任务槽X处理的任务,如果是,则将该任务分配给任务槽X,否则,将任务槽X加入到任务槽队列中;
协调器,用于根据所在任务槽的资源使用情况主动向调度控制器请求新的任务,并接收调度控制器所分配的任务,发送给任务执行器;
任务执行器,用于执行所分配的任务;
所述协调器周期性地计算所在任务槽的资源评分,并将计算结果与预先设定的可请求阈值进行比较,如果计算结果大于可请求阈值,则进一步确定之前是否已经向调度控制器请求过新的任务但未分配到新的任务,如果是,则不作处理,否则,向调度控制器请求新的任务,并将自身的资源使用情况上报给调度控制器。
11.根据权利要求10所述的系统,其特征在于,
如果已知任务X的资源需求,则调度控制器确定任务槽队列中是否存在未使用资源能够满足任务X的资源需求的任务槽,如果存在且个数为一,则将其作为适合处理任务X的任务槽,如果存在且个数为两个以上,则从中选出未使用资源最接近任务X的资源需求的任务槽,将其作为适合处理任务X的任务槽;
如果不知道任务X的资源需求,则调度控制器从任务槽队列中选出未使用资源最多的任务槽,将其作为适合处理任务X的任务槽;
如果已知任务X的资源需求,且任务槽队列中不存在未使用资源能够满足任务X的资源需求的任务槽,则调度控制器确定其中是否存在能够使任务X在预定较短时间内得到执行,且在执行任务X时能够满足任务X的资源需求的任务槽;如果存在且个数为一,则将其作为适合处理任务X的任务槽,如果存在且个数为两个以上,则从中选出能够使任务X被最快执行的任务槽,将其作为适合处理任务X的任务槽。
12.根据权利要求10所述的系统,其特征在于,所述协调器进一步用于,确定所分配的任务可否立即执行,如果是,则发送给任务执行器,否则,将所分配的任务进行缓存,当当前任务执行完毕后,将缓存的任务发送给任务执行器。
13.根据权利要求12所述的系统,其特征在于,所述调度控制器进一步用于,回收已分配给任务槽但未被执行的任务。
14.根据权利要求10、12或13所述的系统,其特征在于,
所述协调器进一步用于,周期性地计算所在任务槽的资源评分,并将计算结果与预先设定的最小限定阈值进行比较,如果连续M个周期的计算结果均小于最小限定阈值,则在任务执行器执行完所有已分配的任务后,关闭所在任务槽,释放资源,并通知调度控制器;M为大于1的正整数;
所述调度控制器进一步用于,将所释放的资源分配给释放资源的任务槽所在的执行服务器中的其它任务槽。
15.根据权利要求10、12或13所述的系统,其特征在于,
所述协调器进一步用于,周期性地计算所在任务槽的资源评分,并将计算结果与预先设定的最小限定阈值进行比较,如果连续M个周期的计算结果均小于最小限定阈值,则释放部分资源,并通知调度控制器;M为大于1的正整数;
所述调度控制器进一步用于,在释放部分资源的任务槽所在的执行服务器中创建一个新的任务槽,并将所释放的资源分配给新创建的任务槽。
16.一种执行服务器,其特征在于,包括两个以上任务槽,每个任务槽均分配有一定的资源,每个任务槽中进一步包括协调器和任务执行器;
协调器,用于根据所在任务槽的资源使用情况主动向调度控制器请求新的任务,并接收调度控制器所分配的任务,发送给任务执行器;
任务执行器,用于执行所分配的任务;
所述协调器周期性地计算所在任务槽的资源评分,并将计算结果与预先设定的可请求阈值进行比较,如果计算结果大于可请求阈值,则进一步确定之前是否已经向调度控制器请求过新的任务但未分配到新的任务,如果是,则不作处理,否则,向调度控制器请求新的任务,并将自身的资源使用情况上报给调度控制器。
17.根据权利要求16所述的执行服务器,其特征在于,所述协调器进一步用于,确定所分配的任务可否立即执行,如果是,则发送给任务执行器,否则,将所分配的任务进行缓存,当当前任务执行完毕后,将缓存的任务发送给任务执行器。
18.根据权利要求16或17所述的执行服务器,其特征在于,所述协调器进一步用于,周期性地计算所在任务槽的资源评分,并将计算结果与预先设定的最小限定阈值进行比较,如果连续M个周期的计算结果均小于最小限定阈值,则在任务执行器执行完所有已分配的任务后,关闭所在任务槽,释放资源,并通知调度控制器,以便调度控制器将所释放的资源分配给其它任务槽;M为大于1的正整数。
19.根据权利要求16或17所述的执行服务器,其特征在于,所述协调器进一步用于,周期性地计算所在任务槽的资源评分,并将计算结果与预先设定的最小限定阈值进行比较,如果连续M个周期的计算结果均小于最小限定阈值,则释放部分资源,并通知调度控制器,以便调度控制器创建一个新的任务槽,并将所释放的资源分配给新创建的任务槽;M为大于1的正整数。
20.一种控制服务器,其特征在于,包括调度控制器;
所述调度控制器,用于维护两个队列,一个为任务等待队列,另一个为任务槽队列;当每接收到一个任务X时,确定任务槽队列中是否存在适合处理任务X的任务槽,如果是,则将任务X分配给该任务槽,否则,将任务X加入到任务等待队列中;当每接收到一个任务槽X主动发送来的任务请求时,确定任务等待队列中是否存在适合任务槽X处理的任务,如果是,则将该任务分配给任务槽X,否则,将任务槽X加入到任务槽队列中;所述任务请求为任务槽X确定自身的资源使用情况适合主动请求新的任务后发送来的;
如果已知任务X的资源需求,则调度控制器确定任务槽队列中是否存在未使用资源能够满足任务X的资源需求的任务槽,如果存在且个数为一,则将其作为适合处理任务X的任务槽,如果存在且个数为两个以上,则从中选出未使用资源最接近任务X的资源需求的任务槽,将其作为适合处理任务X的任务槽;
如果不知道任务X的资源需求,则调度控制器从任务槽队列中选出未使用资源最多的任务槽,将其作为适合处理任务X的任务槽。
21.根据权利要求20所述的控制服务器,其特征在于,
如果已知任务X的资源需求,且任务槽队列中不存在未使用资源能够满足任务X的资源需求的任务槽,则调度控制器确定其中是否存在能够使任务X在预定较短时间内得到执行,且在执行任务X时能够满足任务X的资源需求的任务槽;如果存在且个数为一,则将其作为适合处理任务X的任务槽,如果存在且个数为两个以上,则从中选出能够使任务X被最快执行的任务槽,将其作为适合处理任务X的任务槽。
22.根据权利要求20或21所述的控制服务器,其特征在于,所述调度控制器进一步用于,回收已分配给任务槽但未被执行的任务。
CN201110214428.2A 2011-07-28 2011-07-28 分布式任务调度方法、系统和装置 Active CN102902587B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110214428.2A CN102902587B (zh) 2011-07-28 2011-07-28 分布式任务调度方法、系统和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110214428.2A CN102902587B (zh) 2011-07-28 2011-07-28 分布式任务调度方法、系统和装置

Publications (2)

Publication Number Publication Date
CN102902587A CN102902587A (zh) 2013-01-30
CN102902587B true CN102902587B (zh) 2015-10-07

Family

ID=47574833

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110214428.2A Active CN102902587B (zh) 2011-07-28 2011-07-28 分布式任务调度方法、系统和装置

Country Status (1)

Country Link
CN (1) CN102902587B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2976861B1 (en) * 2013-03-21 2017-05-17 Telefonaktiebolaget LM Ericsson (publ) Method and device for scheduling communication schedulable unit
CN104734923B (zh) * 2013-12-18 2018-12-28 青岛海尔空调器有限总公司 应用任务的执行控制方法和系统、消息服务器
CN105630601A (zh) * 2014-11-03 2016-06-01 阿里巴巴集团控股有限公司 基于实时计算的资源分配方法及系统
CN106302587B (zh) * 2015-05-26 2019-07-30 阿里巴巴集团控股有限公司 一种互联网信息资源的调度方法及装置
CN106557366B (zh) * 2015-09-28 2020-09-08 阿里巴巴集团控股有限公司 任务分发方法、装置及系统
CN105718317B (zh) * 2016-01-15 2019-05-07 浪潮(北京)电子信息产业有限公司 一种任务调度方法及装置
CN107239328B (zh) * 2016-03-29 2020-06-09 上海普兰金融服务有限公司 任务分配方法及装置
CN106020988B (zh) * 2016-06-03 2019-03-15 北京邮电大学 一种智能视频监控系统离线任务调度方法及装置
CN107092999B (zh) * 2016-11-08 2021-02-26 北京星选科技有限公司 任务处理方法及装置
CN108737462A (zh) * 2017-04-17 2018-11-02 华东师范大学 一种基于图论的云计算数据中心任务调度方法
CN107704320B (zh) * 2017-05-12 2018-08-17 贵州白山云科技有限公司 一种分布式系统的任务分配方法及系统
CN107590002A (zh) * 2017-09-15 2018-01-16 东软集团股份有限公司 任务分配方法、装置、存储介质、设备及分布式任务系统
CN108255609A (zh) * 2018-01-12 2018-07-06 瑞银国际物流(江苏)有限公司 一种基于设备芯片的Web VR分布式计算方法
CN110046034B (zh) * 2018-01-15 2021-04-23 北京国双科技有限公司 任务获取方法及装置
CN108182111B (zh) * 2018-01-23 2022-07-15 百度在线网络技术(北京)有限公司 任务调度系统、方法和装置
CN108647090B (zh) * 2018-04-03 2021-09-14 联想(北京)有限公司 一种资源分配方法及装置、服务器集群
CN109101340B (zh) * 2018-09-18 2021-11-26 武汉斗鱼网络科技有限公司 弹幕消息的动态分发方法、装置、设备和存储介质
CN111090507B (zh) * 2019-11-25 2023-06-09 南京航空航天大学 基于云边融合服务器网络架构的任务调度方法及应用
CN111694672B (zh) * 2020-06-12 2023-04-25 抖音视界有限公司 资源分配方法、任务提交方法、装置、电子设备和介质
CN111679900B (zh) * 2020-06-15 2023-10-31 杭州海康威视数字技术股份有限公司 任务处理方法和装置
CN113419826A (zh) * 2021-05-11 2021-09-21 北京天云融创软件技术有限公司 一种任务调度的灵活资源限制方法
CN115576684A (zh) * 2022-09-26 2023-01-06 京东科技信息技术有限公司 任务处理方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101236513A (zh) * 2007-01-30 2008-08-06 阿里巴巴公司 一种分布式任务系统和分布式任务管理方法
CN101957780A (zh) * 2010-08-17 2011-01-26 中国电子科技集团公司第二十八研究所 一种基于资源状态信息的网格任务调度处理器及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171484B2 (en) * 2006-11-17 2012-05-01 Fujitsu Limited Resource management apparatus and radio network controller

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101236513A (zh) * 2007-01-30 2008-08-06 阿里巴巴公司 一种分布式任务系统和分布式任务管理方法
CN101957780A (zh) * 2010-08-17 2011-01-26 中国电子科技集团公司第二十八研究所 一种基于资源状态信息的网格任务调度处理器及方法

Also Published As

Publication number Publication date
CN102902587A (zh) 2013-01-30

Similar Documents

Publication Publication Date Title
CN102902587B (zh) 分布式任务调度方法、系统和装置
CN103793272B (zh) 一种周期性任务调度方法及系统
US10474504B2 (en) Distributed node intra-group task scheduling method and system
CN102388381B (zh) 用于分配共享存储资源的系统和方法
CN109582448B (zh) 一种面向关键度和时效性的边缘计算任务调度方法
CN112559182B (zh) 资源分配方法、装置、设备及存储介质
Mondal et al. Load balancing scheduling with shortest load first
CN104216765B (zh) 一种多线程并发处理业务的方法和系统
CN112783659B (zh) 一种资源分配方法、装置、计算机设备及存储介质
CN112269641A (zh) 一种调度方法、装置、电子设备及存储介质
CN105159769A (zh) 一种适用于计算能力异构集群的分布式作业调度方法
CN112527509B (zh) 一种资源分配方法、装置、电子设备及存储介质
CN103297499A (zh) 一种基于云平台的调度方法及系统
CN108170517A (zh) 一种容器分配方法、装置、服务器及介质
Sharma et al. An improved task allocation strategy in cloud using modified k-means clustering technique
CN103455375A (zh) Hadoop云平台下基于负载监控的混合调度方法
CN109729113A (zh) 管理专用处理资源的方法、服务器系统和计算机程序产品
CN105786447A (zh) 服务器处理数据的方法、装置及服务器
CN106201681A (zh) Hadoop平台下基于预释放资源列表的任务调度算法
CN102184124B (zh) 任务调度方法及系统
CN109189581B (zh) 一种作业调度方法和装置
Ghouma et al. Context aware resource allocation and scheduling for mobile cloud
CN115640113A (zh) 多平面弹性调度方法
Dahal et al. Scheduling in multiprocessor system using genetic algorithms
US9152549B1 (en) Dynamically allocating memory for processes

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160315

Address after: West high tech Zone Fucheng Road in Chengdu city of Sichuan province 610000 399 No. 6 Building 1 unit 12 floor No. 3

Patentee after: MIGU MUSIC CO., LTD.

Address before: 610041 No. 10 Peng Da Road, hi tech Zone, Sichuan, Chengdu

Patentee before: China Mobile Communication Group Sichuan Co., Ltd.