分布式任务调度方法、系统和装置制造方法及图纸

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

【技术实现步骤摘要】
本专利技术涉及任务调度技术,特别涉及分布式任务调度方法、系统和装置
技术介绍
分布式任务调度,是指将一个应用或者业务划分出的多个任务交由多个服务器进行处理。分布式任务调度可解决单个服务器资源不足等问题,达到大规模数据计算的目的。 通常,分布式任务调度系统中会包括一个控制服务器,其它各服务器称为执行服务器,可利用控制服务器来对各执行服务器进行统一管理,如当有任务需要执行时,由控制服务器按照某种规则将其分配给某一执行服务器。对于执行服务器来说,其只能被动地接受所分配的任务,但该任务可能并不适合其处理,比如假设执行服务器的可用内存为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确定自身的资源使用情况适合主动请求新的任务后发送来的。可见,采用本专利技术所述方案,对各执行服务器的资源进行更细粒度的划分,得到多个任务槽,各任务槽均可执行任务,从而能够最大化的利用各执行服务器的资源,提高了资源利用率;另外,各任务槽可根据自身的资源使用情况主动确定是否接受新的任务,且调度控制器在为各任务槽分配任务时,会选择适合任务槽处理的任务,同样,调度控制器在分配任务时,会选择适合处理它的任务槽,这样一来,不但能够使任务被尽快处理,而且能够充分利用各任务槽的资源,从而不但提高了资源利用率,也提高了任务的处理效率;再有,本专利技术所述方案利用协调器来协助调度控制器进行任务调度,极大地减轻了调度控制器的负载,达到了负载均衡的目的,并增强了系统的可扩展性。附图说明图I为本专利技术一执行服务器中的各任务槽分配到的资源示意图。图2为本专利技术分布式任务调度方法实施例的流程图。图3为本专利技术分布式任务调度系统实施例的组成结构示意图。具体实施方式针对现有技术中存在的问题,本专利技术中提出一种改进后的分布式任务调度方案,能够提高资源利用率和任务处理效率。本专利技术中,预先将分布式任务调度系统中的一个服务器定义为控制服务器,或同时定义为控制服务器和执行服务器,其余服务器均定义为执行服务器,在控制服务器中设置一个调度控制器,在每个执行服务器中分别划分出两个以上任务槽,并为每个任务槽分配所需的资源。在实际应用中,可根据各执行服务器中的某种或某几种资源状况在各执行服务器中分别划分出多个任务槽,比如,根据CPU数目进行划分,有几个CPU就划分出几个任务槽,之后,根据划分出的任务槽数对其它资源,如内存等的可用资源数进行划分,划分原则可为将每个执行服务器中的每种资源的可用资源数平均分配给该执行服务器中的每个任务槽,即有: T, ,Total (Res ,),、 Res Falue =---— ;( I ) Count {Task ,.)其中,Resi表示一执行服务器中的第i种资源,Total (Resi)表示资源Resi的可用资源数,Taski表示任务槽i,Count(Taski)表示该执行服务器中划分出的任务槽数,将ResValuei分配给该执行服务器中的各任务槽。图I为本专利技术一执行服务器中的各任务槽分配到的资源示意图。任务槽具备主动请求任务、自我资源平衡以及任务执行等能力。调度控制器是分布式任务调度系统的控制中心,功能主要包括基本任务调度、任务槽管理和处理任务槽的任务请求等。出于对资源利用的考虑,调度控制器和任务槽应该是独立运行的进程。每个服务器中均包括一个后台管理单元,当分布式任务调度系统启动时,控制服务器中的后台管理单元启动调度控制器,并根据分布式任务调度系统中的服务器数量为调度控制器配置足够的资源,包括内存和线程数量等,如果控制服务器同时作为执行服务器,则还需要启动所划分的各任务槽,之后,通知各执行服务器启动;各执行服务器中的后台管理单元启动所划分的各任务槽;当完成上述处理后,各后台管理单元进入休眠状态,退出服务。在分布式任务调度系统运行的过程中,调度控制器会维护两个队列,一个为任务等待队列,另一个为任务本文档来自技高网...

【技术保护点】
一种分布式任务调度方法,其特征在于,在分布式任务调度系统中设置一个控制服务器和一个以上执行服务器,在控制服务器中设置一个调度控制器,在每个执行服务器中分别划分出两个以上任务槽,并为每个任务槽分配所需的资源;当所述分布式任务调度系统运行时,该方法包括:调度控制器维护两个队列,一个为任务等待队列,另一个为任务槽队列;当每接收到一个任务X时,调度控制器确定任务槽队列中是否存在适合处理任务X的任务槽,如果是,则将任务X分配给该任务槽,否则,将任务X加入到任务等待队列中;当每接收到一个任务槽X主动发送来的任务请求时,调度控制器确定任务等待队列中是否存在适合任务槽X处理的任务,如果是,则将该任务分配给任务槽X,否则,将任务槽X加入到任务槽队列中;所述任务请求为任务槽X确定自身资源使用情况适合主动请求新的任务后发送来的。

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

【专利技术属性】
技术研发人员:郑长松萧巍曾东廖勤耘柳刘陈少权王全礼
申请(专利权)人:中国移动通信集团四川有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1