CN111158904A - 一种任务调度方法、装置、服务器及介质 - Google Patents

一种任务调度方法、装置、服务器及介质 Download PDF

Info

Publication number
CN111158904A
CN111158904A CN201911287132.6A CN201911287132A CN111158904A CN 111158904 A CN111158904 A CN 111158904A CN 201911287132 A CN201911287132 A CN 201911287132A CN 111158904 A CN111158904 A CN 111158904A
Authority
CN
China
Prior art keywords
queue
task
execution unit
data acquisition
execution
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
Application number
CN201911287132.6A
Other languages
English (en)
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.)
Zhuhai Kingsware Information Technology Co Ltd
Original Assignee
Zhuhai Kingsware Information Technology 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 Zhuhai Kingsware Information Technology Co Ltd filed Critical Zhuhai Kingsware Information Technology Co Ltd
Priority to CN201911287132.6A priority Critical patent/CN111158904A/zh
Publication of CN111158904A publication Critical patent/CN111158904A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请适用于信息技术领域,提供了一种任务调度方法、装置、服务器及介质,所述方法包括:配置执行单元中内部队列的队列大小,所述执行单元部署于所述服务器中;根据所述队列大小,从全局队列中获取已发布的数据采集任务,所述全局队列为中央调度集群的任务队列,所述中央调度集群由多个服务器组成;执行所述数据采集任务,获得与所述数据采集任务相对应的任务执行结果;将所述任务执行结果发送至数据处理分析平台,以指示所述数据处理分析平台对所述任务执行结果进行处理。通过上述方法,能够合理利用各个执行单元的计算资源,实现各个执行单元的负载均衡。

Description

