CN112596898A - 一种任务执行器调度的方法及装置 - Google Patents

一种任务执行器调度的方法及装置 Download PDF

Info

Publication number
CN112596898A
CN112596898A CN202011488568.4A CN202011488568A CN112596898A CN 112596898 A CN112596898 A CN 112596898A CN 202011488568 A CN202011488568 A CN 202011488568A CN 112596898 A CN112596898 A CN 112596898A
Authority
CN
China
Prior art keywords
task
node
executor
task node
resource
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
CN202011488568.4A
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.)
Beijing Sankuai Online Technology Co Ltd
Original Assignee
Beijing Sankuai Online 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 Beijing Sankuai Online Technology Co Ltd filed Critical Beijing Sankuai Online Technology Co Ltd
Priority to CN202011488568.4A priority Critical patent/CN112596898A/zh
Publication of CN112596898A publication Critical patent/CN112596898A/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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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/505Allocation 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 load

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

一种任务执行器调度的方法及装置
技术领域
本说明书涉及互联网技术领域,尤其涉及一种任务执行器调度的方法及装置。
背景技术
伴随着物联网、无人驾驶等新兴技术的发展,数据分析处理的时效性要求随之越来越高,传统的数据分析处理方式也越来越难以满足实际的业务需求,因此大数据实时流计算应运而生。
基于拓扑的分布式流数据实时计算系统,是一种常见的实现大数据实时流计算的系统,具备大数据实时处理的能力。该系统是由控制节点和至少一个任务节点构成计算集群,由研发人员预先设置好任务节点的数目。在进行实时流数据处理时,控制节点将应用拓扑的任务执行器均匀的分配到各个任务节点上,之后每个任务执行器不断的接收任务数据、处理任务数据,再将处理后得到的任务数据作为下一级任务执行器的输入任务数据发送给该下一级任务执行器,以实现流数据实时处理。上述任务执行器调度方案中,控制节点没有考虑到系统中各个任务节点的负载情况,如此,当存在任务节点出现过载现象时,该任务节点的应用性能将迅速下降,进而导致系统性能严重下降,影响用户体验。
发明内容
本说明书提供一种任务执行器调度的方法及装置,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种任务执行器调度的方法,包括:
确定各任务节点内的各任务执行器对应的资源占用信息,所述资源占用信息用于表征任务执行器执行任务时占用任务节点所提供的资源的数量;
针对每个任务节点,根据该任务节点对应的历史任务执行记录,预测在下一任务处理周期内该任务节点需要处理的任务的任务数量,作为该任务节点对应的第一任务数量;
根据该任务节点中各任务执行器对应的资源占用信息以及该任务节点对应的第一任务数量,预测在下一任务处理周期内该任务节点内的各任务执行器在任务执行时需要占用该任务节点的资源的资源数量,作为该任务节点对应的预期资源数量;
若该任务节点对应的预期资源数量大于该任务节点对应的第一资源数量阈值,将该任务节点内的至少部分任务执行器调度到符合预设调度条件的其他任务节点中,其中,针对每个其他任务节点,若该其他任务节点对应的预期资源数量不大于该其他任务节点对应的第一资源数量阈值,确定该其他任务节点为符合所述预设调度条件的其他任务节点。
可选地,确定各任务节点内的各任务执行器对应的资源占用信息,具体包括:
针对各任务节点内的每个任务执行器,根据包含该任务执行器的任务节点对应的历史任务执行记录,确定该任务执行器在各历史任务处理周期中处理过的历史任务的任务总数,以及该任务执行器在处理所述历史任务时占用该任务执行器所属任务节点提供的资源的资源总量;
根据所述任务总数以及所述资源总量,确定出该任务执行器处理历史任务时占用该任务执行器所属任务节点提供的资源的平均资源数量,并根据所述平均资源数量,确定该任务执行器对应的资源占用信息。
可选地,针对每个任务节点,根据该任务节点对应的历史任务执行记录,预测在下一任务处理周期内该任务节点需要处理的任务的任务数量,作为该任务节点对应的第一任务数量,具体包括:
针对该任务节点内的每个任务执行器,根据所述历史任务执行记录,预测在下一任务处理周期内该任务执行器需要处理的任务的任务数量,作为该任务执行器对应的第二任务数量;
根据该任务节点内的每个任务执行器对应的第二任务数量,确定所述第一任务数量。
可选地,针对该任务节点内的每个任务执行器,根据所述历史任务执行记录,预测在下一任务处理周期内该任务执行器需要处理的任务的任务数量,作为该任务执行器对应的第二任务数量,具体包括:
根据所述历史任务执行记录,确定该任务执行器对应的至少一个上级任务执行器;
根据预测出的所述至少一个上级任务执行器在下一任务周期内需要处理的任务的任务数量,预测该任务执行器在下一任务处理周期内该任务执行器需要处理的任务的任务数量,作为该任务执行器对应的第二任务数量。
可选地,将该任务节点内的至少部分任务执行器调度到符合预设调度条件的其他任务节点中,具体包括:
从该任务节点内的各任务执行器中选取一个任务执行器,作为待调度任务执行器;
将所述待调度任务执行器调度到符合预设调度条件的其他任务节点中,并根据该任务节点内剩余的任务执行器,重新确定该任务节点对应的预期资源数量;
若重新确定出的该任务节点对应的预期资源数量大于该任务节点的第一资源数量阈值,则继续从该任务节点内剩余的任务执行器中重新选取待调度任务执行器,直至重新确定出的该任务节点对应的预期资源数量不大于该任务节点的第一资源数量阈值为止。
可选地,所述方法还包括:
若确定不存在符合预设调度条件的其他任务节点,从闲置的各任务节点选取新任务节点并启动,以将该任务节点中至少部分任务执行器调度到所述新任务节点中。
可选地,所述方法还包括:
从各任务节点中确定符合所述预设调度条件的任务节点,作为候选任务节点,并从所述候选任务节点选取出目标任务节点;
针对除所述目标任务节点外的每个其他候选任务节点,若确定将所述目标任务节点内的至少一个任务执行器调度到该其他候选任务节点中后,该其他候选任务节点对应的预期资源数量依然不大于该其他候选任务节点对应的第一资源数量阈值,将所述目标任务节点内的至少一个任务执行器调度到该其他候选任务节点中。
可选地,从所述候选任务节点选取出目标任务节点,具体包括:
针对每个候选任务节点,若确定该候选任务节点对应的预期资源数量不大于第二资源数量阈值,将该候选任务节点选取为所述目标任务节点,所述第二资源数量阈值小于该候选任务节点对应的第一资源数量阈值。
本说明书提供了一种任务执行器调度的装置,包括:
确定模块,用于确定各任务节点内的各任务执行器对应的资源占用信息,所述资源占用信息用于表征任务执行器执行任务时占用任务节点所提供的资源的数量;
任务数量预测模块,用于针对每个任务节点,根据该任务节点对应的历史任务执行记录,预测在下一任务处理周期内该任务节点需要处理的任务的任务数量,作为该任务节点对应的第一任务数量;
资源数量预测模块,用于根据该任务节点中各任务执行器对应的资源占用信息以及该任务节点对应的第一任务数量,预测在下一任务处理周期内该任务节点内的各任务执行器在任务执行时需要占用该任务节点的资源的资源数量,作为该任务节点对应的预期资源数量;
调度模块,用于若该任务节点对应的预期资源数量大于该任务节点对应的第一资源数量阈值,将该任务节点内的至少部分任务执行器调度到符合预设调度条件的其他任务节点中,其中,针对每个其他任务节点,若该其他任务节点对应的预期资源数量不大于该其他任务节点对应的第一资源数量阈值,确定该其他任务节点为符合所述预设调度条件的其他任务节点。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任务执行器调度的方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任务执行器调度的方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的任务执行器调度的方法中,先确定各任务节点内的各任务执行器对应的资源占用信息,再针对每个任务节点,根据该任务节点对应的历史任务执行记录,预测在下一任务处理周期内该任务节点需要处理的任务的任务数量,即该任务节点对应的第一任务数量,然后上述资源占用信息以及上述该任务节点对应的第一任务数量,预测在下一任务处理周期内该任务节点内的各任务执行器在任务执行时需要占用该任务节点的资源的资源数量,即该任务节点对应的预期资源数量,若该任务节点对应的预期资源数量大于该任务节点对应的第一资源数量阈值,将该任务节点内的至少部分任务执行器调度到预期资源数量不大于第一资源数量阈值的其他任务节点中。
从上述方法中可以看出,本方法针对每个任务节点,提前预测在下一任务处理周期内该任务节点内的各任务执行器在任务执行时需要占用该任务节点所提供的资源的资源数量,即各任务节点对应的预期资源数量,当根据该任务节点对应的预期资源数量和该任务节点对应的第一资源数量阈值,确定在下一任务处理周期中该任务节点可能出现过载现象时,将该任务节点内的任务执行器调度到其他的任务节点中,避免由于任务节点过载而引起的系统应用性能严重下降的情况出现,提升了系统性能的稳定性。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中一种任务执行器调度的方法的流程示意图;
图2为本说明书中涉及的基于拓扑的分布式流数据实时计算系统的示意图;
图3A-3C为本说明书中将预期资源数量大于第一资源数量阈值的任务节点内的任务执行器调度到其他符合调度条件的任务执行器中的实施例示意图;
图4为本说明书中将预期资源数量大于第一资源数量阈值的任务节点内的任务执行器调度到启用的新任务执行器中的实施例示意图;
图5A-5C为本说明书中将预期资源数量小于第二资源数量阈值的目标任务节点内的任务执行器调度到除目标任务节点外的其他调度节点中的实施例示意图;
图6为本说明书提供的一种任务执行器调度的装置的示意图;
图7为本说明书提供的对应于图1的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
基于拓扑的分布式流数据实时计算系统(如,storm流数据实时计算系统),是由控制节点和至少一个任务节点构成的计算集群,研发人员预先设置好任务节点的数目并定义好应用拓扑结构后,控制节点(如,storm系统中的nimbus)将应用拓扑的任务执行器(如,storm系统中的executor)均匀分配到各个任务节点(如,storm系统中的supervisor)上,之后由任务节点内的任务执行器按照应用拓扑结构执行接收任务数据、处理任务数据,再将处理后得到的任务数据作为下一级任务执行器的输入任务数据发送给该下一级任务执行器等数据处理操作,以实现流数据实时处理。上述调度方案中,控制节点调度任务执行器时,没有考虑到系统中各个任务节点的负载情况,如此,当存在任务节点过载时,该任务节点的应用性能将急速下降,进而导致该系统的应用性能严重下降。
本说明书中提供一种任务执行器调度的方法,该方法中,针对每个任务节点,预测在下一任务处理周期内该任务节点内的各任务执行器在任务执行时需要占用该任务节点的资源的预期资源数量,并在确定该任务节点对应的预期资源数量大于该任务节点对应的第一资源数量阈值,即该任务节点在下一任务处理周期内可能过载时,将该任务节点内的至少部分任务执行器调度到,预期资源数量不大于第一资源数量阈值的其他任务节点中。这样,在预测到在下一任务处理周期中存在任务节点可能出现过载时,将该任务节点内的任务执行器调度到其他的任务节点中,避免由于该任务节点过载而引起的系统应用性能严重下降的情况出现,提升了系统性能的稳定性。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中一种任务执行器调度的方法的流程示意图,具体包括以下步骤:
步骤S100,确定各任务节点内的各任务执行器对应的资源占用信息。
如图2所示,本说明书中提供的任务执行器调度的方法应用在基于拓扑的分布式流数据实时计算系统中,该系统中的控制节点可以作为上述任务执行器调度的方法的执行主体,该控制节点用于为各任务节点分发任务。进一步地,本说明书中任务执行器调度的方法可以应用在使用基于拓扑的分布式流数据实时计算系统构建的网站统计、推荐、预警、金融(高频交易、股票)等系统中。
上述各任务节点内的各任务执行器对应的资源占用信息用于表征任务执行器执行任务时占用任务节点所提供的资源的数量,基于上述资源占用信息,控制节点可以确定出各个任务节点内的每个任务执行器执行任务时,占用所属的任务节点所提供的资源的资源数量。其中,任务节点所提供的资源可以是CPU资源、内存资源等与硬件性能相关的资源。需要说明的是,本说明书中,各个任务执行器对应的资源占用信息可以是相同的,也可以是不同的。
本说明书中,控制节点可以通过任务执行器在各历史任务处理周期中处理历史任务时占用所属任务节点提供的资源的最大资源数量,确定该任务执行器对应的资源占用信息。当然,控制节点可以根据其他方式方式,确定各任务节点内的各任务执行器对应的资源占用信息。
具体地,控制节点可以针对各任务节点内的每个任务执行器,根据包含该任务执行器的任务节点对应的历史任务执行记录,确定该任务执行器在各历史任务处理周期中处理过的历史任务的任务总数,以及该任务执行器在处理上述历史任务时占用该任务执行器所属任务节点提供的资源的资源总量,然后根据该任务总数以及该资源总量,确定出该任务执行器处理历史任务时占用该任务执行器所属任务节点提供的资源的平均资源数量,并根据该平均资源数量,确定该任务执行器对应的资源占用信息。
上述任务节点对应的历史任务执行记录,可以由每个任务节点在该任务节点内的任务执行器执行任务时监测得到的,当然,由于各项任务都是由控制节点统一向各任务节点进行分发的,所以,控制节点中也可以保存有每个任务节点对应的历史任务执行记录。
在本说明书中,任务节点对应的历史任务执行记录可以包括:每个历史任务处理周期内该任务节点内的各任务执行器处理的任务数量、每个历史任务处理周期内该任务节点内的每个任务执行器处理每个任务时占用该任务节点所提供的资源数量等。
进一步地,控制节点在根据确定出的平均资源数量,确定该任务执行器对应的资源占用信息时,可以直接将该平均资源数量作为该任务执行器对应的资源占用信息,也可以根据最近若干个任务处理周期内该任务执行器对应的资源占用信息的变化趋势对该平均资源数量进行调整,并将调整后的得到的资源数量作为该任务执行器对应的资源占用信息。
例如,当确定在最近的10个任务处理周期内任务执行器处理历史任务时占用该任务执行器所属任务节点提供的资源数量呈现递增趋势时,则在确定出的平均资源数量上增加5%的资源数量,作为该任务执行器对应的资源占用信息。需要说明的是,控制节点针对平均资源数量进行调整的规则,可以由研发人员根据实际业务经验设置。
此外,控制节点也可以针对任意一个任务执行器,根据获取到的历史任务执行记录,确定出该任务执行器在每个历史任务周期所对应的平均占用资源数量,而后,控制节点可以根据该任务执行器每个历史任务周期所对应的平均占用资源数量,以及该任务执行器所对应的历史任务周期数,确定出该任务节点在各历史任务周期对应的平均占用资源数量,并以此来确定出该任务执行器对应的资源占用信息。
例如,假设该任务执行器对应的A、B、C三个历史任务周期,控制节点可以根据历史执行记录,确定出该任务执行器在历史任务周期A对应的平均占用资源数量a,该任务执行器在历史任务周期B对应的平均占用资源数量b以及该任务执行器在历史任务周期C对应的平均占用资源数量c。而后,控制节点可以确定出平均占用资源数量a、平均占用资源数量b、平均占用资源数量c这三者的均值,并基于该均值确定出该任务执行器对应的资源占用信息。
本说明书中,控制节点确定各任务节点内的各任务执行器对应的资源占用信息的同时,还需要对在下一任务处理周期内每个任务节点需要处理的任务的任务数量进行预测。
步骤S102,针对每个任务节点,根据该任务节点对应的历史任务执行记录,预测在下一任务处理周期内该任务节点需要处理的任务的任务数量,作为该任务节点对应的第一任务数量。
具体地,控制节点可以针对该任务节点内的每个任务执行器,根据历史任务执行记录,预测在下一任务处理周期内该任务执行器需要处理的任务的任务数量,即该任务执行器对应的第二任务数量,然后根据该任务节点内的每个任务执行器对应的第二任务数量,确定所述第一任务数量。
其中,控制节点可以通过多种方式,根据历史任务执行记录,预测任务执行器对应的第二任务数量。
具体实施中,针对每个任务节点,控制节点可以针对该任务节点内的每个任务执行器,根据该任务节点对应的历史任务执行记录,确定该任务执行器在各历史任务处理周期中处理过的历史任务的任务数量,并进一步地根据该任务执行器在各历史任务处理周期中处理过的历史任务的任务数量,预测出该任务执行器对应的第二任务数量。
另外,控制节点还可以根据历史任务执行记录,确定该任务执行器对应的至少一个上级任务执行器,然后根据预测出的上述至少一个上级任务执行器在下一任务周期内需要处理的任务的任务数量,预测该任务执行器对应的第二任务数量。
上述该任务执行器对应的上级任务执行器是用于使该任务执行器获取到任务数据的任务执行器。该上级任务执行器可以是与该任务执行器相邻的任务执行器,也可以是与该任务执行器不相邻的任务执行器。需要说明的是,控制节点可以根据该任务执行器相邻的上级任务执行器在下一任务周期内需要处理的任务的任务数量,预测该任务执行器对应的第二任务数量,也可以根据任务执行器对应的若干个上级任务执行器在下一任务周期内需要处理的任务的任务数量,预测该任务执行器对应的第二任务数量。本说明书中,可以根据实际业务需求,选取用于预测任务执行器对应的第二任务数量的该任务执行器对应的上级任务执行器。
例如,设定根据预测出的至少一个上一级任务执行器在下一任务周期内需要处理的任务的任务数量,预测该任务执行器对应的第二任务数量。当前基于拓扑的分布式流数据实时计算系统中,控制节点针对任务执行器3进行第二任务数量预测时,根据历史任务执行记录,确定任务执行器3的上一级任务执行器有任务执行器1和任务执行器2,预测出任务执行器1对应的第二任务数量为3个,该任务执行器1每处理1个任务,将向该任务执行器1的下一级任务执行器输出2个任务数据,任务执行器2对应的第二任务数量为2个,该任务执行器2每处理1个任务,将向其下一级任务执行器输出1个任务数据。基于此,控制节点可以根据任务执行器1的对应的第二任务数量和任务执行器2对应的第二任务数量,预测任务执行器3对应的第二任务数量为8个。
步骤S104,根据该任务节点中各任务执行器对应的资源占用信息以及该任务节点对应的第一任务数量,预测在下一任务处理周期内该任务节点内的各任务执行器在任务执行时需要占用该任务节点的资源的资源数量,作为该任务节点对应的预期资源数量。
针对每个任务节点,控制节点预测出该任务节点对应的第一任务数量后,将根据该任务节点中各任务执行器对应的资源占用信息以及该任务节点对应的第一任务数量,预测在下一任务处理周期内该任务节点内的各任务执行器在任务执行时需要占用该任务节点的资源的资源数量,作为该任务节点对应的预期资源数量。
本说明书中,针对每个任务节点,若该任务节点内的各任务执行器对应的资源占用信息固定相同,则控制节点直接将各任务执行器对应的资源占用与该任务节点对应的第一任务数量相乘,得到该任务节点对应的预期资源数量。
进一步地,若该任务节点内的各任务执行器对应的资源占用信息不相同,则控制节点先针对该任务节点内的每个任务执行器,分别预测在下一任务处理周期内该任务执行器在任务执行时需要占用该任务节点的资源的资源数量,而后再将预测出的这些资源数量进行相加求和,得到该任务节点对应的预期资源数量。
步骤S106,若该任务节点对应的预期资源数量大于该任务节点对应的第一资源数量阈值,将该任务节点内的至少部分任务执行器调度到符合预设调度条件的其他任务节点中。
本说明书中,控制节点针对每个任务节点,预测出该任务节点对应的预期资源数量后,可以根据该任务节点对应的预期资源数量以及该任务节点对应的第一资源数量阈值,判断在下一任务处理周期该任务节点是否会出现过载的情况。当控制节点确定在下一任务处理周期该任务节点会出现过载的情况时,则将该任务节点内的至少部分任务执行器调度到符合预设调度条件的其他任务节点中。
上述预设调度条件指的是任务节点对应的预期资源数量不大于任务节点对应的第一资源数量阈值。控制节点确定符合预设条件的其他任务节点时,先确定除该任务节点外的其他任务节点,然后针对每个其他任务节点,确定该其他任务节点对应的预期资源数量不大于该其他任务节点对应的第一资源数量阈值时,将该其他任务节点作为符合预设调度条件的其他任务节点。
需要说明的是,任务节点对应的第一资源数量阈值表征该任务节点内的任务执行器执行任务时所能占用的资源的资源数量上限值,当该任务节点对应的预期资源数量大于该任务节点对应的第一资源数量阈值时,说明在下一任务处理周期内该任务节点内的各任务执行器在执行任务时,该任务节点可能出现过载,甚至宕机的情况。
具体地,控制节点将该任务节点内的至少部分任务执行器调度到符合预设调度条件的其他任务节点中时,从该任务节点内的各任务执行器中选取一个任务执行器,作为待调度任务执行器,然后,将所述待调度任务执行器调度到符合预设调度条件的其他任务节点中,并根据该任务节点内剩余的任务执行器,重新确定该任务节点对应的预期资源数量,接着,若重新确定出的该任务节点对应的预期资源数量大于该任务节点的第一资源数量阈值,则继续从该任务节点内剩余的任务执行器中重新选取待调度任务执行器,直至重新确定出的该任务节点对应的预期资源数量不大于该任务节点的第一资源数量阈值为止。
本说明书中,控制节点从该任务节点内的各任务执行器中选取待调度任务执行器的方式有多种。例如,控制节点从该任务节点内的各任务执行器中选取出在下一任务处理周期执行任务时占用所属的任务节点提供的资源的资源数量最少的任务执行器,并将该任务执行器作为待调度任务执行器。再例如,控制节点根据历史执行记录,确定任务节点内的各任务执行器之间的上下级关系,优先将没有上下级任务执行器的任务执行器作为待调度任务执行器。
例如:图3A所示的基于拓扑的分布式流数据实时计算系统中,包括任务节点A、任务节点B、任务节点C,控制节点针对每个任务节点,预测出该任务节点对应的预期资源数量后,确定只有任务节点A对应的预期资源数量大于任务节点A对应的第一资源数量阈值,则,控制节点从任务节点A中选取出任务执行器A1作为待调度任务执行器。而当控制节点判断出若将任务执行器A1调度到任务节点B中后,任务节点B对应的预期资源数量仍然不大于任务节点B对应的第一资源数量阈值时,则可以将任务执行器A1调度到任务节点B中去(参见图3B)。
随后,控制节点根据任务节点A内剩余的任务执行器,重新确定该任务节点对应的预期资源数量。而当控制节点判断出重新确定出的任务节点A对应的预期资源数量仍大于任务节点A的第一资源数量阈值,则控制节点可以继续从任务节点A中选取出任务执行器A2作为待调度任务执行器。进一步地,若控制节点判断出将任务执行器A2调度到任务节点C中后,任务节点C对应的预期资源数量不会大于任务节点C对应的第一资源数量阈值,则可以将任务执行器A2调度到任务节点C中去(参见图3C)。
而当控制节点根据任务节点A内剩余的任务执行器,判断出再次重新确定出的任务节点A对应的预期资源数量不大于任务节点A的第一资源数量阈值,则可以确定完成针对过载的任务节点A内的任务执行器调度。
上述方法中,控制节点针对每个任务节点,提前预测在下一任务处理周期内该任务节点内的各任务执行器在任务执行时需要占用该任务节点所提供的资源的资源数量,即各任务节点对应的预期资源数量,当根据该任务节点对应的预期资源数量和该任务节点对应的第一资源数量阈值,确定在下一任务处理周期中该任务节点可能出现过载现象时,将该任务节点内的任务执行器调度到其他的任务节点中,避免由于任务节点过载而引起的系统应用性能严重下降的情况出现,提升了系统性能的稳定性。
本说明书中,控制节点确定没有能够用于调度任务执行器的符合预设调度条件的其他任务节点时,控制节点可以从闲置的任务节点中选取出一个任务节点并开启,作为新任务节点,随后将预期资源数量大于第一资源数量阈值的任务节点内的至少部分任务执行器调度到该新任务节点中,避免由于任务节点过载导致系统应用性能严重下降的情况出现,提升了系统性能的稳定性。
例如:图4所示的基于拓扑的分布式流数据实时计算系统中,包括任务节点A、任务节点B、任务节点C、闲置任务节点D。假设,控制节点确定任务节点A对应的预期资源数量大于任务节点A的第一资源数量阈值,并进一步地判断出任务节点B或是任务节点C在接收任务节点A中的任意一个任务执行器后,都会使得任务节点B或是任务C对应的预期资源数量超出各自对应的第一资源数量阈值,则控制节点可以将闲置的任务节点D进行启动,并将任务节点A中的至少部分任务执行器调度到任务节点D中。其中,所谓的闲置的任务节点可以是指不包含有任务执行器的任务节点。
当然,控制节点也可以在确定出任务节点A对应的预期资源数量大于任务节点A的第一资源数量阈值时,可以不去判断其他任务节点是否能够容纳任务节点A中的任务执行器,而是直接启动闲置的任务节点D,并将任务节点A中的至少部分任务执行器调度到任务节点D中。
本说明书中,对于不存在过载的任务节点(即预期资源数量不大于自身对应的第一资源阈值的任务节点)来说,控制节点可以考虑是否可以进一步缩减参与该应用拓扑计算的任务节点数目。
具体地,控制节点可以从各任务节点中确定出符合预设调度条件的任务节点,作为候选任务节点,并从候选任务节点中选取出目标任务节点,然后针对除目标任务节点外的每个其他候选任务节点,若确定将目标任务节点内的至少一个任务执行器调度到该其他候选任务节点中后,该其他候选任务节点对应的预期资源数量依然不大于该其他候选任务节点对应的第一资源数量阈值,则可以将该目标任务节点内的至少一个任务执行器调度到该其他候选任务节点中。
其中,控制节点若针对每个候选任务节点,确定该候选任务节点对应的预期资源数量不大于第二资源数量阈值,则可以将该候选任务节点选取为所述目标任务节点。在本说明书中,一个任务节点对应的第二资源数量阈值,小于该任务节点对应的第一资源数量阈值。
当该候选任务节点对应的预期资源数量小于该任务节点对应的第二资源数量阈值时,说明在下一任务处理周期内该候选任务节点内的各任务执行器在执行任务处理时只使用了该候选任务节点提供的资源中很少的一部分,因此可能会造成资源浪费的情况出现。
本说明书中,当控制节点完成针对上述目标任务节点的任务执行器调度后,可以从剩余的候选任务节点中再重新选取目标任务节点,并继续执行任务执行器的调度,直到不再选取出目标任务节点中为止。
另外,控制节点从候选任务节点中选取目标任务节点的方式有多种。例如,控制节点符合上述预设调度条件的各任务节点选取出预期资源数量最少的任务节点,作为目标任务节点。再例如,控制节点可以将包含的任务执行器最少的符合预设调度条件的任务节点,选取为目标任务节点,其他的方式在此就不详细举例说明了。
控制节点在将目标任务节内的任务执行器调度到除目标任务节点外的其他候选任务节点时,可以将目标任务节点内的任务执行器逐一调度到上述其他候选任务节点中去。控制节点还可以先预测是否可以将该目标任务节点内的任务执行器全部调度到其他候选任务节点中,在确定可以调度走全部的任务执行器后,则将该目标任务节点内的任务执行器全部调度到其他候选任务节点中去,否则不对该目标任务节点内的任务执行器进行调度。
例如,图5A所示的基于拓扑的分布式流数据实时计算系统中,包括任务节点A、任务节点B、任务节点C、任务节点D,控制节点判断出所有任务节点对应的预期资源数量均不大于各自对应的第一资源数量阈值,即所有的任务节点均符合预设调度条件。
随后,控制节点将各任务节点对应的预期资源数量与各自任务节点对应的第二资源数量阈值进行比较,确定任务节点A、任务节点B的对应的预期资源数量大于A、B这两个任务节点各自对应的第二资源数量阈值,任务节点C、任务节点D的对应的预期资源数量小于C、D这两个任务节点各自对应的第二资源数量阈值,进而将任务节点C和任务节点D作为目标任务节点。
接着,控制节点在对任务节点C进行任务执行器调度时,若判断出将任务节点C内的任务执行器C1调度到任务节点A中后,该任务节点A对应的预期资源数量依然不大于该任务节点A对应的第一资源数量阈值,则可以将任务节点C内的任务执行器C1调度到任务节点A中(参见图5B)并使任务节点C进入休眠状态。
控制节点在对任务节点D进行任务执行器调度时,若判断出将任务节点D内的任务执行器D1和任务执行器D2调度到任务节点B中后,该任务节点B对应的预期资源数量依然不大于该任务节点B对应的第一资源数量阈值,则可以将任务节点D内的任务执行器D1和任务执行器D2调度到任务节点B中(参见图5C)并使任务节点D进入休眠状态。
从上述内容中可以看出,由于控制节点可以将选取出目标任务节点内的任务执行器,调取到除目标任务节点外的其他候选任务节点中,以减少任务节点资源的浪费,节约了系统资源。
需要说明的是,通过上述任务执行器调度的方法确定各任务节点内的任务执行器的调度策略时,可以直接进行任务执行器调度,也可以在确定出所有任务节点内的任务执行器的调度策略后,根据上述调度策略对各任务节点内的各任务节点进行调度。此外,还可以在确定出所有任务节点内的任务执行器的调度策略后,监测到达下一任务处理周期时,根据确定出的调度策略对各任务节点内的各任务节点进行调度。
以上为本说明书的一个或多个实施例提供的任务执行器调度的方法,基于同样的思路,本说明书还提供了相应的任务执行器调度的装置,如图6所示。
图6为本说明书提供的一种任务执行器调度的装置示意图,具体包括:
确定模块600,用于确定各任务节点内的各任务执行器对应的资源占用信息,所述资源占用信息用于表征任务执行器执行任务时占用任务节点所提供的资源的数量;
任务数量预测模块601,用于针对每个任务节点,根据该任务节点对应的历史任务执行记录,预测在下一任务处理周期内该任务节点需要处理的任务的任务数量,作为该任务节点对应的第一任务数量;
资源数量预测模块602,用于根据该任务节点中各任务执行器对应的资源占用信息以及该任务节点对应的第一任务数量,预测在下一任务处理周期内该任务节点内的各任务执行器在任务执行时需要占用该任务节点的资源的资源数量,作为该任务节点对应的预期资源数量;
调度模块603,用于若该任务节点对应的预期资源数量大于该任务节点对应的第一资源数量阈值,将该任务节点内的至少部分任务执行器调度到符合预设调度条件的其他任务节点中,其中,针对每个其他任务节点,若该其他任务节点对应的预期资源数量不大于该其他任务节点对应的第一资源数量阈值,确定该其他任务节点为符合所述预设调度条件的其他任务节点。
可选地,所述确定模块600,具体用于针对各任务节点内的每个任务执行器,根据包含该任务执行器的任务节点对应的历史任务执行记录,确定该任务执行器在各历史任务处理周期中处理过的历史任务的任务总数,以及该任务执行器在处理所述历史任务时占用该任务执行器所属任务节点提供的资源的资源总量;根据所述任务总数以及所述资源总量,确定出该任务执行器处理历史任务时占用该任务执行器所属任务节点提供的资源的平均资源数量,并根据所述平均资源数量,确定该任务执行器对应的资源占用信息。
可选地,所述任务数量预测模块601,具体用于针对该任务节点内的每个任务执行器,根据所述历史任务执行记录,预测在下一任务处理周期内该任务执行器需要处理的任务的任务数量,作为该任务执行器对应的第二任务数量;根据该任务节点内的每个任务执行器对应的第二任务数量,确定所述第一任务数量。
可选地,所述任务数量预测模块601,具体用于根据所述历史任务执行记录,确定该任务执行器对应的至少一个上级任务执行器;根据预测出的所述至少一个上级任务执行器在下一任务周期内需要处理的任务的任务数量,预测该任务执行器在下一任务处理周期内该任务执行器需要处理的任务的任务数量,作为该任务执行器对应的第二任务数量。
可选地,所述调度模块603,具体用于从该任务节点内的各任务执行器中选取一个任务执行器,作为待调度任务执行器;将所述待调度任务执行器调度到符合预设调度条件的其他任务节点中,并根据该任务节点内剩余的任务执行器,重新确定该任务节点对应的预期资源数量;若重新确定出的该任务节点对应的预期资源数量大于该任务节点的第一资源数量阈值,则继续从该任务节点内剩余的任务执行器中重新选取待调度任务执行器,直至重新确定出的该任务节点对应的预期资源数量不大于该任务节点的第一资源数量阈值为止。
可选地,所述调度模块603,还用于若确定不存在符合预设调度条件的其他任务节点,从闲置的各任务节点选取新任务节点并启动,以将该任务节点中至少部分任务执行器调度到所述新任务节点中。
可选地,所述调度模块603,还用于从各任务节点中确定符合所述预设调度条件的任务节点,作为候选任务节点,并从所述候选任务节点选取出目标任务节点;针对除所述目标任务节点外的每个其他候选任务节点,若确定将所述目标任务节点内的至少一个任务执行器调度到该其他候选任务节点中后,该其他候选任务节点对应的预期资源数量依然不大于该其他候选任务节点对应的第一资源数量阈值,将所述目标任务节点内的至少一个任务执行器调度到该其他候选任务节点中。
可选地,所述调度模块603,还用于针对每个候选任务节点,若确定该候选任务节点对应的预期资源数量不大于第二资源数量阈值,将该候选任务节点选取为所述目标任务节点,所述第二资源数量阈值小于该候选任务节点对应的第一资源数量阈值。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的任务执行器调度的方法。
本说明书还提供了图7所示的电子设备的示意结构图。如图7所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的任务执行器调度的方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (11)

