CN117519930A - 批量任务的执行方法、装置及电子设备 - Google Patents
批量任务的执行方法、装置及电子设备 Download PDFInfo
- Publication number
- CN117519930A CN117519930A CN202311477606.XA CN202311477606A CN117519930A CN 117519930 A CN117519930 A CN 117519930A CN 202311477606 A CN202311477606 A CN 202311477606A CN 117519930 A CN117519930 A CN 117519930A
- Authority
- CN
- China
- Prior art keywords
- concurrent
- task
- tasks
- target
- determining
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000012163 sequencing technique Methods 0.000 claims abstract description 48
- 238000012545 processing Methods 0.000 claims description 30
- 238000005516 engineering process Methods 0.000 abstract description 8
- 238000004590 computer program Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
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
技术领域
本申请涉及云计算技术领域、金融科技领域和其他技术领域,具体而言,涉及一种批量任务的执行方法、装置及电子设备。
背景技术
目前,在大数据、人工智能场景中,k8s集群中会运行一类并发任务:这种并发任务负责处理批量任务,由一个容器组(即pod)或多个Pod组成,每个pod包含一个或多个容器,在集群中要求该并发任务中的所有容器得到集群分配的资源,或者分配到资源的容器的数量达到最低阈值时,才能执行该并发任务。这种调度并发任务所需资源的过程在大数据、人工智能场景中较为常见,也是云原生化过程中关键的技术问题。
由于当前K8s集群的原生系统调度器无法满足该并发任务的调度需求,现有技术中存在一种基于Pod组的并发负载调度算法:通过给Pod打上特定的标签组成逻辑上的Pod组,并监听该Pod组涵盖的所有Pod是否已完成调度,如果是则运行该组Pod,如果不是则保持等待状态,直到该并发任务超时。
但现有技术中基于Pod组的并发负载调度算法存在以下问题:一是调度成功率低,由于系统调度器的调度队列中会穿插其它负载,导致同一pod组中的每个容器无法在一定时长内整体完成调度,进而降低了并发任务调度成功率;二是容易造成资源死锁的问题,由于并发任务不具备执行优先级,当多个并发任务同时进行时,多个并发任务中的部分容器调度成功,但并发任务整体无法到达执行要求,进而造成多个并发任务相互抢占资源,产生资源死锁的问题。
针对相关技术中集群节点运行批量任务时,由于无法保证该批量任务相关的至少一个容器处于就绪状态,从而引发资源死锁,导致该批量任务无法运行,降低了服务可用性的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种批量任务的执行方法、装置及电子设备,以解决相关技术中集群节点运行批量任务时,由于无法保证该批量任务相关的至少一个容器处于就绪状态,从而引发资源死锁,导致该批量任务无法运行,降低了服务可用性的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种批量任务的执行方法,该方法包括:确定集群中待执行的批量任务和执行所述批量任务的至少一个容器,得到并发任务;依据业务需求确定所述并发任务的优先级,得到所述并发任务的执行优先级;依据所述并发任务的执行优先级确定所述并发任务的任务调度值;依据所述并发任务的执行优先级和所述并发任务的任务调度值对所述并发任务进行排序,生成目标队列;执行所述目标队列中的所述并发任务,得到所述并发任务的执行结果。
进一步地,依据所述并发任务的执行优先级确定所述并发任务的任务调度值包括:确定执行所述并发任务时的资源使用情况;依据历史并发任务的执行情况,为所述执行优先级配置第一权重系数,以及为所述资源使用情况配置第二权重系数,其中,所述第一权重系数和所述第二权重系数的和为1;依据所述执行优先级、所述第一权重系数、所述资源使用情况和所述第二权重系数确定所述任务调度值。
进一步地,确定执行所述并发任务时的资源使用情况包括:确定执行所述并发任务所占用的至少一个资源类型,得到资源类型集合;确定所述资源类型集合中每个资源类型所占用的资源量;依据每个资源类型所占用的资源量和所述集群中包含每个资源类型的资源量确定所述并发任务时的资源使用情况。
进一步地,依据所述并发任务的执行优先级和所述并发任务的任务调度值对所述并发任务进行排序,生成目标队列包括:按照所述任务调度值对所述并发任务进行排序,得到第一队列;依据所述第一队列和所述集群当前的空闲资源量确定待执行的并发任务,得到目标并发任务;依据每个目标并发任务的执行优先级对所述目标并发任务进行排序,得到所述目标队列。
进一步地,依据所述第一队列和所述集群当前的空闲资源量确定待执行的并发任务,得到目标并发任务包括:确定所述第一队列中每个并发任务所需要占用的资源量,得到所述第一队列中每个并发任务的目标资源量;依据所述集群当前的空闲资源量和所述第一队列中每个并发任务的目标资源量确定所述目标并发任务。
进一步地,依据每个目标并发任务的执行优先级对所述目标并发任务进行排序,得到所述目标队列包括:依据所述执行优先级对所述目标并发任务进行排序,得到第三队列;依据所述目标并发任务的任务创建时刻对所述第三队列中所述执行优先级相同的所述目标并发任务进行排序,得到第四队列;依据所述目标并发任务的任务名称对所述第四队列中所述任务创建时刻相同的所述目标并发任务进行排序,得到所述目标队列。
进一步地,在依据所述第一队列和所述集群当前的空闲资源量确定待执行的并发任务,得到目标并发任务之后,所述方法还包括:将所述第一队列中除所述目标并发任务之外的并发任务的任务状态设置为待处理状态。
进一步地,在依据业务需求确定所述并发任务的优先级,得到所述并发任务的执行优先级之前,所述方法还包括:确定所述并发任务的任务状态是否为待处理状态;在所述并发任务的任务状态为所述待处理状态的情况下,依据所述集群当前的空闲资源量对所述并发任务进行预调度,得到预调度结果;在所述预调度结果为调度失败的情况下,配置所述并发任务的任务状态为所述待处理状态;在所述预调度结果为调度成功的情况下,执行依据所述业务需求确定对所述并发任务进行处理的优先级,得到所述并发任务的执行优先级的步骤。
为了实现上述目的,根据本申请的另一方面,提供了一种批量任务的执行装置,该装置包括:第一确定单元,用于确定集群中待执行的批量任务和执行所述批量任务的至少一个容器,得到并发任务;第二确定单元,用于依据业务需求确定所述并发任务的优先级,得到所述并发任务的执行优先级;第三确定单元,用于依据所述并发任务的执行优先级确定所述并发任务的任务调度值;排序单元,用于依据所述并发任务的执行优先级和所述并发任务的任务调度值对所述并发任务进行排序,生成目标队列;执行单元,用于执行所述目标队列中的所述并发任务,得到所述并发任务的执行结果。
进一步地,所述第三确定单元包括:第一确定子单元,用于确定执行所述并发任务时的资源使用情况;第一配置子单元,用于依据历史并发任务的执行情况,为所述执行优先级配置第一权重系数,以及为所述资源使用情况配置第二权重系数,其中,所述第一权重系数和所述第二权重系数的和为1;第二确定子单元,用于依据所述执行优先级、所述第一权重系数、所述资源使用情况和所述第二权重系数确定所述任务调度值。
进一步地,所述第一确定子单元包括:第一确定模块,用于确定执行所述并发任务所占用的至少一个资源类型,得到资源类型集合;第二确定模块,用于确定所述资源类型集合中每个资源类型所占用的资源量;第三确定模块,用于依据每个资源类型所占用的资源量和所述集群中包含每个资源类型的资源量确定所述并发任务时的资源使用情况。
进一步地,所述排序单元包括:第一排序子单元,用于按照所述任务调度值对所述并发任务进行排序,得到第一队列;第三确定子单元,用于依据所述第一队列和所述集群当前的空闲资源量确定待执行的并发任务,得到目标并发任务;第二排序子单元,用于依据每个目标并发任务的执行优先级对所述目标并发任务进行排序,得到所述目标队列。
进一步地,所述第三确定子单元包括:第四确定模块,用于确定所述第一队列中每个并发任务所需要占用的资源量,得到所述第一队列中每个并发任务的目标资源量;第五确定模块,用于依据所述集群当前的空闲资源量和所述第一队列中每个并发任务的目标资源量确定所述目标并发任务。
进一步地,所述第二排序子单元包括:第一排序模块,用于依据所述执行优先级对所述目标并发任务进行排序,得到第三队列;第二排序模块,用于依据所述目标并发任务的任务创建时刻对所述第三队列中所述执行优先级相同的所述目标并发任务进行排序,得到第四队列;第三排序模块,用于依据所述目标并发任务的任务名称对所述第四队列中所述任务创建时刻相同的所述目标并发任务进行排序,得到所述目标队列。
进一步地,所述排序单元还包括:第二配置子单元,用于在依据所述第一队列和所述集群当前的空闲资源量确定待执行的并发任务,得到目标并发任务之后,将所述第一队列中除所述目标并发任务之外的并发任务的任务状态设置为待处理状态。
进一步地,所述装置还包括:第四确定单元,用于在依据业务需求确定所述并发任务的优先级,得到所述并发任务的执行优先级之前,确定所述并发任务的任务状态是否为待处理状态;第一处理单元,用于在所述并发任务的任务状态为所述待处理状态的情况下,依据所述集群当前的空闲资源量对所述并发任务进行预调度,得到预调度结果;第二处理单元,用于在所述预调度结果为调度失败的情况下,配置所述并发任务的任务状态为所述待处理状态;第三处理单元,用于在所述预调度结果为调度成功的情况下,执行依据所述业务需求确定对所述并发任务进行处理的优先级,得到所述并发任务的执行优先级的步骤。
为了实现上述目的,根据本申请的一个方面,提供了一种电子设备,包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述任意一项所述批量任务的执行方法。
通过本申请,采用以下步骤:确定集群中待执行的批量任务和执行所述批量任务的至少一个容器,得到并发任务;依据业务需求确定所述并发任务的优先级,得到所述并发任务的执行优先级;依据所述并发任务的执行优先级确定所述并发任务的任务调度值;依据所述并发任务的执行优先级和所述并发任务的任务调度值对所述并发任务进行排序,生成目标队列;执行所述目标队列中的所述并发任务,得到所述并发任务的执行结果,解决了相关技术中集群节点运行批量任务时,由于无法保证该批量任务相关的至少一个容器处于就绪状态,从而引发资源死锁,导致该批量任务无法运行,降低了服务可用性的问题。通过批量任务的任务信息定义并发任务,能够对执行批量任务的至少一个容器进行整体调度,避免了集群执行多个批量任务时由于每个批量任务中的单个容器没有分配到集群资源导致集群资源死锁的问题,提高了批量任务的调度成功率,并且通过确定并发任务的优先级以及任务调度值生成动态的目标队列,保证了高优先级应用的并发任务能够被优先处理,达到了提高业务稳定性的效果,进一步达到了提高服务可用性的效果。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例一提供的批量任务的执行方法的流程图;
图2是根据本申请实施例一提供的可选的批量任务的执行方法的示意图;
图3是根据本申请实施例二提供的批量任务的执行装置的示意图;
图4是根据本申请实施例五提供的批量任务的执行电子设备的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息、集群中的用户信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据、集群中的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
下面结合优选的实施步骤对本发明进行说明,图1是根据本申请实施例一提供的批量任务的执行方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,确定集群中待执行的批量任务和执行批量任务的至少一个容器,得到并发任务。
在本实施例一中,待执行的批量任务是指集群中需要处理的大量数据或任务,这些批量任务可以分配给集群中的多个节点同时进行处理,以加快批量任务的处理速度。例如,对数据库中的数据进行分析、计算、模型训练和图像处理等各种类型的任务。
在执行批量任务时可以通过集群中的至少一个容器定义一个容器组(即Pod)作为该批量任务的并发任务,从而对并发任务进行整体调度。并发任务可以同时关联若干k8s集群的原生负载(例如,deployment、job),以控制并发任务中的至少一个容器。例如,通过关联deployment对象可以定义应用程序的容器镜像、副本数量、容器的资源限制、环境变量等信息;通过关联job对象可以进行资源调度、任务分配和监控等操作。
具体地,可以通过K8s集群的CRD(Custom Resource Definition)机制在K8s集群中,定义用于描述并发任务的各方面配置和属性的并发任务资源,进而可以通过订阅集群中并发任务的资源信息获取并发任务的相关信息,并基于这些信息和调度逻辑对并发任务进行调度。
步骤S102,依据业务需求确定并发任务的优先级,得到并发任务的执行优先级。
在本实施例一中,根据提供服务的平台方的业务需求和使用服务的应用方的业务需求统筹制定应用的优先级,并根据应用的优先级赋予并发任务相应的执行优先级,从而在调度并发任务时,能够根据并发任务的优先级优先处理高优先级的并发任务。
步骤S103,依据并发任务的执行优先级确定并发任务的任务调度值。
在本实施例一中,任务调度值用于定义一个并发任务被调度的先后次序,即并发任务的任务调度值越高则越优先调度该并发任务。并发任务的任务调度值可以根据由并发任务的多个维度构建,并通过为每个维度配置权重因子平衡每个维度的影响力度。
步骤S104,依据并发任务的执行优先级和并发任务的任务调度值对并发任务进行排序,生成目标队列。
在本实施例一中,目标队列表述了并发任务所关联Pod提交给K8s集群的系统调度器的先后次序,该次序与并发任务的优先级、任务调度值、任务创建时刻等因素相关。目标队列中并发任务的数量可以根据K8s集群的系统调度器的繁忙程度进行动态调整,以协调并发任务的资源调度与其它任务的资源调度。
步骤S105,执行目标队列中的并发任务,得到并发任务的执行结果。
在本实施例一中,为了尽快处理高优先级应用的并发任务,需要按照目标队列中并发任务的先后次序执行并发任务,得到并发任务的执行结果。
综上所述,本申请实施例一提供的批量任务的执行方法,通过确定集群中待执行的批量任务和执行批量任务的至少一个容器,得到并发任务;依据业务需求确定并发任务的优先级,得到并发任务的执行优先级;依据并发任务的执行优先级确定并发任务的任务调度值;依据并发任务的执行优先级和并发任务的任务调度值对并发任务进行排序,生成目标队列;执行目标队列中的并发任务,得到并发任务的执行结果,解决了相关技术中集群节点运行批量任务时,由于无法保证该批量任务相关的至少一个容器处于就绪状态,从而引发资源死锁,导致该批量任务无法运行,降低了服务可用性的问题。通过批量任务的任务信息定义并发任务,能够对执行批量任务的至少一个容器进行整体调度,避免了集群执行多个批量任务时由于每个批量任务中的单个容器没有分配到集群资源导致集群资源死锁的问题,提高了批量任务的调度成功率,并且通过确定并发任务的优先级以及任务调度值生成动态的目标队列,保证了高优先级应用的并发任务能够被优先处理,达到了提高业务稳定性的效果,进一步达到了提高服务可用性的效果。
可选地,在本申请实施例一提供的批量任务的执行方法中,依据并发任务的执行优先级确定并发任务的任务调度值包括:确定执行并发任务时的资源使用情况;依据历史并发任务的执行情况,为执行优先级配置第一权重系数,以及为资源使用情况配置第二权重系数,其中,第一权重系数和第二权重系数的和为1;依据执行优先级、第一权重系数、资源使用情况和第二权重系数确定任务调度值。
在本实施例一中,任务调度值定义一个并发任务被调度的先后次序,任务调度值越高越优先进行调度,至少可以根据并发任务的两个维度确定并发任务的任务调度值。
具体地,可以根据并发任务的资源使用情况和执行优先级计算并发任务的任务调度值,然后为资源使用情况和执行优先级两个维度分别配置权重系数,最后计算两个维度的得分得到任务调度值。其中,并发任务的执行优先级可以根据上述的业务需求确定,并发任务的资源使用情况可以根据并发任务所需的多种资源的资源量确定。
通过确定并发任务的资源使用情况和执行优先级,并且通过调整资源使用情况的权重系数和执行优先级的权重系数,能够平衡并发任务的执行优先级和集群资源利用率两方面的影响力度,实现了在保障并发任务调度成功率、调度优先级的同时,兼顾集群整体资源利用率的效果。
可选地,在本申请实施例一提供的批量任务的执行方法中,确定执行并发任务时的资源使用情况包括:确定执行并发任务所占用的至少一个资源类型,得到资源类型集合;确定资源类型集合中每个资源类型所占用的资源量;依据每个资源类型所占用的资源量和集群中包含每个资源类型的资源量确定并发任务时的资源使用情况。
在本实施例一中,可以基于DRF(Dominant Resource Fairness,DRF)算法的思想确定并发任务的资源使用情况。并发任务所需资源占集群资源总量的比例越低,则该并发任务的集群资源利用率越高,调度成功率越高。
在一可选的实施例中,并发任务A需要2个CPU、3G内存和1个GPU三种集群资源,集群资源包括10个CPU、10G内存和10个GPU。并发任务A所需集群资源占集群资源总量的比例为20%、30%和10%,可以确定并发任务A所需集群资源最多的资源类型为内存,占用比例为30%,最后将占用集群内存的比例数值30%作为并发任务A的资源使用情况。因此,计算并发任务A的任务调度值的公式可以表示为:任务调度值=执行优先级*权重系数B1+30%*权重系数B2,其中,权重系数B1与权重系数B2的和为1。
通过明确并发任务占用集群资源总量的情况,进而能够根据集群资源的使用情况确定并发任务的任务调度值,达到了提高集群资源利用率的效果。
可选地,在本申请实施例一提供的批量任务的执行方法中,依据并发任务的执行优先级和并发任务的任务调度值对并发任务进行排序,生成目标队列包括:按照任务调度值对并发任务进行排序,得到第一队列;依据第一队列和集群当前的空闲资源量确定待执行的并发任务,得到目标并发任务;依据每个目标并发任务的执行优先级对目标并发任务进行排序,得到目标队列。
在本实施例一中,为了根据集群资源的实际情况确定待执行的并发任务,可以在根据任务调度值对并发任务进行排序后,确定集群当前的空闲资源量,然后按照集群当前的空闲资源量确定待执行的并发任务(即上述的目标并发任务),最后按照每个目标并发任务的执行优先级对目标并发任务进行排序,得到待执行的并发任务的执行顺序,即上述的目标队列。需要注意的是,目标队列也可以设置为动态窗口,能够根据并发任务的情况实时调整动态窗口中的并发任务以及并发任务的先后次序。
通过集群当前的资源使用情况确定待执行的并发任务,以及根据并发任务的优先级对待执行的并发任务进行排序,得到目标队列,使得集群能够按照目标队列的先后次序执行并发任务,避免了集群中资源死锁的问题,提高了并发任务的调度成功率,以及提高了集群资源利用率。
可选地,在本申请实施例一提供的批量任务的执行方法中,依据第一队列和集群当前的空闲资源量确定待执行的并发任务,得到目标并发任务包括:确定第一队列中每个并发任务所需要占用的资源量,得到第一队列中每个并发任务的目标资源量;依据集群当前的空闲资源量和第一队列中每个并发任务的目标资源量确定目标并发任务。
在本实施例一中,可以依次计算第一队列中前i个并发任务中每个并发任务使用资源量的总和,将上述的前i个并发任务占用资源量的总和与集群当前的空闲资源量相比较,当前i个并发任务占用资源量的总和超过集群当前的空闲资源量时,将前i-1个并发任务作为目标并发任务,其中,i是正整数。
通过比较集群当前的空闲资源量和第一队列中前i个并发任务的使用资源量的总和,避免了集群中存在多个并发任务时,由于单个容器缺乏集群资源,导致并发任务一直处于等待状态的问题,保证了单个并发任务的顺利执行,提高了并发任务的调度成功率,以及提高了集群资源利用率。
可选地,在本申请实施例一提供的批量任务的执行方法中,依据每个目标并发任务的执行优先级对目标并发任务进行排序,得到目标队列包括:依据执行优先级对目标并发任务进行排序,得到第三队列;依据目标并发任务的任务创建时刻对第三队列中执行优先级相同的目标并发任务进行排序,得到第四队列;依据目标并发任务的任务名称对第四队列中任务创建时刻相同的目标并发任务进行排序,得到目标队列。
在本实施例一中,首先,可以对所有放入目标队列的并发任务进行基于执行优先级的队列排序,即执行优先级越高队列次序越靠前;然后,在执行优先级相同的情况下,可以基于并发任务的任务创建时刻进行排序,即任务创建时刻越早队列次序越靠前;最后,在任务创建时刻相同的情况下,可以按照预设名称字典对并发任务的任务名称进行排序,得到目标队列。
通过对目标并发任务进行排序,得到目标队列,保证了高优先级应用的并发任务能够被尽快处理,同时也保证了并发任务对应的批量任务的相关容器能够整体进入K8S系统调度器,完成批量任务的整体调度,达到了提高批量任务的调度成功率的效果,进一步达到了提高业务稳定性的效果。
可选地,在本申请实施例一提供的批量任务的执行方法中,在依据第一队列和集群当前的空闲资源量确定待执行的并发任务,得到目标并发任务之后,上述的方法还包括:将第一队列中除目标并发任务之外的并发任务的任务状态设置为待处理状态。
在本实施例一中,当并发任务进入目标队列后表示该并发任务处于调度就绪状态,即该并发任务所需资源已得到K8s集群的分配。但对于未进入目标队列的其它并发任务来说,则需要将这些其它并发任务的任务状态调整为待处理状态,表示这些其它并发任务处于调度未就绪状态,即这些其它并发任务所需资源由于各种原因未得到K8s集群的分配,需要继续等待K8s集群分配资源。
通过将未进入目标队列的并发任务的任务状态设置为待处理状态,避免了未进入目标队列的并发任务被遗漏的问题,进而能够在下一次处理并发任务时执行改并发任务。
可选地,在本申请实施例一提供的批量任务的执行方法中,在依据业务需求确定并发任务的优先级,得到并发任务的执行优先级之前,上述的方法还包括:确定并发任务的任务状态是否为待处理状态;在并发任务的任务状态为待处理状态的情况下,依据集群当前的空闲资源量对并发任务进行预调度,得到预调度结果;在预调度结果为调度失败的情况下,配置并发任务的任务状态为待处理状态;在预调度结果为调度成功的情况下,执行依据业务需求确定对并发任务进行处理的优先级,得到并发任务的执行优先级的步骤。
在本实施例一中,为了提高处理并发任务的效率,可以在确定并发任务的执行优先级前,遍历当前所有待处理的并发任务,根据每个并发任务的资源需求量(例如,CPU、内存、GPU等资源)和预设调度策略进行预调度,对于预调度失败的并发任务,将其任务状态置为未处理状态,而对于预调度成功的并发任务,则执行确定并发任务的执行优先级的步骤。其中,预设调度策略是指业务人员或工作人员针对实际生产情况制定的调度策略,还可以是K8s集群原本的调度策略。
通过在确定并发任务的优先级之前对并发任务进行预调度,避免了在生成目标队列时进行大量无意义计算的问题,达到了提高集群对并发任务的处理效率的效果。
可选地,在本实施例一中,本方案调度并执行并发任务的流程可以如图2所示。首先,从K8s集群中的kube-apiserver组件获取并发任务和并发任务所需的集群资源,判断并发任务当前是否需要处理,对于当前已成功执行或已超时的并发任务,则认为不需要处理;对于处于未处理状态的并发任务,则确定并发任务的执行优先级。然后,遍历当前所有未处理的并发任务,根据各并发任务的资源需求量(例如,CPU、内存、GPU等资源)和预设调度策略进行预调度,配置预调度失败的并发任务的任务状态为未处理状态;对于预调度成功的并发任务,计算并发任务的任务调度值。其次,将所有并发任务按照任务调度值进行排序(优先级高、使集群资源利用率高的并发任务会排在前面),按照排序次序获取资源需求量不超过集群当前空闲资源量的最多并发任务,放入动态窗口。再其次,对所有放入动态窗口的并发任务执行基于执行优先级的排序(优先级越高顺序越靠前);在执行优先级相同的情况下,基于并发任务的任务创建时刻进行排序(任务创建时刻越早越靠前);在任务创建时刻相同的情况下,基于预设名称字典对并发任务的任务名称进行排序。最后,在对动态窗口进行排序后,同一并发任务相关的容器或pod能够整体进入K8S系统调度器,执行该并发任务。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例二
本申请实施例二还提供了一种批量任务的执行装置,需要说明的是,本申请实施例二的批量任务的执行装置可以用于执行本申请实施例一所提供的用于批量任务的执行方法。以下对本申请实施例二提供的批量任务的执行装置进行介绍。
图3是根据本申请实施例二的批量任务的执行装置的示意图。如图3所示,该装置包括:第一确定单元301、第二确定单元302、第三确定单元303、排序单元304和执行单元305。
具体地,第一确定单元301,用于确定集群中待执行的批量任务和执行批量任务的至少一个容器,得到并发任务。
第二确定单元302,用于依据业务需求确定并发任务的优先级,得到并发任务的执行优先级。
第三确定单元303,用于依据并发任务的执行优先级确定并发任务的任务调度值。
排序单元304,用于依据并发任务的执行优先级和并发任务的任务调度值对并发任务进行排序,生成目标队列。
执行单元305,用于执行目标队列中的并发任务,得到并发任务的执行结果。
本申请实施例二提供的批量任务的执行装置,通过第一确定单元301确定集群中待执行的批量任务和执行批量任务的至少一个容器,得到并发任务;第二确定单元302依据业务需求确定并发任务的优先级,得到并发任务的执行优先级;第三确定单元303依据并发任务的执行优先级确定并发任务的任务调度值;排序单元304依据并发任务的执行优先级和并发任务的任务调度值对并发任务进行排序,生成目标队列;执行单元305执行目标队列中的并发任务,得到并发任务的执行结果,解决了相关技术中集群节点运行批量任务时,由于无法保证该批量任务相关的至少一个容器处于就绪状态,从而引发资源死锁,导致该批量任务无法运行,降低了服务可用性的问题。通过批量任务的任务信息定义并发任务,能够对执行批量任务的至少一个容器进行整体调度,避免了集群执行多个批量任务时由于每个批量任务中的单个容器没有分配到集群资源导致集群资源死锁的问题,提高了批量任务的调度成功率,并且通过确定并发任务的优先级以及任务调度值生成动态的目标队列,保证了高优先级应用的并发任务能够被优先处理,达到了提高业务稳定性的效果,进一步达到了提高服务可用性的效果。
可选地,在本申请实施例二提供的批量任务的执行装置中,上述的第三确定单元303包括:第一确定子单元,用于确定执行并发任务时的资源使用情况;第一配置子单元,用于依据历史并发任务的执行情况,为执行优先级配置第一权重系数,以及为资源使用情况配置第二权重系数,其中,第一权重系数和第二权重系数的和为1;第二确定子单元,用于依据执行优先级、第一权重系数、资源使用情况和第二权重系数确定任务调度值。
可选地,在本申请实施例二提供的批量任务的执行装置中,上述的第一确定子单元包括:第一确定模块,用于确定执行并发任务所占用的至少一个资源类型,得到资源类型集合;第二确定模块,用于确定资源类型集合中每个资源类型所占用的资源量;第三确定模块,用于依据每个资源类型所占用的资源量和集群中包含每个资源类型的资源量确定并发任务时的资源使用情况。
可选地,在本申请实施例二提供的批量任务的执行装置中,上述的排序单元304包括:第一排序子单元,用于按照任务调度值对并发任务进行排序,得到第一队列;第三确定子单元,用于依据第一队列和集群当前的空闲资源量确定待执行的并发任务,得到目标并发任务;第二排序子单元,用于依据每个目标并发任务的执行优先级对目标并发任务进行排序,得到目标队列。
可选地,在本申请实施例二提供的批量任务的执行装置中,上述的第三确定子单元包括:第四确定模块,用于确定第一队列中每个并发任务所需要占用的资源量,得到第一队列中每个并发任务的目标资源量;第五确定模块,用于依据集群当前的空闲资源量和第一队列中每个并发任务的目标资源量确定目标并发任务。
可选地,在本申请实施例二提供的批量任务的执行装置中,上述的第二排序子单元包括:第一排序模块,用于依据执行优先级对目标并发任务进行排序,得到第三队列;第二排序模块,用于依据目标并发任务的任务创建时刻对第三队列中执行优先级相同的目标并发任务进行排序,得到第四队列;第三排序模块,用于依据目标并发任务的任务名称对第四队列中任务创建时刻相同的目标并发任务进行排序,得到目标队列。
可选地,在本申请实施例二提供的批量任务的执行装置中,上述的排序单元304还包括:第二配置子单元,用于在依据第一队列和集群当前的空闲资源量确定待执行的并发任务,得到目标并发任务之后,将第一队列中除目标并发任务之外的并发任务的任务状态设置为待处理状态。
可选地,在本申请实施例二提供的批量任务的执行装置中,上述的装置还包括:第四确定单元,用于在依据业务需求确定并发任务的优先级,得到并发任务的执行优先级之前,确定并发任务的任务状态是否为待处理状态;第一处理单元,用于在并发任务的任务状态为待处理状态的情况下,依据集群当前的空闲资源量对并发任务进行预调度,得到预调度结果;第二处理单元,用于在预调度结果为调度失败的情况下,配置并发任务的任务状态为待处理状态;第三处理单元,用于在预调度结果为调度成功的情况下,执行依据业务需求确定对并发任务进行处理的优先级,得到并发任务的执行优先级的步骤。
所述批量任务的执行装置包括处理器和存储器,上述的第一确定单元301、第二确定单元302、第三确定单元303、排序单元304和执行单元305等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高服务可用性。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例三提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现批量任务的执行方法。
本发明实施例四提供了一种处理器,处理器用于运行程序,其中,程序运行时执行批量任务的执行方法。
如图4所示,本发明实施例五提供了一种电子设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:确定集群中待执行的批量任务和执行批量任务的至少一个容器,得到并发任务;依据业务需求确定并发任务的优先级,得到并发任务的执行优先级;依据并发任务的执行优先级确定并发任务的任务调度值;依据并发任务的执行优先级和并发任务的任务调度值对并发任务进行排序,生成目标队列;执行目标队列中的并发任务,得到并发任务的执行结果。
处理器执行程序时还实现以下步骤:依据并发任务的执行优先级确定并发任务的任务调度值包括:确定执行并发任务时的资源使用情况;依据历史并发任务的执行情况,为执行优先级配置第一权重系数,以及为资源使用情况配置第二权重系数,其中,第一权重系数和第二权重系数的和为1;依据执行优先级、第一权重系数、资源使用情况和第二权重系数确定任务调度值。
处理器执行程序时还实现以下步骤:确定执行并发任务时的资源使用情况包括:确定执行并发任务所占用的至少一个资源类型,得到资源类型集合;确定资源类型集合中每个资源类型所占用的资源量;依据每个资源类型所占用的资源量和集群中包含每个资源类型的资源量确定并发任务时的资源使用情况。
处理器执行程序时还实现以下步骤:依据并发任务的执行优先级和并发任务的任务调度值对并发任务进行排序,生成目标队列包括:按照任务调度值对并发任务进行排序,得到第一队列;依据第一队列和集群当前的空闲资源量确定待执行的并发任务,得到目标并发任务;依据每个目标并发任务的执行优先级对目标并发任务进行排序,得到目标队列。
处理器执行程序时还实现以下步骤:依据第一队列和集群当前的空闲资源量确定待执行的并发任务,得到目标并发任务包括:确定第一队列中每个并发任务所需要占用的资源量,得到第一队列中每个并发任务的目标资源量;依据集群当前的空闲资源量和第一队列中每个并发任务的目标资源量确定目标并发任务。
处理器执行程序时还实现以下步骤:依据每个目标并发任务的执行优先级对目标并发任务进行排序,得到目标队列包括:依据执行优先级对目标并发任务进行排序,得到第三队列;依据目标并发任务的任务创建时刻对第三队列中执行优先级相同的目标并发任务进行排序,得到第四队列;依据目标并发任务的任务名称对第四队列中任务创建时刻相同的目标并发任务进行排序,得到目标队列。
处理器执行程序时还实现以下步骤:在依据第一队列和集群当前的空闲资源量确定待执行的并发任务,得到目标并发任务之后,上述的方法还包括:将第一队列中除目标并发任务之外的并发任务的任务状态设置为待处理状态。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:确定集群中待执行的批量任务和执行批量任务的至少一个容器,得到并发任务;依据业务需求确定并发任务的优先级,得到并发任务的执行优先级;依据并发任务的执行优先级确定并发任务的任务调度值;依据并发任务的执行优先级和并发任务的任务调度值对并发任务进行排序,生成目标队列;执行目标队列中的并发任务,得到并发任务的执行结果。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:依据并发任务的执行优先级确定并发任务的任务调度值包括:确定执行并发任务时的资源使用情况;依据历史并发任务的执行情况,为执行优先级配置第一权重系数,以及为资源使用情况配置第二权重系数,其中,第一权重系数和第二权重系数的和为1;依据执行优先级、第一权重系数、资源使用情况和第二权重系数确定任务调度值。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:确定执行并发任务时的资源使用情况包括:确定执行并发任务所占用的至少一个资源类型,得到资源类型集合;确定资源类型集合中每个资源类型所占用的资源量;依据每个资源类型所占用的资源量和集群中包含每个资源类型的资源量确定并发任务时的资源使用情况。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:依据并发任务的执行优先级和并发任务的任务调度值对并发任务进行排序,生成目标队列包括:按照任务调度值对并发任务进行排序,得到第一队列;依据第一队列和集群当前的空闲资源量确定待执行的并发任务,得到目标并发任务;依据每个目标并发任务的执行优先级对目标并发任务进行排序,得到目标队列。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:依据第一队列和集群当前的空闲资源量确定待执行的并发任务,得到目标并发任务包括:确定第一队列中每个并发任务所需要占用的资源量,得到第一队列中每个并发任务的目标资源量;依据集群当前的空闲资源量和第一队列中每个并发任务的目标资源量确定目标并发任务。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:依据每个目标并发任务的执行优先级对目标并发任务进行排序,得到目标队列包括:依据执行优先级对目标并发任务进行排序,得到第三队列;依据目标并发任务的任务创建时刻对第三队列中执行优先级相同的目标并发任务进行排序,得到第四队列;依据目标并发任务的任务名称对第四队列中任务创建时刻相同的目标并发任务进行排序,得到目标队列。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:在依据第一队列和集群当前的空闲资源量确定待执行的并发任务,得到目标并发任务之后,上述的方法还包括:将第一队列中除目标并发任务之外的并发任务的任务状态设置为待处理状态。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:在依据业务需求确定并发任务的优先级,得到并发任务的执行优先级之前,上述的方法还包括:确定并发任务的任务状态是否为待处理状态;在并发任务的任务状态为待处理状态的情况下,依据集群当前的空闲资源量对并发任务进行预调度,得到预调度结果;在预调度结果为调度失败的情况下,配置并发任务的任务状态为待处理状态;在预调度结果为调度成功的情况下,执行依据业务需求确定对并发任务进行处理的优先级,得到并发任务的执行优先级的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种批量任务的执行方法,其特征在于,包括:
确定集群中待执行的批量任务和执行所述批量任务的至少一个容器,得到并发任务;
依据业务需求确定所述并发任务的优先级,得到所述并发任务的执行优先级;
依据所述并发任务的执行优先级确定所述并发任务的任务调度值;
依据所述并发任务的执行优先级和所述并发任务的任务调度值对所述并发任务进行排序,生成目标队列;
执行所述目标队列中的所述并发任务,得到所述并发任务的执行结果。
2.根据权利要求1所述的方法,其特征在于,依据所述并发任务的执行优先级确定所述并发任务的任务调度值包括:
确定执行所述并发任务时的资源使用情况;
依据历史并发任务的执行情况,为所述执行优先级配置第一权重系数,以及为所述资源使用情况配置第二权重系数,其中,所述第一权重系数和所述第二权重系数的和为1;
依据所述执行优先级、所述第一权重系数、所述资源使用情况和所述第二权重系数确定所述任务调度值。
3.根据权利要求2所述的方法,其特征在于,确定执行所述并发任务时的资源使用情况包括:
确定执行所述并发任务所占用的至少一个资源类型,得到资源类型集合;
确定所述资源类型集合中每个资源类型所占用的资源量;
依据每个资源类型所占用的资源量和所述集群中包含每个资源类型的资源量确定所述并发任务时的资源使用情况。
4.根据权利要求1所述的方法,其特征在于,依据所述并发任务的执行优先级和所述并发任务的任务调度值对所述并发任务进行排序,生成目标队列包括:
按照所述任务调度值对所述并发任务进行排序,得到第一队列;
依据所述第一队列和所述集群当前的空闲资源量确定待执行的并发任务,得到目标并发任务;
依据每个目标并发任务的执行优先级对所述目标并发任务进行排序,得到所述目标队列。
5.根据权利要求4所述的方法,其特征在于,依据所述第一队列和所述集群当前的空闲资源量确定待执行的并发任务,得到目标并发任务包括:
确定所述第一队列中每个并发任务所需要占用的资源量,得到所述第一队列中每个并发任务的目标资源量;
依据所述集群当前的空闲资源量和所述第一队列中每个并发任务的目标资源量确定所述目标并发任务。
6.根据权利要求4所述的方法,其特征在于,依据每个目标并发任务的执行优先级对所述目标并发任务进行排序,得到所述目标队列包括:
依据所述执行优先级对所述目标并发任务进行排序,得到第三队列;
依据所述目标并发任务的任务创建时刻对所述第三队列中所述执行优先级相同的所述目标并发任务进行排序,得到第四队列;
依据所述目标并发任务的任务名称对所述第四队列中所述任务创建时刻相同的所述目标并发任务进行排序,得到所述目标队列。
7.根据权利要求4所述的方法,其特征在于,在依据所述第一队列和所述集群当前的空闲资源量确定待执行的并发任务,得到目标并发任务之后,所述方法还包括:
将所述第一队列中除所述目标并发任务之外的并发任务的任务状态设置为待处理状态。
8.根据权利要求1所述的方法,其特征在于,在依据业务需求确定所述并发任务的优先级,得到所述并发任务的执行优先级之前,所述方法还包括:
确定所述并发任务的任务状态是否为待处理状态;
在所述并发任务的任务状态为所述待处理状态的情况下,依据所述集群当前的空闲资源量对所述并发任务进行预调度,得到预调度结果;
在所述预调度结果为调度失败的情况下,配置所述并发任务的任务状态为所述待处理状态;
在所述预调度结果为调度成功的情况下,执行依据所述业务需求确定对所述并发任务进行处理的优先级,得到所述并发任务的执行优先级的步骤。
9.一种批量任务的执行装置,其特征在于,包括:
第一确定单元,用于确定集群中待执行的批量任务和执行所述批量任务的至少一个容器,得到并发任务;
第二确定单元,用于依据业务需求确定所述并发任务的优先级,得到所述并发任务的执行优先级;
第三确定单元,用于依据所述并发任务的执行优先级确定所述并发任务的任务调度值;
排序单元,用于依据所述并发任务的执行优先级和所述并发任务的任务调度值对所述并发任务进行排序,生成目标队列;
执行单元,用于执行所述目标队列中的所述并发任务,得到所述并发任务的执行结果。
10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至8中任意一项所述的批量任务的执行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311477606.XA CN117519930A (zh) | 2023-11-07 | 2023-11-07 | 批量任务的执行方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311477606.XA CN117519930A (zh) | 2023-11-07 | 2023-11-07 | 批量任务的执行方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117519930A true CN117519930A (zh) | 2024-02-06 |
Family
ID=89743205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311477606.XA Pending CN117519930A (zh) | 2023-11-07 | 2023-11-07 | 批量任务的执行方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117519930A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117909055A (zh) * | 2024-03-18 | 2024-04-19 | 北京壁仞科技开发有限公司 | 处理器的前端电路和抓包控制方法 |
-
2023
- 2023-11-07 CN CN202311477606.XA patent/CN117519930A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117909055A (zh) * | 2024-03-18 | 2024-04-19 | 北京壁仞科技开发有限公司 | 处理器的前端电路和抓包控制方法 |
CN117909055B (zh) * | 2024-03-18 | 2024-06-11 | 北京壁仞科技开发有限公司 | 处理器的前端电路和抓包控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110837410B (zh) | 任务调度方法、装置、电子设备及计算机可读存储介质 | |
CN107291545B (zh) | 计算集群中多用户的任务调度方法及设备 | |
CN108345501B (zh) | 一种分布式资源调度方法和系统 | |
CN111768006A (zh) | 一种人工智能模型的训练方法、装置、设备及存储介质 | |
CN111400022A (zh) | 一种资源调度方法、装置及电子设备 | |
CN111782355B (zh) | 一种基于混合负载的云计算任务调度方法及系统 | |
CN111352736A (zh) | 大数据资源的调度方法、装置、服务器及存储介质 | |
EP4242843A1 (en) | Graphics card memory management method and apparatus, device, and system | |
CN109857535B (zh) | 面向Spark JDBC的任务优先级控制的实现方法及装置 | |
CN110362391B (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN117519930A (zh) | 批量任务的执行方法、装置及电子设备 | |
CN115543577B (zh) | 基于协变量的Kubernetes资源调度优化方法、存储介质及设备 | |
CN114265679A (zh) | 数据处理方法、装置和服务器 | |
CN106775975B (zh) | 进程调度方法及装置 | |
CN112925616A (zh) | 任务分配方法、装置、存储介质及电子设备 | |
CN114579284A (zh) | 任务调度方法及装置 | |
CN117234691A (zh) | 任务调度方法及装置 | |
CN112817722A (zh) | 一种基于优先级的分时调度方法、终端及存储介质 | |
CN116820729A (zh) | 离线任务调度方法、装置及电子设备 | |
CN116010051A (zh) | 一种联邦学习多任务调度方法及装置 | |
CN110008002B (zh) | 基于平稳分布概率的作业调度方法、装置、终端和介质 | |
CN112685158B (zh) | 一种任务调度方法、装置、电子设备及存储介质 | |
CN114489970A (zh) | Kubernetes中利用Coscheduling插件实现队列排序的方法及系统 | |
Massa et al. | Heterogeneous quasi-partitioned scheduling | |
US20240126460A1 (en) | Enabling persistent memory for serverless applications |
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 |