一种任务调度方法、装置、服务器及介质
技术领域
本申请属于信息技术领域,尤其涉及一种任务调度方法、装置、服务器及介质。
背景技术
互联网技术(Internet Technology,IT)运维数据的采集在IT运维中起着重要作用,随着各行业信息化的逐步深入,一部分中小型企业选择公有云方案的同时,大部分的大型企事业单位都选择了构建自己的数据及信息中心,有自己的机房,这些机房的监控对象规模已经逐步由百级上升到了千级、万级,因而数据采集的任务规模大,需要实现采集任务在采集服务器集群上整体调度。
现有的监控数据采集任务调度方式有:基于产品化任务调度平台集中调度方式;各任务执行单元独立调度方式。基于产品化任务调度平台集中调度方式,采集任务管理受限于产品功能,任务调度的灵活性不足,且系统部署、配置及日常管理都较复杂。执行单元独立调度的方式,都是各系统自己实现,保障了灵活性及使用方便性,但是处理不好任务负载均衡及任务的实时变更。
发明内容
本申请实施例提供了一种任务调度方法、装置、服务器及介质,可以解决各个执行单元负载不均衡的问题。
第一方面,本申请实施例提供了一种任务调度方法,应用于服务器,所述方法包括:
配置执行单元中内部队列的队列大小,所述执行单元部署于所述服务器中;
根据所述队列大小,从全局队列中获取已发布的数据采集任务,所述全局队列为中央调度集群的任务队列,所述中央调度集群由多个服务器组成;
执行所述数据采集任务,获得与所述数据采集任务相对应的任务执行结果;
将所述任务执行结果发送至数据处理分析平台,以指示所述数据处理分析平台对所述任务执行结果进行处理。
第二方面,本申请实施例提供了一种任务调度装置,应用于服务器,所述装置包括:
配置单元,用于配置执行单元中内部队列的队列大小,所述执行单元部署于所述服务器中;
任务获取单元,用于根据所述队列大小,从全局队列中获取已发布的数据采集任务,所述全局队列为中央调度集群的任务队列,所述中央调度集群由多个服务器组成;
任务执行单元,用于执行所述数据采集任务,获得与所述数据采集任务相对应的任务执行结果;
任务发送单元,用于将所述任务执行结果发送至数据处理分析平台,以指示所述数据处理分析平台对所述任务执行结果进行处理。
第三方面,本申请实施例提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在服务器上运行时,使得服务器执行上述第一方面中所述的方法。
本申请实施例与现有技术相比存在的有益效果是:各个执行单元根据当前状态调节内部队列的大小,然后从全局队列中获取数据采集任务,并将数据采集任务添加至内部队列中;执行单元从内部队列中获取数据采集任务并执行后,将任务执行结果发送到数据处理分析平台,数据处理分析平台对任务执行结果进行处理。上述任务调度方法相当于各个执行单元根据自己的任务负载能力从全局队列中获取任务,当执行单元繁忙时,缩减任务领取;当执行单元不繁忙时,增加任务领取,这样各个执行单元根据各自的计算能力去承接数据采集任务,合理利用各个执行单元的计算资源,实现各个执行单元的负载均衡。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一提供的一种任务调度方法的流程示意图;
图2是本申请实施例二提供的一种任务调度方法的流程示意图;
图3是本申请实施例二提供的一种内部队列的调节方法的流程示意图;
图4是本申请实施例三提供的一种任务调度方法的流程示意图;
图5是本申请实施例四提供的一种任务调度系统的结构示意图;
图6是本申请实施例四提供的一种执行单元的结构示意图;
图7是本申请实施例五提供的一种任务调度装置的示意图;
图8是本申请实施例六提供的服务器的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
图1是本申请实施例一提供的一种任务调度方法的流程示意图,如图1所示,所述方法包括:
S101,配置执行单元中内部队列的队列大小,所述执行单元部署于所述服务器中;
本申请实施例的执行主体为数据采集系统的执行单元。执行单元是指数据采集系统中的各个执行节点,执行节点包括具有计算能力的终端设备,例如计算机、服务器等。一个服务器上可以部署一个执行单元,也可以部署多个执行单元,但是执行单元之间互不干扰。执行单元包括一个大小可变的内部队列,用于存放数据采集任务。内部队列的队列大小决定内部队列中能存放的数据采集任务数量,通过调节内部队列的队列大小,可以调节该执行单元能够获取的数据采集任务数量。
S102,根据所述队列大小,从全局队列中获取已发布的数据采集任务;
上述全局队列存在于中央调度集群中,在中央调度集群中生成数据采集任务,然后将数据采集任务放置到全局队列中。任务相关的配置信息变更仅需与中央集群进行交互。例如,当需要进行监控运维数据采集时,任务的工作内容、任务的调度频率等,只需要与中央调度集群进行交互,并不需要与执行单元进行交互。执行单元只需从全局队列中获取数据采集任务,在获取数据采集任务之外,执行单元与中央调度集群之间无其他任务调度相关通讯。
具体地,各个执行单元根据当前内部队列的队列大小,从全局队列中获取中央调度集群发布在全局队列中的数据采集任务,将获取到的数据采集任务发布到各自的内部队列中。例如,某一个执行单元内部队列的队列大小为5,则该执行单元一次最多只能从全局队列中获取5个数据采集任务,因为内部队列中最多只能存放5个数据采集任务。
S103,执行所述数据采集任务,获得与所述数据采集任务相对应的任务执行结果;
具体地,各个执行单元从各自的内部队列中的获取数据采集任务,执行数据采集任务,并获得相应的任务执行结果。S104,将所述任务执行结果发送至数据处理分析平台,以指示所述数据处理分析平台对所述任务执行结果进行处理。
具体地,执行单元执行完数据采集任务后,将任务执行结果提交至数据总线,数据总线将其发送到数据分析处理平台,数据分析处理平台对任务执行结果进行后续处理。
在本实施例中,数据采集任务的配置和生成均发生在中央调度集群中,中央调度集群将生成的数据采集任务发布到全局队列中,各个执行单元从全局队列中获取数据采集任务,将其存放在内部队列中。执行单元除获取任务外不需要与中央调度集群中有其他通讯,实现简单;任务的变更配置只需与中央调度集群进行交互,实现较为简单;任务的调度基于队列进行,各个执行单元根据自己的计算能力确定内部队列大小,根据各自队列的大小获取数据采集任务,相当于计算能力高的执行单元可以多获取一些数据采集任务,计算能力低的执行单元可以少获取一些数据采集任务,这样使得执行单元的计算能力与执行单元需要执行的数据采集任务具有对应关系,实现了各个执行单元的负载均衡。
图2是本申请实施例二提供的一种任务调度方法的流程示意图,如图2所示,所述方法包括:
S201,确定所述执行单元是否处于繁忙状态;
本申请实施例的执行主体为数据采集系统的执行单元。执行单元是指数据采集系统中的各个执行节点,执行节点包括具有计算能力的终端设备,例如计算机、服务器等。执行单元包括一个大小可变的内部队列。
执行单元的内部队列中的数据采集任务,是当前执行单元还未执行的数据采集任务,当执行单元的内部队列已满时,表明该执行单元有较多的任务堆积,该执行单元处于繁忙状态。具体地,可以获取内部队列中已包含的数据采集任务的第一个数;若第一个数等于内部队列的队列大小,则判定该执行单元处于繁忙状态,否则,判定该执行单元处于非繁忙状态。
S202,若所述执行单元处于繁忙状态,则缩减所述内部队列的队列大小;
若执行单元处于繁忙状态,则可以通过缩减内部队列的队列大小来降低执行单元的负载压力。队列大小可以决定该执行单元可以从全局队列中获取的采集任务数量,当执行单元处于繁忙状态时,当前内部队列中的数据采集任务全部处于等待状态,队列越长,在执行单元等待的任务就越多,执行单元的的负载就越大。为了减小执行单元的负载,可以缩减当前队列的大小,从而减少执行单元的内部队列中等待的数据采集任务数量,进而减少内部队列中数据采集任务的等待时间。
具体地,内部队列的队列大小在预设的最大值和预设的最小值之间变动,当执行单元处于繁忙状态,且当前内部队列的队列大小不是预设的最小值,可以缩减当前内部队列的大小。
示例性地,可以在内部队列已满时,等待执行单元从内部队列中再获取一个数据采集任务,内部队列的队列深度减一,然后将内部队列的队列大小缩减为当前队列深度。前述队列深度是指当前内部队列中存放的数据采集任务数量,即第一个数。
S203,若所述执行单元处于非繁忙状态,则增大所述内部队列的队列大小;
若执行单元处于非繁忙状态,且内部队列经常为空,表明该执行单元可能出现有部分计算资源闲置,因此可以通过增大内部队列的大小来增加执行单元获取的数据采集任务数量,从而充分地利用该执行单元的计算资源。
示例性地,可以设置一个空闲计数,用于统计内部队列为空的次数,空闲计数的起始值为零,若内部队列为空时,空闲计数增加1,当空闲计数大于队列大小的预设倍数,且队列大小不等于预设的最大值,则将队列大小增大预设比例。
作为一个示例,图3是一种内部队列的调节方法的流程示意图。如图3所示,可以获取内部队列深度,相当于获取当前内部队列中存放的数据采集任务数量。若队列深度等于队列长度,表明该内部队列已满,内部队列中已经有队列大小数量的数据采集任务在等待被执行,则标记系统繁忙;等待1秒后,再次检测内部队列是否已满。若内部队列未满,检测系统是否被标记为繁忙,若是,则标记系统空闲;然后判断当前队列大小是否为最小值,若当前队列大小非最小值,则将队列大小设置为当前队列深度;然后再去检测当前队列是否已满。系统在检测到内部队列已满时,系统繁忙,但是无法缩减当前内部队列的队列大小,因为内部队列中存放有数据采集执行任务,不能将其删除;只有等待一定时间,执行单元执行完一个任务,又从内部队列中获取一个任务后,当前内部队列的队列大小才可以缩减一。当然在缩减完之后,等待一定时间后再次检测当前队列是否已满,若当前队列已满,则重复前述步骤。这一过程相当于在系统繁忙时,缩减内部队列的长度。
当检测到当前队列未满且系统未被标记为繁忙时,可以检测当前内部队列是否为空,若为空,则将空闲计数加1;当空闲计数大于当前队列大小的2倍,且队列大小非最大值时,可以将队列大小设置为:队列大小+队列大小*10%。当内部队列非空,空闲计数未达到队列大小的2倍,队列大小为最大值及空闲计数清零之后,执行单元从全局队列中获取数据采集任务,并将获取到的数据采集任务发布到内部队列中。内部队列的空闲计数大于队列大小的2倍,相当于当前执行单元经常处于部分计算资源闲置的状态。因此增加内部队列大小,可以增加内部队列中可以存放的数据采集任务数量,从而增加从全局队列中获取的数据采集任务数量,进而增加执行单元需要执行的数据采集任务数量,使得执行单元内部计算资源得到充分运用。
S204,根据所述队列大小,从全局队列中获取已发布的数据采集任务;
具体地,当执行单元的内部队列处于非满状态时,该执行单元可以从全局队列中获取数据采集任务并将获取到的数据采集任务发布到内部队列中。
当全局队列中有数据采集任务时,可以直接获取数据采集任务;若全局队列中没有数据采集任务,可以等待预设时间后再次去从全局队列中获取数据采集任务。
S205,执行所述数据采集任务,获得与所述数据采集任务相对应的任务执行结果;
各个执行单元分别从各自的内部队列中获取数据采集任务,并执行数据采集任务,获得采集结果。各个执行单元可以独立地执行数据采集任务,互不通讯。
S206,将所述任务执行结果发送至数据处理分析平台,以指示所述数据处理分析平台对所述任务执行结果进行处理。
具体地,执行单元在执行完任务后,将采集结果通过数据总线发送至数据处理分析平台进行后续的数据分析。
本实施例中,各个执行单元通过调节内部队列的队列大小,来调节负载压力。繁忙状态的执行单元可以缩减队列大小,减少内部队列的数据采集采集任务数量;非繁忙状态的执行单元可以增大队列大小,增加内部队列的数据采集任务数量。通过这样的调节,使得各个执行单元的计算资源都能得到充分利用,并能实现各个任务执行单元的负载均衡。
图4是本申请实施例三提供的一种任务调度方法的流程示意图,如图4所示,所述方法包括:
S401,确定所述执行单元是否处于繁忙状态;
本申请实施例的执行主体为数据采集系统的执行单元。执行单元是指数据采集系统中的各个执行节点,执行节点包括具有计算能力的终端设备,例如计算机、服务器等。执行单元包括一个大小可变的内部队列。
具体地,执行单元中包括多个执行线程。执行线程是一个独立的执行单位,是能够调度和分派的基本单元,一个执行线程可以独立执行完一个数据采集任务,不需要与其他执行线程进行交互。执行线程在有任务时执行任务,无任务时挂起。一般地,一个执行单元内的执行线程数量可以根据执行单元物理计算能力确定,具体数值可以为大于等于执行单元CPU线程数,多出的线程数设置不提高执行单元的计算能力,但是当执行线程执行过程中需要进行输入输出时,该执行线程可以进入等待状态,其让出的计算资源可以分给已经就绪的执行线程,因此多出的执行线程能提高执行任务中输入输出等待部分的执行效率;内部队列初始大小可以在执行单元配置,内部队列的最大值可以设定为执行线程数的4倍,最小值可以设定为执行线程数。
当执行单元内部队列已满时,表明内部队列中装满等待执行线程执行的数据采集任务,执行单元中的各个执行线程都在执行各自的数据采集任务,执行单元处于繁忙状态。若当前内部队列未满时,当前执行单元处于非繁忙状态。
S402,若所述执行单元处于繁忙状态,则缩减所述内部队列的队列大小;
具体地,若执行单元处于繁忙状态,可以将队列大小缩减至不低于最小值,执行单元的执行线程在执行完自己的数据采集任务后,从内部队列中重新获取数据采集任务,因为队列大小的最小值为执行线程数量,相当于在所有的执行线程执行完各自的数据采集任务后,各个执行线程均再获取一次数据采集任务,就可以将内部队列中的数据采集任务全部执行,减少了数据采集任务在内部队列中的等待时间。
S403,若所述执行单元处于非繁忙状态,则增大所述内部队列的队列大小;
具体地,若内部队列经常为空,则表明执行单元内经常会有执行线程被挂起,执行单元内的计算资源没有被完全利用。为了使执行单元的计算资源的到充分利用,可以增大内部队列的大小,从而增加执行单元可以获得的数据采集任务数量,将其发布到内部队列中,执行线程从内部队列中获取数据采集任务时,可以获取到数据采集任务,从而不会被挂起。
S404,确定所述内部队列中处于空闲状态的队列位的第二个数;
上述第二个数即为当前内部队列还能存放数据采集任务的数量,具体地,获取队列大小与队列深度的差值,该差值即为第二个数。
S405,从所述全局队列中获取与所述第二个数相等的已发布的数据采集任务;
具体地,当全局队列中数据采集任务足够时,执行单元可以从全局队列中获取与第二个数相等的数据采集任务,若全局队列中任务不足时,可以先获取部分数据采集任务;若全局队列中没有任务时,可以等待一定时间后继续从全局队列中获取数据采集任务。
S406,将获取到的所述数据采集任务添加至所述内部队列中;
具体地,执行单元将从全局队列中获取的数据采集任务存放到内部队列中,这些数据采集任务在内部队列中等待被执行。
S407,调度所述多个执行线程从所述内部队列中获取所述数据采集任务;
具体地,当执行单元内部的执行线程执行完自己的数据采集任务后,可以从内部队列中获取数据采集任务;执行单元内部挂起的执行线程从内部队列中获取执行任务并执行。
S408,分别通过所述多个执行线程执行所述数据采集任务。
具体地,执行线程利用执行单元的计算资源执行数据数据采集任务,获得任务执行结果。
S409,将所述任务执行结果发送至数据处理分析平台,以指示所述数据处理分析平台对所述任务执行结果进行处理。
具体地,执行单元将任务执行结果发送至数据总线,数据总线将任务执行结果发送到数据处理分析平台,数据处理分析平台对任务执行结果中的数据进行分析和处理。
本实施例中,执行单元依靠内部的执行线程执行任务,执行线程实现简单,线程调度方便;各个执行单元通过调节内部队列的大小,使得数据采集任务在内部队列中的等待时间缩小,从而缩短任务执行的总时间;各个执行单元内部的执行线程都能够均衡地执行任务,实现负载均衡。
任务调度目标是实现对大量采集任务的最优调度,提高数据采集效率。具体来说,采集任务调度的性能可从总执行时间、负载均衡性两个方面来衡量。
任务总执行时间是指任务调度的跨度,即从第一个任务开始执行到最后一个任务执行结束所经历的时间。
负载均衡是指执行任务调度后,执行单元中各资源之间的负载状况是否平衡。任务调度方案应能够充分应用执行单元的各种资源,让性能各异的执行单元充分发挥作用,使任务尽可能快地完成。
本实施例在任务总执行时间及负载均衡两个指标上的表现可以考量三种执行状态:空闲状态,高负载状态、繁忙状态。
空闲状态是指全局队列及内部队列都处于常空状态,所有任务在进入全局队列及内部队列后无需等待,立即执行。
高负载状态是指全局队列处于常空状态,内部队列有少量堆积,任务等待时间为内部队列等待时间。
繁忙状态是指全局队列及内部队列都有堆积,任务等待时间为内部队列全局队列等待时间之和。
综合分析以上情况,本系统任务调度标准可以转换为各种状态下任务平均等待时间指标。
对于各节点执行资源一致的情形,执行资源抽象成执行线程数。设每个任务的执行时间相同为:T,执行单元个数为:N,执行线程数为:M,执行的总任务数为:W,任务总等待时间指标:T,任务总等待时间指标:T,内部队列大小为2M:
当W<N*M时系统处于空闲状态,无任务等待:
T=0;
T=0;
当W>N*M&&W<=N*2M时系统处于高负载状态:
T=(W-N*M)*T;
T=W*T-N*M*T
设W=N*2M:
Figure BDA0002318320260000121
当W>N*2M&&W<=N*3M时系统处于高负载状态:
T=(W-N*2M)*2T+N*M*T;
T=2*W*T-3N*M*T
设W=N*3M:
T=T;
当W>N*3M&&W<=N*4M时系统处于繁忙状态,无任务等待:
T=(W-N*3M)*3T+N*M*2T+N*M*T;
T=3*W*T-6N*M*T
设W=N*4M:
Figure BDA0002318320260000131
对于各节点执行资源不一致的情形,考虑两个节点的情况,设每个任务的执行时间相同为:T,执行节点1执行线程数为:2M,执行线程数为:M,执行的总任务数为:W,任务总等待时间指标:T,任务总等待时间指标:T,调度任务初始队列大小为4M:
高负载状态,不做内部队列伸缩处理,内部队列大小都为4M,
设W=7M:
T=2M*T+M*2T+M*T;
Figure BDA0002318320260000132
高负载状态,内部队列伸缩为4M、M,
设W=7M:
T=3M*T+M*T;
Figure BDA0002318320260000133
高负载状态,内部队列伸缩为2M、M,
设W=7M:
T=2M*T+M*T+M*2T;
Figure BDA0002318320260000134
综上,使用内部伸缩队列在资源不平衡的情况下,在最好情形时可以明显缩短平均等待时间,最坏情形也是与不做伸缩一致。同时基于本方法在任务执行压力不变的情况下,通过横向扩容可以有效的改进任务执行效率。
图5是本申请实施例四提供的一种任务调度系统的结构示意图。如图5所示,该任务调度系统包括中央调度集群,执行单元和数据分析处理平台。
中央调度集群用于生成数据采集任务,任务相关的配置信息变更仅需与中央调度集群交互,例如任务的工作内容、任务的调度频率等的变更只需要与中央调度集群进行交互,生成的任务发布到全局任务队列中,全局任务队列即图5中的消息队列。
各个执行单元到全局任务队列中获取执行任务。各执行单元之间无交互通讯,执行单元与中央集群之间除获取任务外,无其他任务调度相关通讯,采集结果直接提交到数据总线,由数据分析处理平台进行后续处理。
这种任务调度系统的结构设计使得任务配置的变更实现相对简单,因为任务的变更只需要与中央调度集群进行交互;任务调度系统结构中基于队列的采集任务分配实现了基础的任务执行的负载均衡;执行单元实现简单,因为其秩序从全局任务队列中获取任务并执行,不需要进行其他交互。
图6是本申请实施例四提供的一种执行单元的结构示意图,如图6所示,执行单元内部可以包括调度线程、内部队列和执行线程。调度线程用于从全局任务队列中获取数据采集任务,内部队列用于存放从全局任务队列中获取的数据采集任务,执行线程从内部队列中获取数据采集任务并执行,一个执行线程一次可以执行一个数据采集任务,在执行数据采集任务过程中不需要与其他线程进行交互。执行线程有任务时执行任务,无任务时挂起。
执行单元使用大小可变的内部队列控制执行节点获取全局任务的节奏;系统繁忙时缩减内部任务队列大小,减少全局任务领取;系统空闲时增大任务队列,增加全局任务领取;内部队列大小在队列最大到队列最小值之间调整,计算资源繁忙时任务队列最小,任务整体等待时间最小化;计算资源空闲时队列最大,可以领取最多的执行任务。
本实施例提供了一种分布式采集任务调度系统,网格计算是分布式计算的一种,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终结果。在监控运维数据采集中,可以利用网格计算将一个大的数据采集任务分成若干个互不相干的子任务,再将这些子任务在各个网格即各个执行单元中执行。本实施例提供的基于分布式网格的运维监控数据采集任务调度系统,能够在现有资源情况下尽量多地执行任务,在内部任务调度时实现等待时间的最小化。基于分布式网格的运维监控数据采集任务管理
在基于分布式网格的运维监控数据采集任务调度系统中,中央调度集群实现数据采集任务的集中生成和分配,数据采集在网格计算集群中实现,集群拓扑变化或者集群节点故障都不影响任务分配服务的持续、有效运行,同时网格计算集群中的任务调度信息也能方便快捷的变更;执行节点的内部任务调度算法保证了执行节点资源的合理利用,最小化任务总执行时间的同时,实现了执行节点资源利用的负载均衡。
本实施例可以应用在集中监控系统及一体化运维平台中,保障了监控采集任务的高效、稳定执行,同时合理使用执行节点计算资源,节省监控采集单元建设成本。
图7是本申请实施例五提供的一种任务调度装置的示意图,如图7所示,所述装置包括以下模块:
配置模块71,用于配置执行单元中内部队列的队列大小,所述执行单元部署于所述服务器中;
获取模块72,用于根据所述队列大小,从全局队列中获取已发布的数据采集任务,所述全局队列为中央调度集群的任务队列,所述中央调度集群由多个服务器组成;
执行模块73,用于执行所述数据采集任务,获得与所述数据采集任务相对应的任务执行结果;
发送模块74,用于将所述任务执行结果发送至数据处理分析平台,以指示所述数据处理分析平台对所述任务执行结果进行处理。
上述配置模块71具体可以包括如下子模块:
状态判断子模块,用于确定所述执行单元是否处于繁忙状态;
内部队列缩减子模块,用于若所述执行单元处于繁忙状态,则缩减所述内部队列的队列大小;
内部队列增加子模块,用于若所述执行单元处于非繁忙状态,则增大所述内部队列的队列大小;
上述状态判断子模块具体可以包括以下单元:
第一个数获取单元,用于获取所述内部队列中已包含的数据采集任务的第一个数;
判断单元,用于若所述第一个数等于所述内部队列的队列大小,则判定所述执行单元处于繁忙状态,否则,判定所述执行单元处于非繁忙状态。
上述内部队列缩减模块具体可以包括如下单元:
队列大小判断单元,用于判断所述队列大小是否等于预设的最小值;
队列大小缩减单元,用于若所述队列大小不等于预设的最小值,则将所述队列大小缩减为所述第一个数。
上述内部队列增加子模块具体可以包括以下单元:
空闲次数统计单元,用于统计所述内部队列为空的次数;
队列大小增加单元,用于若所述次数大于所述队列大小的预设倍数且所述队列大小不等于预设的最大值,则将所述队列大小增大预设比例;
空闲次数清零单元,用于将所述内部队列为空的次数置为零。
上述获取模块72具体可以包括以下子模块:
第二个数获取子模块,用于确定所述内部队列中处于空闲状态的队列位的第二个数;
任务获取子模块,用于从所述全局队列中获取与所述第二个数相等的已发布的数据采集任务;
任务添加子模块,用于将获取到的所述数据采集任务添加至所述内部队列中。
上述执行模块73具体可以包括以下子模块:
执行线程获取任务子模块,用于调度所述多个执行线程从所述内部队列中获取所述数据采集任务;
任务执行子模块,用于分别通过所述多个执行线程执行所述数据采集任务。
图8为本申请实施例六提供的服务器的结构示意图。如图8所示,该实施例的服务器8包括:至少一个处理器80(图8中仅示出一个)处理器、存储器81以及存储在所述存储器81中并可在所述至少一个处理器80上运行的计算机程序82,所述处理器80执行所述计算机程序82时实现上述任意各个方法实施例中的步骤。
该服务器可包括,但不仅限于,处理器80、存储器81。本领域技术人员可以理解,图8仅仅是服务器8的举例,并不构成对服务器8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器80可以是中央处理单元(Central Processing Unit,CPU),该处理器80还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器81在一些实施例中可以是所述服务器8的内部存储单元,例如服务器8的硬盘或内存。所述存储器81在另一些实施例中也可以是所述服务器8的外部存储设备,例如所述服务器8上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器81还可以既包括所述服务器8的内部存储单元也包括外部存储设备。所述存储器81用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在服务器上运行时,使得服务器执行时实现可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/服务器的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置、服务器和方法,可以通过其它的方式实现。例如,以上所描述的装置、服务器实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种任务调度方法,其特征在于,应用于服务器,所述方法包括:
配置执行单元中内部队列的队列大小,所述执行单元部署于所述服务器中;
根据所述队列大小,从全局队列中获取已发布的数据采集任务,所述全局队列为中央调度集群的任务队列,所述中央调度集群由多个服务器组成;
执行所述数据采集任务,获得与所述数据采集任务相对应的任务执行结果;
将所述任务执行结果发送至数据处理分析平台,以指示所述数据处理分析平台对所述任务执行结果进行处理。
2.如权利要求1所述的方法,其特征在于,所述配置执行单元中内部队列的队列大小,包括:
确定所述执行单元是否处于繁忙状态;
若所述执行单元处于繁忙状态,则缩减所述内部队列的队列大小;
若所述执行单元处于非繁忙状态,则增大所述内部队列的队列大小。
3.如权利要求2所述的方法,其特征在于,所述确定所述执行单元是否处于繁忙状态,包括:
获取所述内部队列中已包含的数据采集任务的第一个数;
若所述第一个数等于所述内部队列的队列大小,则判定所述执行单元处于繁忙状态,否则,判定所述执行单元处于非繁忙状态。
4.如权利要求3所述的方法,其特征在于,所述缩减所述内部队列的队列大小,包括:
判断所述队列大小是否等于预设的最小值;
若所述队列大小不等于预设的最小值,且获取到的第一个数小于当前队列大小时,则将所述队列大小缩减为所述第一个数。
5.如权利要求3所述的方法,其特征在于,所述增大所述内部队列的队列大小,包括:
统计所述内部队列为空的次数;
若所述次数大于所述队列大小的预设倍数且所述队列大小不等于预设的最大值,则将所述队列大小增大预设比例;
将所述内部队列为空的次数置为零。
6.如权利要求1所述的方法,其特征在于,所述根据所述队列大小,从全局队列中获取已发布的数据采集任务,包括:
确定所述内部队列中处于空闲状态的队列位的第二个数;
从所述全局队列中获取与所述第二个数相等的已发布的数据采集任务;
将获取到的所述数据采集任务添加至所述内部队列中。
7.如权利要求1所述的方法,其特征在于,所述执行单元中包括多个执行线程,所述执行所述数据采集任务,获得与所述数据采集任务相对应的任务执行结果,包括:
调度所述多个执行线程从所述内部队列中获取所述数据采集任务;
分别通过所述多个执行线程执行所述数据采集任务。
8.一种任务调度装置,其特征在于,应用于服务器,所述装置包括:
配置模块,用于配置执行单元中内部队列的队列大小,所述执行单元部署于所述服务器中;
获取模块,用于根据所述队列大小,从全局队列中获取已发布的数据采集任务,所述全局队列为中央调度集群的任务队列,所述中央调度集群由多个服务器组成;
执行模块,用于执行所述数据采集任务,获得与所述数据采集任务相对应的任务执行结果;
发送模块,用于将所述任务执行结果发送至数据处理分析平台,以指示所述数据处理分析平台对所述任务执行结果进行处理。
9.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
CN201911287132.6A 2019-12-14 2019-12-14 一种任务调度方法、装置、服务器及介质 Pending CN111158904A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911287132.6A CN111158904A (zh) 2019-12-14 2019-12-14 一种任务调度方法、装置、服务器及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911287132.6A CN111158904A (zh) 2019-12-14 2019-12-14 一种任务调度方法、装置、服务器及介质