1.一种任务执行器调度的方法,其特征在于,包括:
确定各任务节点内的各任务执行器对应的资源占用信息,所述资源占用信息用于表征任务执行器执行任务时占用任务节点所提供的资源的数量;
针对每个任务节点,根据该任务节点对应的历史任务执行记录,预测在下一任务处理周期内该任务节点需要处理的任务的任务数量,作为该任务节点对应的第一任务数量;
根据该任务节点中各任务执行器对应的资源占用信息以及该任务节点对应的第一任务数量,预测在下一任务处理周期内该任务节点内的各任务执行器在任务执行时需要占用该任务节点的资源的资源数量,作为该任务节点对应的预期资源数量;
若该任务节点对应的预期资源数量大于该任务节点对应的第一资源数量阈值,将该任务节点内的至少部分任务执行器调度到符合预设调度条件的其他任务节点中,其中,针对每个其他任务节点,若该其他任务节点对应的预期资源数量不大于该其他任务节点对应的第一资源数量阈值,确定该其他任务节点为符合所述预设调度条件的其他任务节点。
2.如权利要求1所述的方法,其特征在于,确定各任务节点内的各任务执行器对应的资源占用信息,具体包括:
针对各任务节点内的每个任务执行器,根据包含该任务执行器的任务节点对应的历史任务执行记录,确定该任务执行器在各历史任务处理周期中处理过的历史任务的任务总数,以及该任务执行器在处理所述历史任务时占用该任务执行器所属任务节点提供的资源的资源总量;
根据所述任务总数以及所述资源总量,确定出该任务执行器处理历史任务时占用该任务执行器所属任务节点提供的资源的平均资源数量,并根据所述平均资源数量,确定该任务执行器对应的资源占用信息。
3.如权利要求1所述的方法,其特征在于,针对每个任务节点,根据该任务节点对应的历史任务执行记录,预测在下一任务处理周期内该任务节点需要处理的任务的任务数量,作为该任务节点对应的第一任务数量,具体包括:
针对该任务节点内的每个任务执行器,根据所述历史任务执行记录,预测在下一任务处理周期内该任务执行器需要处理的任务的任务数量,作为该任务执行器对应的第二任务数量;
根据该任务节点内的每个任务执行器对应的第二任务数量,确定所述第一任务数量。
4.如权利要求3所述的方法,其特征在于,针对该任务节点内的每个任务执行器,根据所述历史任务执行记录,预测在下一任务处理周期内该任务执行器需要处理的任务的任务数量,作为该任务执行器对应的第二任务数量,具体包括:
根据所述历史任务执行记录,确定该任务执行器对应的至少一个上级任务执行器;
根据预测出的所述至少一个上级任务执行器在下一任务周期内需要处理的任务的任务数量,预测该任务执行器在下一任务处理周期内该任务执行器需要处理的任务的任务数量,作为该任务执行器对应的第二任务数量。
5.如权利要求1所述的方法,其特征在于,将该任务节点内的至少部分任务执行器调度到符合预设调度条件的其他任务节点中,具体包括:
从该任务节点内的各任务执行器中选取一个任务执行器,作为待调度任务执行器;
将所述待调度任务执行器调度到符合预设调度条件的其他任务节点中,并根据该任务节点内剩余的任务执行器,重新确定该任务节点对应的预期资源数量;
若重新确定出的该任务节点对应的预期资源数量大于该任务节点的第一资源数量阈值,则继续从该任务节点内剩余的任务执行器中重新选取待调度任务执行器,直至重新确定出的该任务节点对应的预期资源数量不大于该任务节点的第一资源数量阈值为止。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
若确定不存在符合预设调度条件的其他任务节点,从闲置的各任务节点选取新任务节点并启动,以将该任务节点中至少部分任务执行器调度到所述新任务节点中。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
从各任务节点中确定符合所述预设调度条件的任务节点,作为候选任务节点,并从所述候选任务节点选取出目标任务节点;
针对除所述目标任务节点外的每个其他候选任务节点,若确定将所述目标任务节点内的至少一个任务执行器调度到该其他候选任务节点中后,该其他候选任务节点对应的预期资源数量依然不大于该其他候选任务节点对应的第一资源数量阈值,将所述目标任务节点内的至少一个任务执行器调度到该其他候选任务节点中。
8.如权利要求7所述的方法,其特征在于,从所述候选任务节点选取出目标任务节点,具体包括:
针对每个候选任务节点,若确定该候选任务节点对应的预期资源数量不大于第二资源数量阈值,将该候选任务节点选取为所述目标任务节点,所述第二资源数量阈值小于该候选任务节点对应的第一资源数量阈值。
9.一种任务执行器调度的装置,其特征在于,包括:
确定模块,用于确定各任务节点内的各任务执行器对应的资源占用信息,所述资源占用信息用于表征任务执行器执行任务时占用任务节点所提供的资源的数量;
任务数量预测模块,用于针对每个任务节点,根据该任务节点对应的历史任务执行记录,预测在下一任务处理周期内该任务节点需要处理的任务的任务数量,作为该任务节点对应的第一任务数量;
资源数量预测模块,用于根据该任务节点中各任务执行器对应的资源占用信息以及该任务节点对应的第一任务数量,预测在下一任务处理周期内该任务节点内的各任务执行器在任务执行时需要占用该任务节点的资源的资源数量,作为该任务节点对应的预期资源数量;
调度模块,用于若该任务节点对应的预期资源数量大于该任务节点对应的第一资源数量阈值,将该任务节点内的至少部分任务执行器调度到符合预设调度条件的其他任务节点中,其中,针对每个其他任务节点,若该其他任务节点对应的预期资源数量不大于该其他任务节点对应的第一资源数量阈值,确定该其他任务节点为符合所述预设调度条件的其他任务节点。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~8任一项所述的方法。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~8任一项所述的方法。
CN202011488568.4A 2020-12-16 2020-12-16 一种任务执行器调度的方法及装置 Pending CN112596898A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011488568.4A CN112596898A (zh) 2020-12-16 2020-12-16 一种任务执行器调度的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011488568.4A CN112596898A (zh) 2020-12-16 2020-12-16 一种任务执行器调度的方法及装置

