CN109815019B - 任务调度方法、装置、电子设备及可读存储介质 - Google Patents

任务调度方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN109815019B
CN109815019B CN201910108982.9A CN201910108982A CN109815019B CN 109815019 B CN109815019 B CN 109815019B CN 201910108982 A CN201910108982 A CN 201910108982A CN 109815019 B CN109815019 B CN 109815019B
Authority
CN
China
Prior art keywords
task
target
load parameter
determining
scheduler
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
CN201910108982.9A
Other languages
English (en)
Other versions
CN109815019A (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.)
Puxin Hengye Technology Development Beijing Co ltd
Original Assignee
Puxin Hengye Technology Development Beijing 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 Puxin Hengye Technology Development Beijing Co ltd filed Critical Puxin Hengye Technology Development Beijing Co ltd
Priority to CN201910108982.9A priority Critical patent/CN109815019B/zh
Publication of CN109815019A publication Critical patent/CN109815019A/zh
Application granted granted Critical
Publication of CN109815019B publication Critical patent/CN109815019B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种任务调度方法、装置、电子设备及可读存储介质,涉及任务调度技术领域,该方法应用于调度器,该方法包括:确定自身负载参数,监测所述自身负载参数是否超出预设的负载参数阈值;如果是,则确定待释放的第一目标任务,并向服务器发送任务释放指令;所述任务释放指令中携带有所述第一目标负载参数,以及所述第一目标任务的任务识别标识;所述第一目标负载参数为所述自身负载参数。本申请使每个调度器达到负载均衡,避免分布式计算***出现资源瓶颈,进而提升分布式计算***的计算效率。

Description

