CN115454602A - 一种任务调度方法、装置及设备 - Google Patents

一种任务调度方法、装置及设备 Download PDF

Info

Publication number
CN115454602A
CN115454602A CN202211122719.3A CN202211122719A CN115454602A CN 115454602 A CN115454602 A CN 115454602A CN 202211122719 A CN202211122719 A CN 202211122719A CN 115454602 A CN115454602 A CN 115454602A
Authority
CN
China
Prior art keywords
task
target task
target
priority
resources
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
CN202211122719.3A
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 Volcano Engine Technology Co Ltd
Original Assignee
Beijing Volcano Engine 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 Volcano Engine Technology Co Ltd filed Critical Beijing Volcano Engine Technology Co Ltd
Priority to CN202211122719.3A priority Critical patent/CN115454602A/zh
Publication of CN115454602A publication Critical patent/CN115454602A/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了一种任务调度方法、装置及设备,该方法包括:首先获取待调度的目标任务,并根据目标任务对应的有向无环图中算子的构成和数量,确定目标任务所属的任务型,然后根据目标任务所属的任务型,计算目标任务所需的中央处理器资源数量和内存资源数量;接着,根据目标任务的优先级、等待时间和被抢占次数,计算目标任务的紧迫度,进而可以根据目标任务的紧迫度,对目标任务进行合理调度。可见,由于本申请是根据计算出的目标任务的任务型和紧迫度进行任务调度,从而能够在保证性能的同时尽可能降低CPU和内存的资源消耗,并且能够在提高系统吞吐量的同时也提高了用户对系统的满意程度。

Description