Publications (1)

Publication Number Publication Date
CN112596898A true CN112596898A (zh) 2021-04-02

Family

ID=75196728

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011488568.4A Pending CN112596898A (zh) 2020-12-16 2020-12-16 一种任务执行器调度的方法及装置

Country Status (1)

Country Link
CN (1) CN112596898A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114579268A (zh) * 2022-01-30 2022-06-03 阿里巴巴(中国)有限公司 资源调度方法以及装置
CN115756773A (zh) * 2022-11-01 2023-03-07 中电金信软件有限公司 任务调度方法、装置、电子设备和存储介质
CN116225669A (zh) * 2023-05-08 2023-06-06 之江实验室 一种任务执行方法、装置、存储介质及电子设备
CN116647530A (zh) * 2023-06-06 2023-08-25 深圳花儿绽放网络科技股份有限公司 一种即时通信消息任务的自动执行系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114579268A (zh) * 2022-01-30 2022-06-03 阿里巴巴(中国)有限公司 资源调度方法以及装置
CN115756773A (zh) * 2022-11-01 2023-03-07 中电金信软件有限公司 任务调度方法、装置、电子设备和存储介质
CN115756773B (zh) * 2022-11-01 2023-08-29 中电金信软件有限公司 任务调度方法、装置、电子设备和存储介质
CN116225669A (zh) * 2023-05-08 2023-06-06 之江实验室 一种任务执行方法、装置、存储介质及电子设备
CN116225669B (zh) * 2023-05-08 2024-01-09 之江实验室 一种任务执行方法、装置、存储介质及电子设备
CN116647530A (zh) * 2023-06-06 2023-08-25 深圳花儿绽放网络科技股份有限公司 一种即时通信消息任务的自动执行系统
CN116647530B (zh) * 2023-06-06 2024-09-10 深圳花儿绽放网络科技股份有限公司 一种即时通信消息任务的自动执行系统