Publications (1)

Publication Number Publication Date
CN111158904A true CN111158904A (zh) 2020-05-15

Family

ID=70557125

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911287132.6A Pending CN111158904A (zh) 2019-12-14 2019-12-14 一种任务调度方法、装置、服务器及介质

Country Status (1)

Country Link
CN (1) CN111158904A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112907127A (zh) * 2021-03-23 2021-06-04 贵州航天云网科技有限公司 一种微缩模型与虚拟模型的协同、交互系统及方法
CN113360260A (zh) * 2021-06-01 2021-09-07 上海安吉星信息服务有限公司 一种车辆数据采集方法、系统、存储介质及服务器
CN115114028A (zh) * 2022-07-05 2022-09-27 南方电网科学研究院有限责任公司 一种电力仿真二次控制的任务分配方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180300174A1 (en) * 2017-04-17 2018-10-18 Microsoft Technology Licensing, Llc Efficient queue management for cluster scheduling
CN109274550A (zh) * 2018-09-07 2019-01-25 电信科学技术第五研究所有限公司 一种iSCSI自适应IO队列深度匹配方法
CN109710407A (zh) * 2018-12-21 2019-05-03 浪潮电子信息产业股份有限公司 分布式系统实时任务调度方法、装置、设备及存储介质
CN110505155A (zh) * 2019-08-13 2019-11-26 北京达佳互联信息技术有限公司 请求降级处理方法、装置、电子设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180300174A1 (en) * 2017-04-17 2018-10-18 Microsoft Technology Licensing, Llc Efficient queue management for cluster scheduling
CN109274550A (zh) * 2018-09-07 2019-01-25 电信科学技术第五研究所有限公司 一种iSCSI自适应IO队列深度匹配方法
CN109710407A (zh) * 2018-12-21 2019-05-03 浪潮电子信息产业股份有限公司 分布式系统实时任务调度方法、装置、设备及存储介质
CN110505155A (zh) * 2019-08-13 2019-11-26 北京达佳互联信息技术有限公司 请求降级处理方法、装置、电子设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112907127A (zh) * 2021-03-23 2021-06-04 贵州航天云网科技有限公司 一种微缩模型与虚拟模型的协同、交互系统及方法
CN113360260A (zh) * 2021-06-01 2021-09-07 上海安吉星信息服务有限公司 一种车辆数据采集方法、系统、存储介质及服务器
CN113360260B (zh) * 2021-06-01 2023-03-14 上海安吉星信息服务有限公司 一种车辆数据采集方法、系统、存储介质及服务器
CN115114028A (zh) * 2022-07-05 2022-09-27 南方电网科学研究院有限责任公司 一种电力仿真二次控制的任务分配方法及装置