一种任务调度方法、装置及设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种任务调度方法、装置及设备。
背景技术
随着大数据技术与应用的快速发展,需要处理的数据量愈发庞大,如何对这些数据进行高效处理显得尤为重要。
在数据处理阶段,一个高性能的任务调度策略可以有效提升数据处理速度。但目前在进行任务调度时,传统的抢占式任务调度方法,在申请资源阶段,仅根据预估数据量来申请固定的中央处理器(central processing unit,简称CPU)资源和内存资源,若任务为CPU密集型或内存密集型,会出现某一类资源利用率不高的情况,降低了系统的吞吐量。同时,当出现高优先级任务插入时,还会直接根据优先级抢占低优先级任务的执行资源,甚至导致一些低优任务始终无法得到资源,出现多个饥饿任务不能按照预期进行调度,降低了用户对系统的满意程度。
发明内容
本申请实施例的主要目的在于提供一种任务调度方法、装置及设备,能够基于任务型和紧迫度进行任务调度,不仅提高了任务调度效果,而且也提高了用户对系统的满意程度。
本申请实施例提供了一种任务调度方法,包括:
获取待调度的目标任务,并根据所述目标任务对应的有向无环图中算子的构成和数量,确定所述目标任务所属的任务型;
根据所述目标任务所属的任务型,计算所述目标任务所需的中央处理器资源数量和内存资源数量;
根据所述目标任务的优先级、等待时间和被抢占次数,计算所述目标任务的紧迫度;
根据所述目标任务的紧迫度,对所述目标任务进行合理调度。
一种可能的实现方式中,所述根据所述目标任务对应的有向无环图中算子的构成和数量,确定所述目标任务所属的任务型,包括:
将所述目标任务对应的有向无环图中数据抽取算子的数量和数据抽取加载算子的数量相加,并判断得到的相加结果是否小于所述目标任务对应的有向无环图中算子总数的预设百分比;
若是,则确定所述目标任务为中央处理器密集型任务;
若否,则确定所述目标任务为内存密集型。
一种可能的实现方式中,所述根据所述目标任务所属的任务型,计算所述目标任务所需的中央处理器资源数量和内存资源数量,包括:
根据所述目标任务所属的任务型,确定所述目标任务的任务型权值;
利用采样法,对所述目标任务的数据进行采样,并根据采样结果,预估所述目标任务的总数据量;
根据所述目标任务的任务型权值和预估出的所述目标任务的总数据量,计算所述目标任务所需的中央处理器资源数量和内存资源数量。
一种可能的实现方式中,所述在预设时间段内,在所述根据所述目标任务的优先级、等待时间和被抢占次数,计算所述目标任务的紧迫度之后,所述方法还包括:
按照所述目标任务的紧迫度由小到大进行排序,构成可抢占任务队列;
根据所述目标任务的优先级,构成优先级任务队列;所述优先级任务队列包括高优先级任务队列、中优先级任务队列、低优先级任务队列。
一种可能的实现方式中,所述根据所述目标任务的紧迫度,对所述目标任务进行合理调度,包括:
若所述高优先级任务队列不为空,则调度执行所述高优先级任务队列中的队首任务,当剩余中央处理器资源数量和内存资源数量足够分配时,则正常执行任务;或者,当剩余中央处理器资源数量和内存资源数量不够分配时,则从所述可抢占任务队列中按照紧迫度由小到大依次抢占任务资源;
若所述高优先级任务队列为空,则按照预设概率调度执行所述中优先级任务队列和低优先级任务队列中的任务,当剩余中央处理器资源数量和内存资源数量足够分配时,则正常执行任务;当剩余中央处理器资源数量和内存资源数量不够分配时,则将待执行任务挂起等待,并在达到预设挂起等待时间时,重新调度执行所述待执行任务。
一种可能的实现方式中,在所述从所述可抢占任务队列中按照紧迫度由小到大依次抢占任务资源之前,所述方法还包括:
遍历所述可抢占任务队列,并将其中已达预设最大可抢占次数的任务移出,得到更新后的可抢占任务队列。
一种可能的实现方式中,所述方法还包括:
根据所述目标任务的实际开始执行时间、预设开始执行时间、优先级,计算平均任务延迟度;
根据单位时间内执行的任务数量,计算吞吐量。
本申请实施例还提供了一种任务调度装置,所述装置包括:
确定单元,用于获取待调度的目标任务,并根据所述目标任务对应的有向无环图中算子的构成和数量,确定所述目标任务所属的任务型;
第一计算单元,用于根据所述目标任务所属的任务型,计算所述目标任务所需的中央处理器资源数量和内存资源数量;
第二计算单元,用于根据所述目标任务的优先级、等待时间和被抢占次数,计算所述目标任务的紧迫度;
调度单元,用于根据所述目标任务的紧迫度,对所述目标任务进行合理调度。
一种可能的实现方式中,所述确定单元包括:
判断子单元,用于将所述目标任务对应的有向无环图中数据抽取算子的数量和数据抽取加载算子的数量相加,并判断得到的相加结果是否小于所述目标任务对应的有向无环图中算子总数的预设百分比;
第一确定子单元,用于若判断出得到的相加结果小于所述目标任务对应的有向无环图中算子总数的预设百分比,则确定所述目标任务为中央处理器密集型任务;
第二确定子单元,用于若判断出得到的相加结果不小于所述目标任务对应的有向无环图中算子总数的预设百分比,,则确定所述目标任务为内存密集型。
一种可能的实现方式中,所述第一计算单元包括:
第三确定子单元,用于根据所述目标任务所属的任务型,确定所述目标任务的任务型权值;
预估子单元,用于利用采样法,对所述目标任务的数据进行采样,并根据采样结果,预估所述目标任务的总数据量;
计算子单元,用于根据所述目标任务的任务型权值和预估出的所述目标任务的总数据量,计算所述目标任务所需的中央处理器资源数量和内存资源数量。
一种可能的实现方式中,所述装置还包括:
第一构成单元,用于按照所述目标任务的紧迫度由小到大进行排序,构成可抢占任务队列;
第二构成单元,用于根据所述目标任务的优先级,构成优先级任务队列;所述优先级任务队列包括高优先级任务队列、中优先级任务队列、低优先级任务队列。
一种可能的实现方式中,所述调度单元具体用于:
若所述高优先级任务队列不为空,则调度执行所述高优先级任务队列中的队首任务,当剩余中央处理器资源数量和内存资源数量足够分配时,则正常执行任务;或者,当剩余中央处理器资源数量和内存资源数量不够分配时,则从所述可抢占任务队列中按照紧迫度由小到大依次抢占任务资源;
若所述高优先级任务队列为空,则按照预设概率调度执行所述中优先级任务队列和低优先级任务队列中的任务,当剩余中央处理器资源数量和内存资源数量足够分配时,则正常执行任务;当剩余中央处理器资源数量和内存资源数量不够分配时,则将待执行任务挂起等待,并在达到预设挂起等待时间时,重新调度执行所述待执行任务。
一种可能的实现方式中,所述调度单元还用于:
在所述从所述可抢占任务队列中按照紧迫度由小到大依次抢占任务资源之前,遍历所述可抢占任务队列,并将其中已达预设最大可抢占次数的任务移出,得到更新后的可抢占任务队列。
一种可能的实现方式中,所述装置还包括:
第三计算单元,用于根据所述目标任务的实际开始执行时间、预设开始执行时间、优先级,计算平均任务延迟度;
第四计算单元,用于根据单位时间内执行的任务数量,计算吞吐量。
本申请实施例还提供了一种任务调度设备,包括:处理器、存储器、系统总线;
所述处理器以及所述存储器通过所述系统总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述任务调度方法中的任意一种实现方式。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述任务调度方法中的任意一种实现方式。
本申请实施例提供的一种任务调度方法、装置及设备,首先获取待调度的目标任务,并根据目标任务对应的有向无环图中算子的构成和数量,确定目标任务所属的任务型,然后根据目标任务所属的任务型,计算目标任务所需的中央处理器资源数量和内存资源数量;接着,根据目标任务的优先级、等待时间和被抢占次数,计算目标任务的紧迫度,进而可以根据目标任务的紧迫度,对目标任务进行合理调度。可见,由于本申请实施例是根据计算出的目标任务的任务型和紧迫度进行任务调度,从而能够在保证性能的同时尽可能降低CPU和内存的资源消耗,并且能够在提高系统吞吐量的同时也提高了用户对系统的满意程度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种任务调度方法的流程示意图;
图2为本申请实施例提供的一种任务调度装置的组成示意图。
具体实施方式
目前在进行任务调度时,通常会采用抢占式任务调度方法,在申请资源阶段,仅根据预估数据量来申请固定的CPU资源和内存资源,若任务为CPU密集型或内存密集型,会出现某一类资源利用率不高的情况,降低了系统的吞吐量。同时,当出现高优先级任务插入时,还会直接根据优先级抢占低优先级任务的执行资源,甚至导致一些低优先级任务始终无法得到资源,出现多个饥饿任务不能按照预期进行调度,其中,任务饥饿指的是任务一直得不到资源导致任务一直无法执行,降低了用户对系统的满意程度。
为解决上述缺陷,本申请提供了一种任务调度方法,首先获取待调度的目标任务,并根据目标任务对应的有向无环图中算子的构成和数量,确定目标任务所属的任务型,然后根据目标任务所属的任务型,计算目标任务所需的中央处理器资源数量和内存资源数量;接着,根据目标任务的优先级、等待时间和被抢占次数,计算目标任务的紧迫度,进而可以根据目标任务的紧迫度,对目标任务进行合理调度。可见,由于本申请实施例是根据计算出的目标任务的任务型和紧迫度进行任务调度,从而能够在保证性能的同时尽可能降低CPU和内存的资源消耗,并且能够在提高系统吞吐量的同时也提高了用户对系统的满意程度。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
第一实施例
参见图1,为本实施例提供的一种任务调度方法的流程示意图,该方法包括以下步骤:
S101:获取待调度的目标任务,并根据目标任务对应的有向无环图中算子的构成和数量,确定目标任务所属的任务型。
在本实施例中,将采用本实施例进行调度执行的任一任务定义为目标多任务。并且,需要说明的是,本实施例不限制目标任务的类型,比如,目标任务可以是计算量较大的CPU密集型任务或输入/输出(Input/Output,简称IO)开销较大的内存密集型任务等。并且,本实施例也不限制目标任务的优先级,目标任务的优先级可以是高优先级、中优先级、低优先级中的任一类,比如系统级别的高优先级任务、数据日常监控类的中优先级任务、或者数据测试类的低优先级任务等等。此外,本实施例对目任务的获取方式也不做限定,目标多媒体资源可以根据实际需要,通过各种现有或未来出现的方式获得。
为了能够提高任务调度效果以及用户对系统的满意程度率,在获取待调度的目标任务后,当上游任务执行完毕,即可创建任务实例,并根据目标任务对应的有向无环图(Directed acyclic graph,简称DAG)中算子的构成和数量,确定目标任务所属的任务型,用以执行后续步骤S102-S104,实现对该目标任务的合理调度。
其中,任务型可以指的是描述目标任务所需要的资源类型倾向,包括I/O密集型和CPU密集型两种。DAG包含了目标任务由起始节点开始执行,到结束节点停止的一个无回路的有向图,其中,每个节点对应一种算子,有多少个节点即有多少个算子。而算子指的是DAG中节点对应的操作,包括数据抽取、数据计算、数据加载三种类型。数据抽取是指将数据从数据源抽取到系统中;数据计算是指对数据进行一系列计算;数据加载是指将系统中的处理完毕的数据加载到数据仓库中供后续使用。
具体来讲,一种可选的实现方式是,本步骤S101中“根据目标任务对应的有向无环图中算子的构成和数量,确定目标任务所属的任务型”的具体实现过程可以包括:将目标任务对应的有向无环图中数据抽取算子的数量和数据抽取加载算子的数量相加,并判断得到的相加结果是否小于目标任务对应的有向无环图中算子总数的预设百分比。若是,则确定所述目标任务为CPU密集型任务;若否,则确定目标任务为内存密集型。
在本实现方式中,可以根据目标任务对应的有向无环图中算子的类型和数量确定目标任务所属任务型,若数据抽取算子的数量(此处将其定义为Nextract)和数据加载算的数量(此处将其定义为Nload)之和小于总算子数(此处将其定义为N)的预设百分比(具体取值可根据实际情况进行设定,本申请实施例不进行限定,比如可以将其设定为35%),如若Nextract+Nload<N×35%,则判定该目标任务为CPU密集型任务,否则,则判定该目标任务为内存密集型。
S102:根据目标任务所属的任务型,计算目标任务所需的中央处理器资源数量和内存资源数量。
在本实施例中,通过步骤S101确定出目标任务所属的任务型后,为了能够提高对于目标任务的调度效果,进一步的,还需要根据目标任务所属的任务型,计算目标任务所需的中央处理器资源数量和内存资源数量,使得能够在保证系统性能的同时,尽可能降低CPU和内存的资源消耗。
具体来讲,一种可选的实现方式是,本步骤S102的具体实现过程可以包括下述步骤A1-A3:
步骤A1:根据目标任务所属的任务型,确定目标任务的任务型权值。
在本实现方式中,在计算目标任务所需的内存资源和CPU资源时,引入了内存任务型权值(此处将其定义为M)和CPU任务型权值(此处将其定义为C),用以表示不同任务型的目标任务所需的内存资源和CPU资源情况,具体计算公式如下
Figure BDA0003847821010000081
Figure BDA0003847821010000082
其中,C表示CPU任务型权值;M表示内存任务型权值;Nextract+Nload<N×35%表示数据抽取算子的数量和数据加载算的数量之和小于总算子数的35%(该35%仅为示例表示,而预设百分比的数值可根据实际情况进行调整,本申请实施例不进行限定);Nextract+Nload≥N×35表示数据抽取算子的数量和数据加载算的数量之和不小于总算子数的35%。而对于cc、mc、cm、mm的取值可根据目标任务的数据来源和所采用的大数据平台和系统结构而定,以目标任务的数据来源为Hadoop分布式文件系统(Hadoop Distributed File System,简称HDFS)且数据是从此导入到Spark里为例进行介绍如下:
首先,将Task作为目标任务中的细粒度衡量单位,用于把数量较大的目标任务划分为更小的级别。以HDFS默认块大小128MB进行Task划分,每个块对应目标任务中一个Task单位。
然后,依据Spark官方文档,通常每个CPU核心对应2至4个Task。核心数和内存比值按照任务所属的任务型根据经验值进行划分,即,将CPU密集型所需的CPU核心数和内存资源比值划分为一比一、将内存密集型所需的CPU核心数和内存资源比值划分一比二,具体划分方式本申请不做限定。
那么在此基础上,每GB数据(即1024MB数据)则需要划分成8个Task,即,1024/128=8。这样,对于CPU密集型,如果每个CPU核心对应2个Task,那么需要4(即8/2=4)个CPU核心,再根据核心数和内存资源的一比一的比值,可以得出所需的内存资源也为4。同理,对于IO密集型,如果每个CPU核心对应3个Task,那么就需要3个CPU核心,再根据核心数和内存资源的一比二的比值,可以得出所需的内存为6。可以理解的是,理论上还存在两种情况:一种是每个CPU对应2个Task,那么分别需要4个CPU核心和8个内存资源,另一种是每个CPU对应4个Task,那么分别需要2个CPU和4个内存资源,但这两种情况的资源分配都无法和前述CPU密集型的资源分配相均衡,会出现过多或过少的情况。
所以,为了使得资源分配均衡,提高资源利用率,得出参数cc的取值为4、mc的取值为4、cm的取值为3、mm的取值为6。
步骤A2:利用采样法,对目标任务的数据进行采样,并根据采样结果,预估目标任务的总数据量。
在本实现方式中,为了准确计算出目标任务所需的内存资源和CPU资源,不仅需要通过步骤A1确定出目标任务的任务型权值(即M和C),还需要预估出目标任务的总数据量,用以执行后续步骤A3。
具体来讲,由于不同数据源的目标任务的数据量会受其列类型和数据行数的影响,难以有统一的度量方式。因此,本申请采用了采样法,在目标任务的数据进行采样,即,对目标任务的前linessample(具体取值可根据实际情况进行设定,本申请不做限定)行数据进行采样,并对每一行的数据量(此处将其定义为sizei)进行求和计算,再将得到的和值除以数据行数linessample,得到前linessample行数据中每一行数据量的平均值,再将该平均值与目标任务的总数据行数(此处将其定义为linesreal)相乘,预估出目标任务的总数据量,单位为十亿字节(Gigabyte,简称GB),具体计算公式如下公式(3)所示:
Figure BDA0003847821010000101
其中,DATA表示预估出的目标任务的总数据量;sizei表示第i行数据的数据量;linesreal表示目标任务的总数据行数。
步骤A3:根据目标任务的任务型权值和预估出的目标任务的总数据量,计算目标任务所需的中央处理器资源数量和内存资源数量。
在本实现方式中,通过步骤A1确定出目标任务的任务型权值(即M和C),以及通过步骤A2预估出目标任务的总数据量DATA后,进一步可以对二者进行分析计算,得到目标任务所需的CPU资源数量和内存资源数量,具体计算公式如下:
Rcpu=C*DATA (4)
Rmemory=M*DATA (5)
其中,Rcpu表示目标任务所需的CPU资源数量;C表示CPU任务型权值;Rmemory表示目标任务所需的内存资源数量;M表示内存任务型权值;DATA表示预估出的目标任务的总数据量。
进一步的,再将上述公式(3)中DATA的计算公式代入上述公式(4)和(5)后,可得到如下计算公式(6)和(7):
Figure BDA0003847821010000102
Figure BDA0003847821010000103
S103:根据目标任务的优先级、等待时间和被抢占次数,计算目标任务的紧迫度。
需要说明的是,为了能够提高任务调度效果以及用户对系统的满意程度率,不仅需要通过上述步骤S101-S102根据计算出的目标任务的任务型为其分配合理的CPU资源数量和内存资源数量,以在保证性能的同时尽可能降低CPU和内存的资源消耗,还需要通过上述步骤S103-S104以根据目标任务的紧迫度进行任务调度,以便能够在提高系统吞吐量的同时用户对系统的满意程度,并缓解任务的饥饿现象。
为此,首先需要综合利用目标任务的动态和静态特性,计算出目标任务的紧迫度。其中,紧迫度用于表示目标任务提交后动态变化的紧迫程度。具体可以由目标任务的优先级、等待时间和被抢占次数共同确定,具体计算公式如下:
E=a*Pi+b*Twaiti+c*Numpreemptedi (8)
其中,E表示第i个目标任务的紧迫度;Pi表示第i个目标任务的优先级,包括高优先级、中优先级、低优先级,可根据实际情况进行取值,比如可以分别取值为3、2、1等;Twaiti表示第i个目标任务的等待时间,单位可以取为秒;Numpreemptedi表示第i个目标任务被抢占的次数;a、b、c均为紧迫度的因素权值,可根据实际情况进行取值,但需保证三者的和为1,即a+b+c=1。
在此基础上,一种可选的实现方式是,在计算出目标任务的紧迫度之后,可以按照目标任务的紧迫度由小到大进行排序,构成可抢占任务队列,比如,若目标任务的优先级为中优先级或低优先级,则可以将被抢占次数的初始值置为0,来计算其紧迫度,并加入可抢占任务队列,以便后续从队列头部选择紧迫度最低的任务进行资源抢占。此外,还可以根据目标任务的优先级,构成优先级任务队列,用于按序进行任务调度。其中,优先级任务队列可以包括高优先级任务队列、中优先级任务队列、低优先级任务队列。
S104:根据目标任务的紧迫度,对目标任务进行合理调度。
在本实施例中,在通过步骤S103计算出目标任务的紧迫度后,进一步可以根据目标任务的紧迫度,对目标任务进行合理调度,以提高系统吞吐量的同时用户对系统的满意程度。
具体来讲,一种可选的实现方式是,本步骤S104的实现过程具体可以包括下述步骤B1或B2:
步骤B1:若高优先级任务队列不为空,则调度执行高优先级任务队列中的队首任务,当剩余中央处理器资源数量和内存资源数量足够分配时,则正常执行任务;或者,当剩余中央处理器资源数量和内存资源数量不够分配时,则从可抢占任务队列中按照紧迫度由小到大依次抢占任务资源。
在本实现方式中,在根据目标任务的优先级,构成了包括高优先级任务队列、中优先级任务队列、低优先级任务队列的优先级任务队列后,进一步的,若高优先级队列不为空,则调度执行队首任务,若剩余CPU资源数量和内存资源数量资源足够分配,则为该任务分配资源并执行任务;或者,若剩余资源不够分配,则先遍历可抢占任务队列,并将其中已达预设最大可抢占次数的任务移出,得到更新后的可抢占任务队列,再将更新后的可抢占任务队列依照紧迫度由小到大进行排序,并从可抢占任务队列中按照紧迫度由小到大依次抢占任务资源,即从头部紧迫度最小的任务资源开始抢占任务资源并执行任务。
其中,预设最大可抢占次数的具体取值可根据实际情况进行设定,本申请实施例不进行限定,比如可将其设定为3次等。这样,通过维护可抢占任务队列为可抢占任务排序,并预设最大可抢占次数,可以缓解任务饥饿现象。
步骤B2:若高优先级任务队列为空,则按照预设概率调度执行中优先级任务队列和低优先级任务队列中的任务,当剩余中央处理器资源数量和内存资源数量不够分配时,则将待执行任务挂起等待,并在达到预设挂起等待时间时,重新调度执行待执行任务。
在本实现方式中,在根据目标任务的优先级,构成了包括高优先级任务队列、中优先级任务队列、低优先级任务队列的优先级任务队列后,进一步的,若高优先级队列为空,则可以按照预设概率调度执行中优先级任务队列和低优先级任务队列中的任务,其中,预设概率的具体取值可根据实际情况进行设定,本申请实施例不进行限定,比如可以按照65%的概率调度中优先级目标任务,35%的概率调度低优先级目标任务等。若剩余CPU资源数量和内存资源数量资源足够分配,则为该待执行任务分配资源并执行任务;或者,若剩余资源不够分配,则将该待执行任务挂起等待,并在达到预设挂起等待时间时,重新调度执行待执行任务。
其中,预设挂起等待时间的具体取值可根据实际情况进行设定,本申请实施例不进行限定,比如可将其设定为1分钟等。
进一步的,在目标任务执行完毕后,可将分配给其的CPU资源和内存资源进行回收,并销毁相对应的任务实例,以便进行后续任务调度处理。
需要说明的是,一种可选的实现方式是,为了能够能加清晰、准确的描述用户对系统的满意程度,还可以根据目标任务的实际开始执行时间、预设开始执行时间、优先级,计算出系统的平均任务延迟度,以及根据单位时间内执行的任务数量,计算出系统的吞吐量,具体计算公式如下:
Figure BDA0003847821010000131
其中,Tstarti表示第i个目标任务的实际开始执行时间;Tti min gi表示第i个目标任务的预设开始执行时间;Pi表示第i个目标任务的优先级;Ntask表示目标任务的总数量。Delay表示系统的平均任务延迟度,可以理解是,Delay的取值越大,系统的平均任务延迟度越大,用户对系统的满意程度越低,反之,Delay的取值越小,系统的平均任务延迟度越小,用户对系统的满意程度越高。
TPS=Ntask/T (10)
其中,TPS表示系统的吞吐量,即,系统单位时间内处理的目标任务的数量;Ntask表示系统处理的目标任务的总数量;T表示单位时间。可以理解是,TPS的取值越大,系统的吞吐量越大,用户对系统的满意程度越高,反之,TPS的取值越小,系统的吞吐量越小,用户对系统的满意程度越低。
综上,本实施例提供的一种任务调度方法,首先获取待调度的目标任务,并根据目标任务对应的有向无环图中算子的构成和数量,确定目标任务所属的任务型,然后根据目标任务所属的任务型,计算目标任务所需的中央处理器资源数量和内存资源数量;接着,根据目标任务的优先级、等待时间和被抢占次数,计算目标任务的紧迫度,进而可以根据目标任务的紧迫度,对目标任务进行合理调度。可见,由于本申请实施例是根据计算出的目标任务的任务型和紧迫度进行任务调度,从而能够在保证性能的同时尽可能降低CPU和内存的资源消耗,并且能够在提高系统吞吐量的同时也提高了用户对系统的满意程度。
第二实施例
本实施例将对一种任务调度装置进行介绍,相关内容请参见上述方法实施例。
参见图2,为本实施例提供的一种任务调度装置的组成示意图,该装置200包括:
确定单元201,用于获取待调度的目标任务,并根据所述目标任务对应的有向无环图中算子的构成和数量,确定所述目标任务所属的任务型;
第一计算单元202,用于根据所述目标任务所属的任务型,计算所述目标任务所需的中央处理器资源数量和内存资源数量;
第二计算单元203,用于根据所述目标任务的优先级、等待时间和被抢占次数,计算所述目标任务的紧迫度;
调度单元204,用于根据所述目标任务的紧迫度,对所述目标任务进行合理调度。
在本实施例的一种实现方式中,所述确定单元201包括:
判断子单元,用于将所述目标任务对应的有向无环图中数据抽取算子的数量和数据抽取加载算子的数量相加,并判断得到的相加结果是否小于所述目标任务对应的有向无环图中算子总数的预设百分比;
第一确定子单元,用于若判断出得到的相加结果小于所述目标任务对应的有向无环图中算子总数的预设百分比,则确定所述目标任务为中央处理器密集型任务;
第二确定子单元,用于若判断出得到的相加结果不小于所述目标任务对应的有向无环图中算子总数的预设百分比,,则确定所述目标任务为内存密集型。
在本实施例的一种实现方式中,所述第一计算单元203包括:
第三确定子单元,用于根据所述目标任务所属的任务型,确定所述目标任务的任务型权值;
预估子单元,用于利用采样法,对所述目标任务的数据进行采样,并根据采样结果,预估所述目标任务的总数据量;
计算子单元,用于根据所述目标任务的任务型权值和预估出的所述目标任务的总数据量,计算所述目标任务所需的中央处理器资源数量和内存资源数量。
在本实施例的一种实现方式中,所述装置还包括:
第一构成单元,用于按照所述目标任务的紧迫度由小到大进行排序,构成可抢占任务队列;
第二构成单元,用于根据所述目标任务的优先级,构成优先级任务队列;所述优先级任务队列包括高优先级任务队列、中优先级任务队列、低优先级任务队列。
在本实施例的一种实现方式中,所述调度单元204具体用于:
若所述高优先级任务队列不为空,则调度执行所述高优先级任务队列中的队首任务,当剩余中央处理器资源数量和内存资源数量足够分配时,则正常执行任务;或者,当剩余中央处理器资源数量和内存资源数量不够分配时,则从所述可抢占任务队列中按照紧迫度由小到大依次抢占任务资源;
若所述高优先级任务队列为空,则按照预设概率调度执行所述中优先级任务队列和低优先级任务队列中的任务,当剩余中央处理器资源数量和内存资源数量足够分配时,则正常执行任务;当剩余中央处理器资源数量和内存资源数量不够分配时,则将待执行任务挂起等待,并在达到预设挂起等待时间时,重新调度执行所述待执行任务。
在本实施例的一种实现方式中,所述调度单元204还用于:
在所述从所述可抢占任务队列中按照紧迫度由小到大依次抢占任务资源之前,遍历所述可抢占任务队列,并将其中已达预设最大可抢占次数的任务移出,得到更新后的可抢占任务队列。
在本实施例的一种实现方式中,所述装置还包括:
第三计算单元,用于根据所述目标任务的实际开始执行时间、预设开始执行时间、优先级,计算平均任务延迟度;
第四计算单元,用于根据单位时间内执行的任务数量,计算吞吐量。
进一步地,本申请实施例还提供了一种任务调度设备,包括:处理器、存储器、系统总线;
所述处理器以及所述存储器通过所述系统总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述任务调度方法的任一种实现方法。
进一步地,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述任务调度方法的任一种实现方法。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本申请各个实施例或者实施例的某些部分所述的方法。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种任务调度方法,其特征在于,所述方法包括:
获取待调度的目标任务,并根据所述目标任务对应的有向无环图中算子的构成和数量,确定所述目标任务所属的任务型;
根据所述目标任务所属的任务型,计算所述目标任务所需的中央处理器资源数量和内存资源数量;
根据所述目标任务的优先级、等待时间和被抢占次数,计算所述目标任务的紧迫度;
根据所述目标任务的紧迫度,对所述目标任务进行合理调度。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标任务对应的有向无环图中算子的构成和数量,确定所述目标任务所属的任务型,包括:
将所述目标任务对应的有向无环图中数据抽取算子的数量和数据抽取加载算子的数量相加,并判断得到的相加结果是否小于所述目标任务对应的有向无环图中算子总数的预设百分比;
若是,则确定所述目标任务为中央处理器密集型任务;
若否,则确定所述目标任务为内存密集型。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标任务所属的任务型,计算所述目标任务所需的中央处理器资源数量和内存资源数量,包括:
根据所述目标任务所属的任务型,确定所述目标任务的任务型权值;
利用采样法,对所述目标任务的数据进行采样,并根据采样结果,预估所述目标任务的总数据量;
根据所述目标任务的任务型权值和预估出的所述目标任务的总数据量,计算所述目标任务所需的中央处理器资源数量和内存资源数量。
4.根据权利要求1所述的方法,其特征在于,在所述根据所述目标任务的优先级、等待时间和被抢占次数,计算所述目标任务的紧迫度之后,所述方法还包括:
按照所述目标任务的紧迫度由小到大进行排序,构成可抢占任务队列;
根据所述目标任务的优先级,构成优先级任务队列;所述优先级任务队列包括高优先级任务队列、中优先级任务队列、低优先级任务队列。
5.根据权利要求4所述的方法,其特征在于,所述根据所述目标任务的紧迫度,对所述目标任务进行合理调度,包括:
若所述高优先级任务队列不为空,则调度执行所述高优先级任务队列中的队首任务,当剩余中央处理器资源数量和内存资源数量足够分配时,则正常执行任务;或者,当剩余中央处理器资源数量和内存资源数量不够分配时,则从所述可抢占任务队列中按照紧迫度由小到大依次抢占任务资源;
若所述高优先级任务队列为空,则按照预设概率调度执行所述中优先级任务队列和低优先级任务队列中的任务,当剩余中央处理器资源数量和内存资源数量足够分配时,则正常执行任务;当剩余中央处理器资源数量和内存资源数量不够分配时,则将待执行任务挂起等待,并在达到预设挂起等待时间时,重新调度执行所述待执行任务。
6.根据权利要求5所述的方法,其特征在于,在所述从所述可抢占任务队列中按照紧迫度由小到大依次抢占任务资源之前,所述方法还包括:
遍历所述可抢占任务队列,并将其中已达预设最大可抢占次数的任务移出,得到更新后的可抢占任务队列。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
根据所述目标任务的实际开始执行时间、预设开始执行时间、优先级,计算平均任务延迟度;
根据单位时间内执行的任务数量,计算吞吐量。
8.一种任务调度装置,其特征在于,所述装置包括:
确定单元,用于获取待调度的目标任务,并根据所述目标任务对应的有向无环图中算子的构成和数量,确定所述目标任务所属的任务型;
第一计算单元,用于根据所述目标任务所属的任务型,计算所述目标任务所需的中央处理器资源数量和内存资源数量;
第二计算单元,用于根据所述目标任务的优先级、等待时间和被抢占次数,计算所述目标任务的紧迫度;
调度单元,用于根据所述目标任务的紧迫度,对所述目标任务进行合理调度。
9.一种任务调度设备,其特征在于,包括:处理器、存储器、系统总线;
所述处理器以及所述存储器通过所述系统总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行权利要求1-7任一项所述的方法。
CN202211122719.3A 2022-09-15 2022-09-15 一种任务调度方法、装置及设备 Pending CN115454602A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211122719.3A CN115454602A (zh) 2022-09-15 2022-09-15 一种任务调度方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211122719.3A CN115454602A (zh) 2022-09-15 2022-09-15 一种任务调度方法、装置及设备