Similar Documents

Publication Publication Date Title
CN107770088B (zh) 一种流量控制方法及装置
CN112596898A (zh) 一种任务执行器调度的方法及装置
CN107577694B (zh) 一种基于区块链的数据处理方法及设备
JP6716149B2 (ja) ブロックチェーンベースのデータ処理方法および装置
CN107577523B (zh) 一种任务执行的方法及装置
US20150295970A1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
US20070118838A1 (en) Task execution controller, task execution control method, and program
CN109391680B (zh) 一种定时任务数据处理方法、装置及系统
CN107368367B (zh) 资源分配的处理方法、装置及电子设备
JP2022500768A (ja) 熱負荷予測方法、装置、読み取り可能な媒体及び電子機器
CN108243032B (zh) 一种服务等级信息的获取方法、装置及设备
CN116225669B (zh) 一种任务执行方法、装置、存储介质及电子设备
CN113992525A (zh) 一种应用的容器数量调节方法及装置
CN105824705B (zh) 一种任务分配方法和电子设备
CN111782409B (zh) 任务处理、风险识别任务处理方法、装置及电子设备
CN111539601A (zh) 话务资源的调度方法及装置
CN113032119A (zh) 一种任务调度方法、装置、存储介质及电子设备
WO2024187737A1 (zh) 一种数据处理的方法、装置、存储介质及电子设备
CN112559176B (zh) 一种指令处理方法和装置
CN116501927A (zh) 一种图数据处理系统、方法、设备及存储介质
CN110780993A (zh) 一种基于Kubernetes的资源调度优化的方法、设备及介质
CN114817212A (zh) 一种数据库的优化方法及优化装置
CN111897785A (zh) 工单数量的控制方法、装置及设备
CN110032433B (zh) 一种任务执行方法、装置、设备及介质
CN114816703A (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