Similar Documents

Publication Publication Date Title
US10558498B2 (en) Method for scheduling data flow task and apparatus
US11314551B2 (en) Resource allocation and scheduling for batch jobs
CN108776934B (zh) 分布式数据计算方法、装置、计算机设备及可读存储介质
CN102567086B (zh) 一种任务调度的方法、设备和系统
US8949847B2 (en) Apparatus and method for managing resources in cluster computing environment
CN107688492B (zh) 资源的控制方法、装置和集群资源管理系统
CN111158904A (zh) 一种任务调度方法、装置、服务器及介质
US9870269B1 (en) Job allocation in a clustered environment
CN103995735A (zh) 用于调度工作流作业的设备和方法
CN107295090A (zh) 一种资源调度的方法和装置
CN105471985A (zh) 负载均衡方法及云平台计算方法、云平台
CN104331331A (zh) 任务数目和性能感知的可重构多核处理器的资源分配方法
CN109614227A (zh) 任务资源调配方法、装置、电子设备及计算机可读介质
CN102339233A (zh) 云计算集中管理平台
CN111049914B (zh) 负载均衡方法、装置和计算机系统
CN113495779A (zh) 一种任务调度方法和装置、任务执行系统
CN111240822B (zh) 任务调度方法、装置、系统及存储介质
Shu-Jun et al. Optimization and research of hadoop platform based on fifo scheduler
CN114116173A (zh) 动态调整任务分配的方法、装置和系统
CN105740077A (zh) 一种适用于云计算的任务分配方法
CN114443236A (zh) 一种任务处理方法、装置、系统、设备及介质
CN107590000B (zh) 二次随机资源管理方法/系统、计算机存储介质及设备
CN112099937A (zh) 一种资源治理方法和装置
CN116192849A (zh) 一种异构加速板卡计算方法、装置、设备及介质
CN114237902A (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