Publications (1)

Publication Number Publication Date
CN115454602A true CN115454602A (zh) 2022-12-09

Family

ID=84305145

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211122719.3A Pending CN115454602A (zh) 2022-09-15 2022-09-15 一种任务调度方法、装置及设备

Country Status (1)

Country Link
CN (1) CN115454602A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115776524A (zh) * 2023-02-10 2023-03-10 广东瑞恩科技有限公司 用于智能制造的物联网海量数据多级调度传输系统
CN117785487A (zh) * 2024-02-27 2024-03-29 融科联创(天津)信息技术有限公司 一种算力资源调度方法、装置、设备和介质
CN118409871A (zh) * 2024-07-02 2024-07-30 山东海量信息技术研究院 一种数据处理方法、产品、服务器及介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115776524A (zh) * 2023-02-10 2023-03-10 广东瑞恩科技有限公司 用于智能制造的物联网海量数据多级调度传输系统
CN115776524B (zh) * 2023-02-10 2023-04-25 广东瑞恩科技有限公司 用于智能制造的物联网海量数据多级调度传输系统
CN117785487A (zh) * 2024-02-27 2024-03-29 融科联创(天津)信息技术有限公司 一种算力资源调度方法、装置、设备和介质
CN117785487B (zh) * 2024-02-27 2024-05-24 融科联创(天津)信息技术有限公司 一种算力资源调度方法、装置、设备和介质
CN118409871A (zh) * 2024-07-02 2024-07-30 山东海量信息技术研究院 一种数据处理方法、产品、服务器及介质