任务调度方法、装置、电子设备及可读存储介质
技术领域
本申请涉及任务调度技术领域,尤其是涉及一种任务调度方法、装置、电子设备及可读存储介质。
背景技术
现有的分布式计算***中,在调度器间进行任务调度时,仅在分配任务时,基于每个调度器上运行的任务个数和待分配的任务个数进行任务调度。
由于不同任务对调度器的资源占用情况也是不同的,在一些情况下不同调度器上运行的任务个数相近,但占用的资源相差很大。此时仅根据每个调度器上运行的任务个数和待分配的任务个数进行任务调度,会出现资源占用较多的调度器继续抢占更多的任务的情况,每个调度器的运算资源无法达到真正的负载均衡,从而使整个分布式计算***出现资源瓶颈,影响分布式计算***的计算效率。
发明内容
有鉴于此,本申请的目的在于提供一种任务调度方法、装置、电子设备及可读存储介质,使每个调度器达到负载均衡,避免分布式计算***出现资源瓶颈,进而提升分布式计算***的计算效率。
第一方面,本申请实施例提供一种任务调度方法,该方法在调度器中执行,该方法包括:
确定自身负载参数,监测所述自身负载参数是否超出预设的负载参数阈值;
如果是,则确定待释放的第一目标任务,并向服务器发送任务释放指令;
所述任务释放指令中携带有所述第一目标负载参数,以及第一目标任务的任务识别标识;所述第一目标负载参数为所述自身负载参数。
一种可能的实施方式中,该方法还包括:
在监听到第二目标任务的释放任务事件后,
根据所述第二目标任务的释放任务事件中携带的第二目标负载参数以及自身负载参数确定是否抢占所述第二目标任务;
如果是,向所述服务器发送针对所述第二目标任务的抢占请求。
一种可能的实施方式中,所述根据所述第二目标负载参数与自身负载参数确定是否抢占所述第二目标任务,包括:
确定所述自身负载参数;
将所述自身负载参数与所述第二目标负载参数进行比对;
若所述自身负载参数小于所述第二目标负载参数,则确定抢占所述第二目标任务。
一种可能的实施方式中,采用如下步骤确定自身负载参数:
获取自身的资源信息和任务信息;
根据所述资源信息和所述任务信息,确定自身负载参数。
一种可能的实施方式中,所述根据所述资源信息和所述任务信息,确定自身负载参数,包括:
根据所述资源信息,确定资源负载参数;
根据所述任务信息,确定第一任务负载参数;
将所述资源负载参数和所述第一任务负载参数中的较大者,确定为所述自身负载参数。
一种可能的实施方式中,所述资源信息包括:处理器资源占用率和存储资源占用率;
所述根据所述资源信息,确定资源负载参数,包括:
根据所述处理器资源占用率以及与所述处理器资源占用率对应的权重系数,确定处理器资源参数;
根据所述存储资源占用率以及与所述存储资源占用率对应的权重系数,确定存储资源参数;
将所述处理器资源参数和所述存储资源参数中的较大者,确定为所述资源负载参数。
一种可能的实施方式中,所述任务信息包括:每个任务中包含任务单元的个数,和调度每个任务所需的时长;
所述根据所述任务信息,确定第一任务负载参数,包括:
针对每个任务,获取每个任务中包含任务单元的个数大于预设的个数阈值的第一任务集合;
针对每个任务,获取调度每个任务所需的时长大于预设的时长阈值的第二任务集合;
选取第一任务集合与第二任务集合的并集作为第三任务集合;
将所述第三任务集合中包含的任务的个数与所述调度器中运行的总任务数的比值,确定为所述第一任务负载参数。
一种可能的实施方式中,所述确定待释放的第一目标任务,包括:
根据所述任务信息,确定每个任务的第二任务负载参数;
将第二任务负载参数最大的任务确定为所述第一目标任务。
一种可能的实施方式中,所述任务信息,包括:每个任务中包含任务单元的个数,和调度每个任务所需的时长;
所述根据所述任务信息,确定每个任务的第二任务负载参数,包括:
针对每个任务,根据调度该任务所需的时长与预设的时长阈值之间的比值,计算单位调度时长;
根据该任务中包含任务单元的个数和所述单位调度时长,得到该任务的第二任务负载参数。
一种可能的实施方式中,在向所述服务器发送任务释放指令之前,还包括:
检测所述第一目标任务是否处于运行状态;
若检测到所述第一目标任务并非处于运行状态,则释放第一目标任务;
若检测到所述第一目标任务处于运行状态,则等待所述第一目标任务执行完毕后,释放所述第一目标任务;
所述向所述服务器发送任务释放指令,包括:
在释放所述第一目标任务后,向所述服务器发送任务释放指令。
第二方面,本申请实施例还提供一种任务调度方法,该方法在服务器中执行,该方法包括:
接收调度器发送的任务释放指令;任务释放指令中携带有第一目标负载参数以及第一目标任务的任务识别标识;
将与所述任务识别标识对应的第一目标任务进行解锁,并根据所述第一目标负载参数生成第一目标任务的释放任务事件。
一种可能的实施方式中,该方法还包括:
当接收到所述调度器发送的抢占请求后,将第二目标任务分配给调度器,并将所述第二目标任务加锁;
其中,所述抢占请求是所述调度器基于自身负载参数以及第二目标负载参数确定的。
第三方面,本申请实施例还提供一种任务调度装置,该装置设置在调度器中,包括:
检测模块,用于监测自身负载参数是否超出预设的负载参数阈值;
确定模块,用于确定待释放的第一目标任务;
释放模块,用于向服务器发送任务释放指令;所述任务释放指令中携带有第一目标负载参数,以及第一目标任务的任务识别标识;所述第一目标负载参数为所述自身负载参数。
一种可能的实施方式中,该装置还包括:
监听模块,用于监听第二目标任务的释放任务事件;
获取模块,用于获取第二目标任务的释放任务事件中携带的第二目标负载参数;
抢占模块,根据所述第二目标任务的释放任务事件中携带的第二目标负载参数以及自身负载参数,确定是否抢占所述第二目标任务;如果是,向所述服务器发送针对所述第二目标任务的抢占请求。
一种可能的实施方式中,所述抢占模块,还用于:
确定所述自身负载参数;
将所述自身负载参数与所述第二目标负载参数进行比对;
若所述自身负载参数小于所述第二目标负载参数,则确定抢占所述第二目标任务。
一种可能的实施方式中,所述装置,还包括:
计算模块,用于获取自身的资源信息和任务信息;根据自身的资源信息和所述任务信息,确定自身负载参数。
一种可能的实施方式中,所述计算模块,具体用于:
根据所述资源信息,确定资源负载参数;
根据所述任务信息,确定第一任务负载参数;
将所述资源负载参数和所述第一任务负载参数中的较大者,确定为所述自身负载参数。
一种可能的实施方式中,所述资源信息包括:处理器资源占用率和存储资源占用率;
所述计算模块,还用于:
根据所述处理器资源占用率以及与所述处理器资源占用率对应的权重系数,确定处理器资源参数;
根据所述存储资源占用率以及与所述存储资源占用率对应的权重系数,确定存储资源参数;
将所述处理器资源参数和所述存储资源参数中的较大者,确定为所述资源负载参数。
一种可能的实施方式中,所述任务信息包括:每个任务中包含任务单元的个数,和调度每个任务所需的时长;
所述计算模块,还用于:针对每个任务,获取每个任务中包含任务单元的个数大于预设的个数阈值的第一任务集合;
针对每个任务,获取调度每个任务所需的时长大于预设的时长阈值的第二任务集合;
选取第一任务集合与第二任务集合的并集作为第三任务集合;
将所述第三任务集合中包含的任务的个数与所述调度器中运行的总任务数的比值,确定为所述第一任务负载参数。
一种可能的实施方式中,所述确定模块,具体用于:
根据所述任务信息,确定每个任务的第二任务负载参数;
将第二任务负载参数最大的任务确定为所述第一目标任务。
一种可能的实施方式中,所述任务信息,包括:每个任务中包含任务单元的个数,和调度每个任务所需的时长;
所述确定模块,还用于:
针对每个任务,根据调度该任务所需的时长与预设的时长阈值之间的比值,计算单位调度时长;
根据该任务中包含任务单元的个数和所述单位调度时长,得到该任务的第二任务负载参数。
一种可能的实施方式中,所述释放模块,还用于:
检测所述第一目标任务是否处于运行状态;
若检测到所述第一目标任务并非处于运行状态,则释放第一目标任务;
若检测到所述第一目标任务处于运行状态,则等待所述第一目标任务执行完毕后,释放所述第一目标任务;
所述向服务器发送任务释放指令,包括:
在释放所述第一目标任务后,向所述服务器发送任务释放指令。
第四方面,本申请实施例还提供一种任务调度装置,该装置设置在服务器中,包括:
接收模块,用于接收调度器发送的任务释放指令;任务释放指令中携带有第一目标负载参数以及第一目标任务的任务识别标识;
锁模块,用于将与所述任务识别标识对应的第一目标任务进行解锁;
事件模块,用于根据所述第一目标负载参数生成第一目标任务的释放任务事件。
一种可能的实施方式中,所述接收模块,还用于接收所述调度器发送的抢占请求;其中,所述抢占请求是所述调度器基于自身负载参数以及第二目标负载参数确定的;
锁模块,用于将第二目标任务分配给调度器,并将所述第二目标任务加锁。
第五方面,本申请实施例还提供一种任务调度***,包括:调度器和服务器;其中:
所述调度器,用于监测自身负载参数是否超出预设的负载参数阈值;如果是,则确定待释放的第一目标任务,并向所述服务器发送任务释放指令;所述任务释放指令中携带有第一目标负载参数以及第一目标任务的任务识别标识;所述第一目标负载参数为所述自身负载参数;
所述服务器,用于在接收所述调度器发送的任务释放指令后,将与所述任务识别标识对应的第一目标任务进行解锁,并根据所述第一目标负载参数生成第一目标任务的释放任务事件。
一种可能的实施方式中,所述调度器还用于在监听到第二目标任务的释放任务事件后,根据所述释放任务事件中携带的第二目标负载参数以及自身负载参数确定是否抢占所述第二目标任务;如果是,向所述服务器发送针对所述第二目标任务的抢占请求;
所述服务器,还用于当接收到所述调度器发送的抢占请求后,将所述第二目标任务分配给所述调度器,并将所述第二目标任务加锁。
一种可能的实施方式中,所述调度器,用于采用下述方式确定自身负载参数:
获取自身的资源信息和任务信息;
根据自身的资源信息和任务信息,确定自身负载参数。
一种可能的实施方式中,所述调度器,用于根据自身的资源信息和任务信息,采用下述方式确定自身负载参数:
根据所述资源信息,确定资源负载参数;
根据所述任务信息,确定第一任务负载参数;
将所述资源负载参数和所述第一任务负载参数中的较大者,确定为所述自身负载参数。
一种可能的实施方式中,所述资源信息包括:处理器资源占用率和存储资源占用率;
所述调度器,用于根据所述资源信息,采用下述方式确定所述资源负载参数:
根据所述处理器资源占用率以及与所述处理器资源占用率对应的权重系数,确定处理器资源参数;
根据所述存储资源占用率以及与所述存储资源占用率对应的权重系数,确定存储资源参数;
将所述处理器资源参数和所述存储资源参数中的较大者,确定为所述资源负载参数。
一种可能的实施方式中,所述任务信息包括:每个任务中包含任务单元的个数,和调度每个任务所需的时长;
所述调度器用于根据所述任务信息,采用下述方式确定所述第一任务负载参数:
针对每个任务,获取每个任务中包含任务单元的个数大于预设的个数阈值的第一任务集合;
针对每个任务,获取调度每个任务所需的时长大于预设的时长阈值的第二任务集合;
将所述第一任务集合和所述第二任务集合的并集确定为第三任务集合;
将所述第三任务集合中包含的任务的个数与所述调度器中运行的总任务数的比值,确定为所述第一任务负载参数。
一种可能的实施方式中,所述调度器,用于采用下述方式确定待释放的第一目标任务:
根据任务信息,确定每个任务的第二任务负载参数;
将第二任务负载参数最大的任务确定为所述第一目标任务。
一种可能的实施方式中,所述任务信息,包括:每个任务中包含任务单元的个数,和调度每个任务所需的时长;
所述调度器,用于采用下列方式确定每个任务的第二任务负载参数:
针对每个任务,根据调度该任务所需的时长与预设的时长阈值之间的比值,计算单位调度时长;
根据该任务中包含任务单元的个数和所述单位调度时长,得到该任务的第二任务负载参数。
一种可能的实施方式中,所述调度器,在向所述服务器发送任务释放指令之前,还用于:
检测所述第一目标任务是否处于运行状态;
若检测到所述第一目标任务并非处于运行状态,则释放第一目标任务;
若检测到所述第一目标任务处于运行状态,则等待所述第一目标任务执行完毕后,释放所述第一目标任务;
调度器,用于通过下述方式向所述服务器发送任务释放指令:
在释放所述第一目标任务后,向所述服务器发送任务释放指令。
一种可能的实施方式中,所述服务器,用于采用下列方式将与所述任务识别标识对应的第一目标任务进行解锁:
将所述第一目标任务中标注的调度器的设备识别标识清除。
一种可能的实施方式中,所述调度器,用于根据所述第二目标负载参数与自身负载参数,采用下述方式确定是否抢占所述第二目标任务:
确定所述自身负载参数;
将所述自身负载参数与所述第二目标负载参数进行比对;
若所述自身负载参数小于所述第二目标负载参数,则确定抢占所述第二目标任务。
一种可能的实施方式中,所述服务器,用于采用下列方式将所述第二目标任务加锁:
为所述第二目标任务标注上分配的调度器的设备识别标识。
第六方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当该电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面或第一方面的任一种可能的实施方式中的任务调度方法,或者执行上述第二方面或第二方面的任一种可能的实施方式中的任务调度方法的步骤。
第七方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面或第一方面的任一种可能的实施方式中的任务调度方法,或者执行上述第二方面或第二方面的任一种可能的实施方式中的任务调度方法的步骤。
本申请实施例提供的任务调度方法、装置、电子设备及可读存储介质,调度器在监测到自身负载参数超过预设的负载参数阈值的情况下,确定并释放待释放的第一目标任务。与现有技术中的基于每个调度器上运行的任务个数和待分配的任务个数进行任务调度相比,本申请实施例在任务运行过程中动态调整每个调度器运行的任务,并且,不仅基于每个调度器上运行的任务个数,而且基于每个调度器的自身负载参数进行任务调度,使每个调度器真正达到负载均衡,避免分布式计算***出现资源瓶颈,进而提升分布式计算***的计算效率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的一种任务调度***的结构框架;
图2示出了本申请实施例提供的一种任务调度方法的流程图;
图3示出了本申请实施例提供的另一种任务调度方法的流程图;
图4示出了本申请实施例提供的另一种任务调度方法的流程图;
图5示出了本申请实施例提供的另一种任务调度方法中确定自身负载参数的方法流程图;
图6示出了本申请实施例提供的另一种任务调度方法中确定待释放的第一目标任务的方法流程图;
图7示出了本申请实施例提供的另一种任务调度方法的流程图;
图8示出了本申请实施例提供的一种任务调度装置的结构示意图;
图9示出了本申请实施例提供的另一种任务调度装置的结构示意图;
图10示出了本申请实施例提供的另一种任务调度装置的结构示意图;
图11示出了本申请实施例提供的另一种任务调度装置的结构示意图;
图12示出了本申请实施例提供的另一种任务调度装置的结构示意图;
图13示出了本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,在分布式计算***中,主要的负载均衡技术包括:轮询(Round Robin,RR)、加权轮询(Weight Round Robin,WRR)、源地址哈希(Source Hashing/IP_hash)、目标地址哈希(Destination Hashing,DH)、最小连接(Leash-connection,LC)以及加权最小连接(Weight Leash-connection,WLC)等。上述现有技术在调度器间进行任务调度时,仅在分配任务的过程中,基于每个调度器上运行的任务个数和待分配的任务个数进行任务调度。
然而,由于不同任务对调度器的资源占用情况也是不同的,在一些情况下不同调度器上运行的任务个数相近,但占用的资源相差很大。此时为仅根据每个调度器上运行的任务个数和待分配的任务个数进行任务调度,会出现资源占用较多的调度器继续抢占更多的任务的情况,每个调度器的运算资源无法达到真正的负载均衡,从而使整个分布式计算***出现资源瓶颈,影响分布式计算***的计算效率。
基于此,本申请实施例提供了一种任务调度方法、装置、电子设备及可读存储介质,调度器在监测到自身负载参数超过预设的负载参数阈值的情况下,确定并释放待释放的第一目标任务。与现有技术中的基于每个调度器上运行的任务个数和待分配的任务个数进行任务调度相比,本申请实施例在任务运行过程中动态调整每个调度器运行的任务,并且,不仅基于每个调度器上运行的任务个数,而且基于每个调度器的自身负载参数进行任务调度。本申请实施例使每个调度器真正达到负载均衡,避免分布式计算***出现资源瓶颈,进而提升分布式计算***的计算效率。下面通过实施例进行描述。
为便于对本实施例进行理解,首先对本申请实施例所公开的一种任务调度***进行详细介绍。
实施例一
本申请实施例提供的一种任务调度***可以应用于任意一种分布式计算***中,用于在分布式计算***中的多个调度器之间进行负载均衡。如图1所示是本申请实施例一提供的一种任务调度***100,包括:调度器101以及服务器102;其中:
所述调度器101,用于监测自身负载参数是否超出预设的负载参数阈值;如果是,则确定待释放的第一目标任务,并向所述服务器102发送任务释放指令;所述任务释放指令中携带有第一目标负载参数以及第一目标任务的任务识别标识;所述第一目标负载参数为所述自身负载参数;
这里,调度器101可以是分布式计算***中的任意一台调度器。分布式计算***中的每台调度器,动态维护自身负载参数,并基于自身负载参数在调度器上的任务运行过程中,进行调度器计算资源的动态负载均衡,在任务数量均衡的基础上,实现运算资源的均衡利用。因此,调度器101实时获取表征自身运行的每个任务的运行情况的任务信息和调度器自身的资源信息,并根据所述资源信息和所述任务信息,计算自身负载参数。
这里,上述任务信息包括,每个任务中包含任务单元的个数,和调度每个任务所需的时长。这里,调度每个任务所需的时长是根据任务的启动时间和任务的间隔时间获得的。任务的启动时间,用于表征该任务是何时被触发运行的。任务的间隔时间,用于表征该任务间隔多久再次被触发执行。上述任务信息可以通过以下实施方式获得:
a:在一种可能的实施方式中,任务的启动时间和任务的间隔时间可以根据调度器的调度基础特征获得,通过用户录入的每个任务的基础数据解析得到。例如:通过计划任务(Cron)表达式、fixDelay、fixRate等语句配置的定时任务,可以通过Cron表达式、fixDelay、fixRate等语句中包含的时间参数,提取包含任务启动时间和任务的间隔时间等时间特征值。也可以进一步得到任务的执行总周期和执行频率。
b:在另一种可能的实施方式中,还可以根据任务的调度情况提取调度器的调度动态特征,根据上述调度动态特征对调度器进行调度执行状态画像。从而判断调度器是否陷入资源瓶颈状态,是否需要进行任务的释放。
上述调度动态特征包括:任务中每个任务单元的运行时长、任务中每个任务单元开始执行之间的时间间隔、任务中每个任务单元的每次执行所需时长的变化值、任务的并发度。
如果任务中任一个任务单元的运行时长较长、任务中每个任务单元开始执行之间的时间间隔较长、任务中每个任务单元的每次执行所需时长变长或任务的并发度变高。则可以判断调度器陷入资源瓶颈状态,需要进行任务的释放。
因此,还可以根据实施获取到的任务的调度动态特征,计算每个任务单元实际调度和运行时的启动时间、执行周期和执行频率,从而得到任务实际运行过程中的任务启动时间和任务的间隔时间等,得到任务实际运行过程中调度每个任务所需的时长,将任务实际运行过程中调度每个任务所需的时长作为任务信息中调度每个任务所需的时长。
c:在另一种可能的实施方式中,可以根据调度器的调度基础特征和调度器的调度动态特征综合计算得到。并且,随着任务的多次运行,综合每次运行中调度每个任务所需的时长,得到的任务信息会更加精确。
在确定上述任务信息后,调度器101,还用于根据所述任务信息,采用下述方式确定第一任务负载参数,包括:
针对每个任务,获取每个任务中包含任务单元的个数大于预设的个数阈值的第一任务集合;针对每个任务,获取调度每个任务所需的时长大于预设的时长阈值的第二任务集合;将所述第一任务集合和所述第二任务集合的并集确定为第三任务集合;将所述第三任务集合中包含的任务的个数与所述调度器中运行的总任务数的比值,确定为所述第一任务负载参数。
上述第一任务集合,表征了调度器101中存在的任务密集型的任务集合,上述第二任务集合,表征了调度器101中是否存在长耗时的任务集合,通过选取第一任务集合与第二任务集合的并集作为第三任务集合,综合了任务密集型的任务和长耗时的任务评判调度器101的负载情况,不仅从任务数量的级别,而且从任务调度耗时的级别对调度器101的负载情况进行了评估,可以更准确地得到调度器101的实际负载情况。
对调度器的任务情况进行评估后,可以对调度器的资源情况进行评估。上述资源信息包括:处理器资源占用率和存储资源占用率。除此之外,上述资源信息还可以包括:CPU请求最大耗时、CPU请求平均耗时、存储器请求最大耗时、存储器请求平均耗时以及调度器和实际执行任务的执行设备之间的网络状况等。
在获取资源信息后,调度器101,还用于根据所述资源信息,采用下述方式确定资源负载参数:
根据所述处理器资源占用率以及与所述处理器资源占用率对应的权重系数,确定处理器资源参数;根据所述存储资源占用率以及与所述存储资源占用率对应的权重系数,确定存储资源参数;将所述处理器资源参数和所述存储资源参数中的较大者,确定为所述资源负载参数。
由于在实际实施过程中,如果自身负载参数为80%时需要将调度器101中的任务释放,那么调度器101的计算资源占用小于80%时,就需要将调度器101中的任务释放。因此将所述处理器资源占有率和存储资源占有率,分别乘以小于1的权重系数,例如3/4,因此,在处理器资源信息或存储资源信息达到60%时,就需要对该调度器101进行任务释放。
在得到第一任务负载参数和资源负载参数之后,将所述资源负载参数和第一任务负载参数中的较大者,确定为调度器101的自身负载参数。
由于综合了任务信息和资源信息进行计算得到自身负载参数,因此在本申请实施例提供的任务调度***中,不仅简单地依照任务的个数进行调度器之间的均衡分配,而是按照任务和调度器的综合因素,自适应的调整调度器的负载,进行调度器计算资源的均衡利用,可以有效的避免CPU密集、磁盘输入输出(Input/Output,I/O)密集、网络I/O密集、每秒查询率(Query Per Second,QPS)高峰等事件对分布式计算***的影响,为业务逻辑的正常执行保驾护航。
之后,调度器101在负载参数超出预设的负载参数阈值的情况下,确定待释放的第一目标任务。通过自动通过判断自身负载参数是否超过预设的负载参数阈值,确定是否进行第一目标任务的释放,无需人工介入,可以减少人工成本。
在一种可能的实施方式中,所述调度器101,用于采用下述方式确定待释放的第一目标任务:
根据任务信息,确定每个任务的第二任务负载参数;将第二任务负载参数最大的任务确定为所述第一目标任务。
这里的任务信息得到方式与计算自身负载参数过程中的任务信息得到方式相同,此处不再赘述。这里,任务信息同样包括:每个任务中包含任务单元的个数,和调度每个任务所需的时长;
具体的,所述调度器101,还用于采用下列方式确定每个任务的第二任务负载参数:
针对每个任务,根据调度该任务所需的时长与预设的时长阈值之间的比值,计算单位调度时长;根据该任务中包含任务单元的个数和所述单位调度时长,得到该任务的第二任务负载参数。
在确定待释放的第一目标任务之后,调度器101,在向所述服务器发送任务释放指令之前,还检测所述第一目标任务是否处于运行状态;
若检测到所述第一目标任务并非处于运行状态,则释放所述第一目标任务;若检测到所述第一目标任务处于运行状态,则等待所述第一目标任务执行完毕后,释放所述第一目标任务;
并且,调度器101,用于通过下述方式向所述服务器发送任务释放指令:在释放所述第一目标任务后,向所述服务器发送任务释放指令。
所述服务器102,用于在接收所述调度器发送的任务释放指令后,将所述任务识别标识对应的第一目标任务进行解锁,并根据所述第一目标负载参数生成第一目标任务的释放任务事件。
具体的,所述服务器102,用于采用下列方式将与所述任务识别标识对应的第一目标任务进行解锁:
将所述第一目标任务中标注的调度器的设备识别标识清除。
本申请实施例提供的任务调度***,使每个调度器达到负载均衡,避免分布式计算***出现资源瓶颈,进而提升分布式计算***的计算效率。
实施例二
如图1所示的任务调度***100,也可以实现本申请实施例二提供的任务调度***,如图1所示,本申请实施例二提供的任务调度***,包括:调度器101和服务器102。
其中,调度器101用于在监听到第二目标任务的释放任务事件后,根据所述释放任务事件中携带的第二目标负载参数以及自身负载参数,确定是否抢占所述第二目标任务;如果是,向所述服务器发送针对所述第二目标任务的抢占请求。
这里,调度器101同样可以是分布式计算***中的任意一台调度器。分布式计算***中的每台调度器,实时监听服务器102中是否有释放任务事件,在监听到释放任务事件时,获取释放任务事件中携带的第二目标负载参数,并且利用与调度器101计算自身负载参数同样的方法,计算调度器101的自身负载参数。调度器101确定所述自身负载参数之后,将所述自身负载参数与所述第二目标负载参数进行比对;若所述自身负载参数小于所述第二目标负载参数,则确定抢占所述第二目标任务。
这里,第二目标任务的释放任务事件,可以是实施例一提供的任务调度***中第一目标任务的释放任务事件,也可以是任意一个调度器101发出释放任务指令后,服务器102生成的释放任务事件。
同样的,第二目标负载参数可以是实施例一提供的任务调度***中释放第一目标任务的调度器101的第一目标负载参数,也可以是任意一个调度器101释放第一目标任务时对应的第一目标负载参数。
服务器102,用于当接收到所述调度器发送的抢占请求后,将所述第二目标任务分配给所述调度器,并将所述第二目标任务加锁。
具体的,所述服务器102,用于采用下列方式将所述第二目标任务加锁:
为所述第二目标任务标注上分配的调度器的设备识别标识。
并且,在本申请实施例提供的任务调度***100中包括多个调度器101的情况下,所述服务器102,用于采用下列方式将第二目标任务分配给调度器101:
当接收到所述多个调度器101发送的抢占请求后,将第二目标任务分配给最先接到的抢占请求对应的目标调度器,并为所述第二目标任务标注所述目标调度器的标识。
在一种可能的实施方式中,服务器102还可以获取每个调度器101的自身负载参数,并将第二目标任务分配给自身负载参数最小的调度器101。从而,在自身负载参数超过预设的负载参数阈值的调度器与自身负载参数最小的调度器之间,进行任务转移。
本申请实施例提供的任务调度***,使每个调度器达到负载均衡,避免分布式计算***出现资源瓶颈,进而提升分布式计算***的计算效率。
基于相同的技术构思,本申请实施例还提供一种任务调度方法、装置、电子设备、以及计算机存储介质等,具体可参见以下实施例。
实施例三
如图2所示,是本申请实施例二提供的一种任务调度方法,该方法在服务器中执行,该方法包括:
S201:接收所述调度器发送的任务释放指令;所述任务释放指令中携带有第一目标负载参数以及第一目标任务的任务识别标识。
S202:将与所述任务识别标识对应的第一目标任务进行解锁,并根据所述第一目标负载参数生成第一目标任务的释放任务事件。
具体的,所述将与所述任务识别标识对应的第一目标任务进行解锁,包括:将所述第一目标任务中标注的调度器的设备识别标识清除。
如图3所示,本申请实施例二提供的一种任务调度方法,还可以包括:
S301:当接收到所述调度器发送的抢占请求后,将所述第二目标任务分配给调度器。
具体的,当调度器为多个时:
所述将第二目标任务分配给调度器,包括:
当接收到所述多个调度器发送的抢占请求后,将第二目标任务分配给最先接到的抢占请求对应的目标调度器,并为所述第二目标任务标注所述目标调度器的标识。
S302:将所述第二目标任务加锁。
具体的,所述将所述第二目标任务加锁,包括:为所述第二目标任务标注上分配的调度器的设备识别标识。
由实施例一和实施例二对任务调度***的介绍可知,此时的第一目标任务和第二目标任务可以为同一个目标任务,也可以不同。
本申请实施例提供的任务调度方法,使每个调度器达到负载均衡,避免分布式计算***出现资源瓶颈,进而提升分布式计算***的计算效率。
实施例四
图4示出了本申请实施例四提供的另一种任务调度方法,该方法在调度器中执行,该方法包括:
S401:确定自身负载参数,监测所述自身负载参数是否超出预设的负载参数阈值。
具体的,图5示出了确定自身负载参数的步骤,包括:
S501:获取任务信息和资源信息。
这里,采用与实施例一相同的方法获取任务信息和资源信息。
S502:获得任务密集型的任务集合。
针对每个任务中包含的任务单元进行计算,比较每个任务中的任务单元与预设的任务阈值之间的大小,获取每个任务中包含任务单元的个数大于预设的个数阈值的第一任务集合Js。具体的个数阈值根据实际情况选择。
S503:获得长耗时任务的任务集合。
针对每个任务,获取调度每个任务所需的时长大于预设的时长阈值的第二任务集合Jt。具体的时长阈值根据实际情况选择。
S504:根据所述第一任务集合和所述第二任务集合的并集,得到第三任务集合。
计算Jt和Js的并集,得到第三任务集合Jm:Jm=U(Jt,Js)。
S505:计算得到第一任务负载参数。
计算所述第三任务集合中包含的任务的个数与该调度器中运行的总任务数的比值,得到第一任务负载参数Kt。
第一任务负载参数Kt为Jm中的任务个数,该调度器中运行的总任务数Jc的比值:Kt=Jm/Jc。
S506:获取调度器的资源负载参数。
获取资源信息,上述资源信息包括:处理器资源占用率c和存储资源占用率m;处理器资源占用率c代表CPU的使用占比,存储资源占用率m代表存储资源的使用占比。
将所述处理器资源占用率和所述存储资源占用率中较大的,作为所述资源负载参数Max(c,m)。
S507:根据第一任务负载参数Kt和资源负载参数Max(c,m)计算自身负载参数Lf。
计算自身负载参数Lf的公式为:Lf=Max(K*Max(c,m),Kt)。
其中K为权重系数,实际实施过程中,K通常为大于1的权重系数。例如,自身负载参数Lf对应的负载参数阈值为0.8,但是实际计算机资源达到0.6就需要转移,则权重系数K=4/3。
确定自身负载参数之后,实时监测所述自身负载参数是否超出预设的负载参数阈值。
S402:如果是,则确定待释放的第一目标任务,并向所述服务器发送任务释放指令;所述任务释放指令中携带有第一目标负载参数(为所述自身负载参数),以及第一目标任务的任务识别标识。
如果自身负载参数超出预设的负载参数阈值,采用如图6所示的步骤确定待释放的第一目标任务。
S601:根据所述任务信息,确定每个任务的第二任务负载参数。
具体的,采用如下步骤确定每个任务的第二任务负载参数:
步骤1、根据调度该任务所述的时长与预设的时长阈值之间的比值,计算单位调度时长;
步骤2、根据该任务中包含任务单元的个数和所述单位调度时长进行计算,得到该任务的第二任务负载参数。
在实际实施过程中,可以针对每个任务,维护一个可转移常数Change。
每个任务的可转移常数的计算公式为:Change=Change+n+t/th。
其中,n为该任务中包含的任务单元的个数,t为调度该任务所需的时长,th为预设的时长阈值。此处预设的时长阈值,与获得长耗时任务的任务集合的步骤中预设的时长阈值相同。
S602:将每个任务中所述第二任务负载参数最大的任务确定为待释放的第一目标任务。
在确定待释放的第一目标任务之后,在向所述服务器发送任务释放指令之前,还包括:
检测所述第一目标任务是否处于运行状态;若检测到所述第一目标任务并非处于运行状态,则释放所述第一目标任务;若检测到所述第一目标任务处于运行状态,则等待所述第一目标任务执行完毕后,释放所述第一目标任务;在释放所述第一目标任务后,向所述服务器发送任务释放指令。
进一步的,如图7所示,本申请实施例三提供的任务调度方法还包括:
S701:在监听到第二目标任务的释放任务事件的情况下,获取释放任务事件中携带的第二目标负载参数。
S702:根据所述第二目标负载参数与自身负载参数确定是否抢占所述第二目标任务。
具体地,采用如下步骤根据所述第二目标负载参数与自身负载参数确定是否抢占所述第二目标任务:
步骤1、确定所述自身负载参数;
这里,采用如图4所示的步骤确定自身负载参数。
步骤2、将所述自身负载参数与所述第二目标负载参数进行比对;
步骤3、若所述自身负载参数小于所述第二目标负载参数,则确定抢占所述第二目标任务。
S703:如果是,向所述服务器发送针对所述第二目标任务的抢占请求。
本申请实施例提供的任务调度方法,使每个调度器达到负载均衡,避免分布式计算***出现资源瓶颈,进而提升分布式计算***的计算效率。
实施例五
图8示出了本申请实施例提供的一种任务调度装置800,该装置设置在服务器中,包括:
接收模块801,用于接收调度器发送的任务释放指令;任务释放指令中携带有第一目标负载参数以及第一目标任务的任务识别标识;
锁模块802,用于将与所述任务识别标识对应的第一目标任务进行解锁;
事件模块803,用于根据所述第一目标负载参数生成第一目标任务的释放任务事件。
一种可能的实施方式中,所述锁模块802,还用于:将所述第一目标任务中标注的调度器的设备识别标识清除。
一种可能的实施方式中,所述接收模块801,还用于接收所述调度器发送的抢占请求;其中,所述抢占请求是所述调度器基于自身负载参数以及所述第二目标负载参数确定的;
锁模块802,用于将所述第二目标任务分配给调度器,并将所述第二目标任务加锁。
一种可能的实施方式中,所述锁模块802,还用于:为所述第二目标任务标注上分配的调度器的设备识别标识。
本申请实施例提供的任务调度装置,使每个调度器达到负载均衡,避免分布式计算***出现资源瓶颈,进而提升分布式计算***的计算效率。
实施例六
图9示出了本申请实施例提供的一种任务调度装置900,该装置设置在调度器中,包括:
检测模块901,用于监测自身负载参数是否超出预设的负载参数阈值;
确定模块902,用于确定待释放的第一目标任务;
释放模块903,用于向服务器发送任务释放指令;所述任务释放指令中携带有所述第一目标负载参数,以及第一目标任务的任务识别标识;所述第一目标负载参数为所述自身负载参数。
一种可能的实施方式中,如图10所示,本申请实施例还提供一种任务调度装置1000,所述装置还包括:
监听模块1001,用于监听第二目标任务的释放任务事件;
获取模块1002,用于获取第二目标任务的释放任务事件中携带的第二目标负载参数;
抢占模块1003,根据所述第二目标任务的释放任务事件中携带的第二目标负载参数以及自身负载参数,确定是否抢占所述第二目标任务;如果是,向服务器发送针对所述第二目标任务的抢占请求。
一种可能的实施方式中,所述抢占模块1003,还用于:
确定所述自身负载参数;
将所述自身负载参数与所述第二目标负载参数进行比对;
若所述自身负载参数小于所述第二目标负载参数,则确定抢占所述第二目标任务。
一种可能的实施方式中,如图11所示,本申请实施例还提供一种任务调度装置1100,所述装置还包括:
计算模块1101,用于获取自身的资源信息和任务信息;根据自身的资源信息和所述任务信息,确定自身负载参数。
一种可能的实施方式中,所述计算模块1101,具体用于:
根据所述资源信息,确定资源负载参数;
根据所述任务信息,确定第一任务负载参数;
将所述资源负载参数和所述第一任务负载参数中的较大者,确定为所述自身负载参数。
一种可能的实施方式中,所述资源信息包括:处理器资源占用率和存储资源占用率;
所述计算模块1101,还用于:
根据所述处理器资源占用率以及与所述处理器资源占用率对应的权重系数,确定处理器资源参数;
根据所述存储资源占用率以及与所述存储资源占用率对应的权重系数,确定存储资源参数;
将所述处理器资源参数和所述存储资源参数中的较大者,确定为所述资源负载参数。
一种可能的实施方式中,所述任务信息包括:每个任务中包含任务单元的个数,和调度每个任务所需的时长;
所述计算模块1101,还用于:针对每个任务,获取每个任务中包含任务单元的个数大于预设的个数阈值的第一任务集合;
针对每个任务,获取调度每个任务所需的时长大于预设的时长阈值的第二任务集合;
选取第一任务集合与第二任务集合的并集作为第三任务集合;
将所述第三任务集合中包含的任务的个数与所述调度器中运行的总任务数的比值,确定为所述第一任务负载参数。
一种可能的实施方式中,如图12所示,本申请实施例还提供一种任务调度装置1200,所述装置也包括计算模块1101。
一种可能的实施方式中,所述确定模块902,具体用于:
根据所述任务信息,确定每个任务的第二任务负载参数;
将第二任务负载参数最大的任务确定为所述第一目标任务。
一种可能的实施方式中,所述任务信息,包括:每个任务中包含任务单元的个数,和调度每个任务所需的时长;
所述确定模块902,还用于:
针对每个任务,根据调度该任务所需的时长与预设的时长阈值之间的比值,计算单位调度时长;
根据该任务中包含任务单元的个数和所述单位调度时长,得到该任务的第二任务负载参数。
一种可能的实施方式中,所述释放模块903,还用于:
检测所述第一目标任务是否处于运行状态;
若检测到所述第一目标任务并非处于运行状态,则释放第一目标任务;
若检测到所述第一目标任务处于运行状态,则等待所述第一目标任务执行完毕后,释放所述第一目标任务;
所述向所述服务器发送任务释放指令,包括:
在释放所述第一目标任务后,向所述服务器发送任务释放指令。
实施例七
图13示出了本申请实施例所提供的一种电子设备1300,包括处理器1301,存储器1302,总线1303,所述处理器1301和存储器1302通过总线1303连接;处理器1301用于执行存储器1302中存储的可执行模块,例如计算机程序。
其中,存储器1302可能包含高速随机存取存储器(Random Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
总线1303可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩充工业标准总结结构(Extended Industry Standard Architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器1302用于存储程序,所述处理器1301在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器1301中,或者由处理器1301实现。
处理器1301可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1301中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1301可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1302,处理器1301读取存储器1302中的信息,结合其硬件完成上述实施例三的任务调度方法中的步骤,或执行上述实施例四的任务调度方法的步骤。
本发明实施例提供的一种任务调度方法、装置及电子设备,与上述实施例提供的一种任务调度***具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
实施例七
本实施例公开了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述实施例三的任务调度方法中的步骤,或执行上述实施例四的任务调度方法中的步骤。
本申请实施例所提供的进行任务调度方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求书所记载的保护范围为准。

Claims (14)

1.一种任务调度方法,其特征在于,该方法应用于调度器,该方法包括:
确定自身负载参数,监测所述自身负载参数是否超出预设的负载参数阈值;
如果是,则确定待释放的第一目标任务,并向服务器发送任务释放指令;
所述任务释放指令中携带有第一目标负载参数,以及所述第一目标任务的任务识别标识;所述第一目标负载参数为所述自身负载参数;
所述确定待释放的第一目标任务,包括:
获取所述调度器的任务信息;
根据所述任务信息,确定每个任务的第二任务负载参数;
将第二任务负载参数最大的任务确定为所述第一目标任务;
所述任务信息,包括:每个任务中包含任务单元的个数,和调度每个任务所需的时长;
所述根据所述任务信息,确定每个任务的第二任务负载参数,包括:
针对每个任务,根据调度该任务所需的时长与预设的时长阈值之间的比值,计算单位调度时长;
根据该任务中包含任务单元的个数和所述单位调度时长,得到该任务的第二任务负载参数。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:
在监听到第二目标任务的释放任务事件后,
根据所述第二目标任务的所述释放任务事件中携带的第二目标负载参数以及自身负载参数确定是否抢占所述第二目标任务;
如果是,向所述服务器发送针对所述第二目标任务的抢占请求。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第二目标负载参数与自身负载参数确定是否抢占所述第二目标任务,包括:
确定所述自身负载参数;
将所述自身负载参数与所述第二目标负载参数进行比对;
若所述自身负载参数小于所述第二目标负载参数,则确定抢占所述第二目标任务。
4.根据权利要求1或3所述的方法,其特征在于,采用如下步骤确定自身负载参数:
获取自身的资源信息和任务信息;
根据所述资源信息和所述任务信息,确定自身负载参数。
5.根据权利要求4所述的方法,其特征在于,所述根据所述资源信息和所述任务信息,确定自身负载参数,包括:
根据所述资源信息,确定资源负载参数;
根据所述任务信息,确定第一任务负载参数;
将所述资源负载参数和所述第一任务负载参数中的较大者,确定为所述自身负载参数。
6.根据权利要求5所述的方法,其特征在于,所述资源信息包括:处理器资源占用率和存储资源占用率;
所述根据所述资源信息,确定所述资源负载参数,包括:
根据所述处理器资源占用率以及与所述处理器资源占用率对应的权重系数,确定处理器资源参数;
根据所述存储资源占用率以及与所述存储资源占用率对应的权重系数,确定存储资源参数;
将所述处理器资源参数和所述存储资源参数中的较大者,确定为所述资源负载参数。
7.根据权利要求5所述的方法,其特征在于,所述任务信息包括:每个任务中包含任务单元的个数,和调度每个任务所需的时长;
所述根据所述任务信息,确定所述第一任务负载参数,包括:
针对每个任务,获取每个任务中包含任务单元的个数大于预设的个数阈值的第一任务集合;
针对每个任务,获取调度每个任务所需的时长大于预设的时长阈值的第二任务集合;
选取所述第一任务集合与所述第二任务集合的并集作为第三任务集合;
将所述第三任务集合中包含的任务的个数与所述调度器中运行的总任务数的比值,确定为所述第一任务负载参数。
8.根据权利要求5所述的方法,其特征在于,在向所述服务器发送任务释放指令之前,还包括:
检测所述第一目标任务是否处于运行状态;
若检测到所述第一目标任务并非处于运行状态,则释放所述第一目标任务;
若检测到所述第一目标任务处于运行状态,则等待所述第一目标任务执行完毕后,释放所述第一目标任务;
所述向所述服务器发送任务释放指令,包括:
在释放所述第一目标任务后,向所述服务器发送所述任务释放指令。
9.一种任务调度方法,其特征在于,该方法应用于服务器,该方法包括:
接收调度器发送的任务释放指令;所述任务释放指令中携带有第一目标负载参数以及第一目标任务的任务识别标识;
将与所述任务识别标识对应的所述第一目标任务进行解锁,并根据所述第一目标负载参数生成所述第一目标任务的释放任务事件。
10.根据权利要求9所述的方法,其特征在于,该方法还包括:
当接收到所述调度器发送的抢占请求后,将第二目标任务分配给调度器,并将所述第二目标任务加锁;
其中,所述抢占请求是所述调度器基于自身负载参数以及第二目标负载参数确定的。
11.一种任务调度装置,其特征在于,该装置设置在调度器中,包括:
检测模块,用于监测自身负载参数是否超出预设的负载参数阈值;
确定模块,用于确定待释放的第一目标任务;
释放模块,用于向服务器发送任务释放指令;所述任务释放指令中携带有第一目标负载参数以及所述第一目标任务的任务识别标识;所述第一目标负载参数为所述自身负载参数;
所述确定模块,具体用于:
获取所述调度器的任务信息;
根据所述任务信息,确定每个任务的第二任务负载参数;
将第二任务负载参数最大的任务确定为所述第一目标任务;
所述任务信息,包括:每个任务中包含任务单元的个数,和调度每个任务所需的时长;
所述确定模块,还用于:
针对每个任务,根据调度该任务所需的时长与预设的时长阈值之间的比值,计算单位调度时长;
根据该任务中包含任务单元的个数和所述单位调度时长,得到该任务的第二任务负载参数。
12.一种任务调度装置,其特征在于,该装置设置在服务器中,包括:
接收模块,用于接收调度器发送的任务释放指令;所述任务释放指令中携带有第一目标负载参数以及第一目标任务的任务识别标识;
锁模块,用于将与所述任务识别标识对应的所述第一目标任务进行解锁;
事件模块,用于根据所述第一目标负载参数生成所述第一目标任务的释放任务事件。
13.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当该电子设备运行时,所述处理器与所述存储器之间通过所述总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至8任一所述的任务调度方法,或执行如权利要求9或10所述的任务调度方法的步骤。
14.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至8任一所述的任务调度方法,或执行如权利要求9或10任一所述的任务调度方法的步骤。
CN201910108982.9A 2019-02-03 2019-02-03 任务调度方法、装置、电子设备及可读存储介质 Active CN109815019B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910108982.9A CN109815019B (zh) 2019-02-03 2019-02-03 任务调度方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910108982.9A CN109815019B (zh) 2019-02-03 2019-02-03 任务调度方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN109815019A CN109815019A (zh) 2019-05-28
CN109815019B true CN109815019B (zh) 2021-06-15

Family

ID=66605239

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910108982.9A Active CN109815019B (zh) 2019-02-03 2019-02-03 任务调度方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN109815019B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110619595B (zh) * 2019-09-17 2021-04-13 华中科技大学 一种基于多fpga加速器互联的图计算优化方法
CN110716800B (zh) * 2019-10-09 2021-07-09 广州华多网络科技有限公司 任务调度方法及装置、存储介质及电子设备
CN112882827A (zh) * 2019-11-29 2021-06-01 伊姆西Ip控股有限责任公司 用于负载均衡的方法、电子设备和计算机程序产品
CN111343275B (zh) * 2020-03-02 2022-09-30 北京奇艺世纪科技有限公司 资源调度方法和***
CN111679900B (zh) * 2020-06-15 2023-10-31 杭州海康威视数字技术股份有限公司 任务处理方法和装置
CN112486648A (zh) * 2020-11-30 2021-03-12 北京百度网讯科技有限公司 任务调度方法、装置、***、电子设备和存储介质
CN113608878A (zh) * 2021-08-18 2021-11-05 上海德拓信息技术股份有限公司 一种基于资源权重计算的任务分布式调度方法与***
CN117056058B (zh) * 2023-10-11 2024-02-27 国家气象信息中心(中国气象局气象数据中心) 基于状态感知的任务调度方法、***、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101140528A (zh) * 2007-08-31 2008-03-12 中兴通讯股份有限公司 一种实现集群内定时任务负载均衡的方法、装置及***
CN101909067A (zh) * 2010-08-26 2010-12-08 北京天融信科技有限公司 安全网关集群防病毒的方法及***
CN102184125A (zh) * 2011-06-02 2011-09-14 首都师范大学 异构多核环境下基于程序行为在线分析的负载均衡方法
CN103812949A (zh) * 2014-03-06 2014-05-21 中国科学院信息工程研究所 一种面向实时云平台的任务调度与资源分配方法及***
CN104917839A (zh) * 2015-06-12 2015-09-16 浪潮电子信息产业股份有限公司 一种用于云计算环境下的负载均衡方法
CN106095581A (zh) * 2016-06-18 2016-11-09 南京采薇且歌信息科技有限公司 一种私有云条件下的网络存储虚拟化调度方法
CN108809848A (zh) * 2018-05-28 2018-11-13 北京奇艺世纪科技有限公司 负载均衡方法、装置、电子设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050034130A1 (en) * 2003-08-05 2005-02-10 International Business Machines Corporation Balancing workload of a grid computing environment
US9170849B2 (en) * 2012-01-09 2015-10-27 Microsoft Technology Licensing, Llc Migration of task to different pool of resources based on task retry count during task lease
CN103297499B (zh) * 2013-04-19 2017-02-08 无锡成电科大科技发展有限公司 一种基于云平台的调度方法及***
CN106156115B (zh) * 2015-04-07 2019-09-27 ***通信集团云南有限公司 一种资源调度方法及装置
CN107391031B (zh) * 2017-06-27 2020-05-08 北京邮电大学 一种基于混合存储的计算***中的数据迁移方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101140528A (zh) * 2007-08-31 2008-03-12 中兴通讯股份有限公司 一种实现集群内定时任务负载均衡的方法、装置及***
CN101909067A (zh) * 2010-08-26 2010-12-08 北京天融信科技有限公司 安全网关集群防病毒的方法及***
CN102184125A (zh) * 2011-06-02 2011-09-14 首都师范大学 异构多核环境下基于程序行为在线分析的负载均衡方法
CN103812949A (zh) * 2014-03-06 2014-05-21 中国科学院信息工程研究所 一种面向实时云平台的任务调度与资源分配方法及***
CN104917839A (zh) * 2015-06-12 2015-09-16 浪潮电子信息产业股份有限公司 一种用于云计算环境下的负载均衡方法
CN106095581A (zh) * 2016-06-18 2016-11-09 南京采薇且歌信息科技有限公司 一种私有云条件下的网络存储虚拟化调度方法
CN108809848A (zh) * 2018-05-28 2018-11-13 北京奇艺世纪科技有限公司 负载均衡方法、装置、电子设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"基于Petri网的负载平衡双层调度模型的研究";杨夏妮;《中国优秀硕士学位论文全文数据库信息科技辑》;20081215;第2008年卷(第12期);I138-119 *
"多功能相控阵雷达实时任务调度研究";卢建斌;《电子学报》;20060430;第34卷(第4期);第732-736页 *

Also Published As

Publication number Publication date
CN109815019A (zh) 2019-05-28

Similar Documents

Publication Publication Date Title
CN109815019B (zh) 任务调度方法、装置、电子设备及可读存储介质
CN109218355B (zh) 负载均衡引擎,客户端,分布式计算***以及负载均衡方法
US10037230B2 (en) Managing data processing resources
CN109597685B (zh) 任务分配方法、装置和服务器
US10162684B2 (en) CPU resource management in computer cluster
US10783002B1 (en) Cost determination of a service call
US8572621B2 (en) Selection of server for relocation of application program based on largest number of algorithms with identical output using selected server resource criteria
US20160378557A1 (en) Task allocation determination apparatus, control method, and program
US9405588B2 (en) Cloud resource allocation system and method
CN112506643A (zh) 一种分布式***的负载均衡方法、装置及电子设备
US11294736B2 (en) Distributed processing system, distributed processing method, and recording medium
JP2014032674A (ja) 仮想マシンのリソース配置システム及びその方法
JP2012079242A (ja) 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
US10733022B2 (en) Method of managing dedicated processing resources, server system and computer program product
US20190280945A1 (en) Method and apparatus for determining primary scheduler from cloud computing system
CN105471938B (zh) 服务器负载管理方法及装置
CN109783236B (zh) 用于输出信息的方法和装置
US20180309686A1 (en) Reducing rate limits of rate limiters
US9983911B2 (en) Analysis controller, analysis control method and computer-readable medium
CN109800085B (zh) 资源配置的检测方法、装置、存储介质和电子设备
US9501321B1 (en) Weighted service requests throttling
CN114564313A (zh) 负载调整方法、装置、电子设备及存储介质
CN108900865B (zh) 服务器、转码任务的调度方法及执行方法
CN115174223B (zh) 一种工控主机安全防护方法、***、智能终端及存储介质
CN113366444A (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
GR01 Patent grant
GR01 Patent grant