Similar Documents

Publication Publication Date Title
CN115454602A (zh) 一种任务调度方法、装置及设备
WO2022095815A1 (zh) 显存管理方法、装置、设备及系统
CN110781145B (zh) 一种文件系统任务调度方法、装置、设备及可读存储介质
CN112214319B (zh) 一种计算资源感知的任务调度方法
CN112363821A (zh) 一种计算资源调度方法、装置及计算机设备
CN111061556A (zh) 执行优先级任务的优化方法、装置、计算机设备及介质
KR101886072B1 (ko) 분산 인 메모리 환경에서 실시간 스트림 데이터 처리를 위한 동적 잡 스케쥴링 시스템 및 방법
CN110362391B (zh) 资源调度方法、装置、电子设备及存储介质
CN111367644A (zh) 一种面向异构融合系统的任务调度方法及装置
CN109104480B (zh) 一种网络请求的处理方法及装置
CN114866563A (zh) 扩容方法、装置、系统和存储介质
CN116594753A (zh) 任务调度方法、装置、电子设备、存储介质及程序产品
Jiang et al. Dynamic scheduling of workflow for makespan and robustness improvement in the IaaS cloud
CN112559176B (zh) 一种指令处理方法和装置
CN115185685B (zh) 任务调度方法、装置、计算机设备及存储介质
CN108429704B (zh) 一种节点资源分配方法及装置
CN106354553A (zh) 一种大数据系统中基于资源估算的任务调度方法及装置
CN112685158B (zh) 一种任务调度方法、装置、电子设备及存储介质
CN111813546B (zh) 一种多网络连接应用的资源分配方法、系统及相关装置
CN115309520A (zh) 任务迁移方法、装置、电子设备及存储介质
CN117056064A (zh) 资源分配方法、装置、服务器、存储介质和程序产品
CN110096364B (zh) 一种云服务器计算集合控制方法及系统
CN114546279B (zh) Io请求预测方法、装置、存储节点及可读存储介质
CN117149393B (zh) 一种可调试的计算机多任务调度方法和系统
WO2024007922A1 (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