CN116881003A - 资源分配方法、装置、服务设备及存储介质 - Google Patents
资源分配方法、装置、服务设备及存储介质 Download PDFInfo
- Publication number
- CN116881003A CN116881003A CN202310832159.9A CN202310832159A CN116881003A CN 116881003 A CN116881003 A CN 116881003A CN 202310832159 A CN202310832159 A CN 202310832159A CN 116881003 A CN116881003 A CN 116881003A
- Authority
- CN
- China
- Prior art keywords
- resource pool
- subtasks
- task
- resource
- subtask
- 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 47
- 238000013468 resource allocation Methods 0.000 title claims abstract description 33
- 238000012544 monitoring process Methods 0.000 claims abstract description 9
- 238000012545 processing Methods 0.000 claims description 17
- 238000012163 sequencing technique Methods 0.000 claims description 17
- 238000013461 design Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012913 prioritisation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction 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/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/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/5011—Allocation 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/5016—Allocation 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
-
- 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/5011—Allocation 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/5022—Mechanisms to release resources
-
- 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/5011—Pool
-
- 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/5017—Task decomposition
-
- 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
-
- 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/506—Constraint
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种资源分配方法、装置、服务设备及存储介质,该方法包括:根据业务线中任务的依赖关系,将任务拆分得到多个子任务。判断任务是否具有资源池限定属性。若任务具有资源池限定属性,则在数据库中添加各子任务的属性信息及优先级并将各子任务压入到资源池的内存队列。判断任务所属的资源池是否已满。若资源池已满,持续监听资源池的释放事件,若存在则删除释放事件,并判断数据库中是否包括优先级更高的子任务。若包括,则将数据库中优先级最高的子任务压入到内存队列,并分配资源。在各子任务执行结束后,在资源池生成对应的释放事件。通过配置资源池属性限制子任务的并发量,从而控制资源池的访问量,实现了任务执行效率的提高。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种资源分配方法、装置、服务设备及存储介质。
背景技术
当不同的任务运行在大数据平台上,往往这些任务会依赖于同一个资源,比如数据库、集群、服务器资源等,而这些资源并没有队列等控制任务使用资源的限制。因此,设计一种满足任务正常运行的资源分配方法至关重要。
现有技术中,通常根据特定业务的资源申请请求,从混合资源池中选择资源,并将从混合资源池中选择的资源分配给特定业务。
然而,在调度***和计算集群资源充足的情况下,任务的执行高峰会导致资源压力变大,如果任务继续增大,资源占有量变大,任务的执行效率会降低。
发明内容
本申请提供一种资源分配方法、装置、服务设备及存储介质,以解决任务执行效率低的问题。
第一方面,本申请提供一种资源分配方法,应用于服务设备,包括:
获取业务线中的任务,根据所述任务的依赖关系,将所述任务进行拆分得到多个子任务。
判断所述任务是否具有资源池限定属性。
若所述任务具有资源池限定属性,则将各子任务的属性信息添加至数据库中并获取网页端上用户输入的各子任务的优先级;将各子任务压入到资源池的内存队列。
判断所述任务所属的资源池是否已满,其中所述任务所属的资源池是根据网页端上用户的配置创建的,所述资源池的总量对应所述子任务的并发量。
若所述资源池未满,为所述各子任务分配资源。
若所述资源池已满,则监听所述资源池是否存在释放事件;若存在释放事件,则删除所述释放事件,并判断所述数据库中是否包括比内存队列中所有的子任务的优先级更高的子任务。
若包括所述比内存队列中所有的子任务的优先级更高的子任务,则将所述数据库中优先级最高的子任务压入到所述内存队列,并为所述数据库中优先级最高的子任务分配资源。
若不包括所述比内存队列中所有的子任务的优先级更高的子任务,则为所述内存队列中优先级最高的子任务分配资源。
在所述各子任务执行结束后,在所述资源池生成对应的释放事件。
在一种可能的设计中,所述资源池限定属性包括资源池标识;相应地,所述判断所述任务是否具有资源池限定属性,包括:判断所述任务是否标记了所述资源池标识。若标记了所述资源池标识,则确定所述任务具有资源池限定属性。若没有标记所述资源池标识,则确定所述任务不具有资源池限定属性。
在一种可能的设计中,所述将各子任务的属性信息添加至数据库中并获取网页端上用户输入的各子任务的优先级,包括:在所述数据库的资源使用表中添加一条资源使用记录,其中所述资源使用表中每一条资源使用记录包含所述各子任务的属性信息以及所述网页端上用户输入的各子任务的优先级,其中所述各子任务的属性信息至少包括:子任务的标识。相应地,所述将各子任务压入到资源池的内存队列之后,还包括:在所述内存队列中根据所述各子任务的优先级进行排序:根据所述各子任务的优先级对所述内存队列中的各子任务进行排序,其中子任务的优先级高的排序在前;在与任一子任务的优先级相同的情况下,根据所述各子任务的标识的大小进行排序,其中子任务的标识小的排序在前。相应地,所述若不包括所述比内存队列中所有的子任务的优先级更高的子任务,则为所述内存队列中优先级最高的子任务分配资源,包括:若不包括所述比内存队列中所有的子任务的优先级更高的子任务,则获取所述内存队列中排序后的各子任务中首个子任务为优先级最高的子任务,并为所述优先级最高的子任务分配资源。
在一种可能的设计中,所述任务所属的资源池的信息包括资源池的总量和资源池的已用量。相应地,所述判断所述任务所属的资源池是否已满,包括
获取所述任务所属的资源池的所述总量和所述已用量。若所述已用量小于所述总量,则确定所述任务所属的资源池未满;若所述已用量不小于所述总量,则确定所述任务所属的资源池已满。
在一种可能的设计中,所述监听所述资源池是否存在释放事件;若存在释放事件,则删除所述释放事件,并判断所述数据库中是否包括比内存队列中所有的子任务的优先级更高的子任务,包括:启动服务配置以监听是否存在释放事件。若监听到存在所述释放事件,则删除所述内存队列中优先级最高的子任务。判断所述数据库的资源使用表中的子任务的优先级是否高于所述内存队列中所有的子任务的优先级,其中所述资源使用表中的子任务的优先级是根据网页端上用户的输入而确定的。若所述数据库的资源使用表中存在高于所述内存队列中所有的子任务的优先级的子任务,则确定包括所述比内存队列中所有子任务优先级更高的子任务;若所述数据库的资源使用表中不存在高于所述内存队列中所有的子任务的优先级的子任务,则确定不包括所述比内存队列中所有子任务的优先级更高的子任务。
第二方面,本申请提供一种资源分配装置,应用于服务设备,包括:
任务拆分模块,用于获取业务线中的任务,根据所述任务的依赖关系,将所述任务进行拆分得到多个子任务。
资源限定判断模块,用于判断所述任务是否具有资源池限定属性。
内存队列处理模块,用于若所述任务具有资源池限定属性,则将各子任务的属性信息添加至数据库中并获取网页端上用户输入的各子任务的优先级;将各子任务压入到资源池的内存队列。
资源容量判断模块,判断所述任务所属的资源池是否已满,其中所述任务所属的资源池是根据网页端上用户的配置创建的,所述资源池的总量对应所述子任务的并发量。
资源分配模块,用于若所述资源池未满,为所述各子任务分配资源。
释放事件监听模块,用于若所述资源池已满,则监听所述资源池是否存在释放事件;若存在释放事件,则删除所述释放事件,并判断所述数据库中是否包括比内存队列中所有子任务的优先级更高的子任务。
优先任务处理模块,用于若包括所述比内存队列中所有的子任务的优先级更高的子任务,则将所述数据库中优先级最高的子任务压入到所述内存队列,并为所述数据库中优先级最高的子任务分配资源;若不包括所述比内存队列中所有的子任务的优先级更高的子任务,则为所述内存队列中优先级最高的子任务分配资源。
资源释放模块,用于在所述各子任务执行结束后,在所述资源池生成对应的释放事件。
第三方面,本申请提供一种服务设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的资源分配方法。
第四方面,本申请提供一种计算机存储介质,所述计算机存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的资源分配方法。
本申请提供的资源分配方法、装置、服务设备及存储介质,通过配置资源池总量来限制子任务的并发量,从而控制资源池的访问量,在任务的执行高峰实现了任务执行效率的提高。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的资源分配方法的应用场景示意图;
图2为本申请实施例提供的资源分配方法流程示意图一;
图3为本申请实施例提供的资源分配装置的结构示意图;
图4为本申请实施例提供的服务设备的硬件结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
当不同的任务运行在大数据平台上时,往往这些任务会依赖于同一个资源,比如数据库、集群和服务器资源等,而这些资源并没有队列等控制任务使用资源的限制,因此需要设计一种满足任务正常运行的资源分配方法。现有技术中,通常根据特定业务的资源申请请求,从混合资源池中选择资源,并将从混合资源池中选择的资源分配给特定业务。然而,在调度***和计算集群资源充足的情况下,任务的执行高峰会导致资源压力变大,如果任务继续增大,资源占有量变大,任务的执行效率会降低。
为了解决上述技术问题,本申请实施例提出以下技术思路:考虑到每条业务线中都存在多个子任务,为了在任务的执行高峰保证任务的执行效率,综合考虑每条业务线中所有任务的资源需求量,根据资源需求量配置资源池的总量,并将资源池分发给对应的业务线。通过资源池的总量控制子任务的并发量,从而控制资源池的访问量,以提高任务的执行效率。下面采用详细的实施例进行详细说明。
图1是本申请实施例提供的资源分配方法的应用场景示意图。如图1所示,本实施例提供的***包括:网页端101和服务设备102。
其中,服务设备102,包括资源池103和数据库104。用户通过网页端101创建资源池103以及配置资源池103,以及向数据库104中输入各子任务的属性信息。数据库104用于存储各子任务的属性信息以及资源池103的使用信息。资源池103是云计算数据中心所涉及的各种硬件和软件的集合,包括但不限于存储资源、服务器资源和数据库资源。
图2为本申请实施例提供的资源分配方法流程示意图一,本实施例的执行主体可以为图1所示实施例中的服务设备,本实施例此处不做特别限制。
如图2所示,该方法包括:
S201:获取业务线中的任务,根据任务的依赖关系,将任务进行拆分得到多个子任务。
其中,业务线为大数据的计算、分析和处理过程。每条业务线一般由很多独立的进程完成,由每个进程完成特定的数据处理逻辑。这里的进程即为子任务。在实际处理过程中,数据和数据之间存在着先后的顺序依赖关系。
示例性地,要处理数据A,首先要完成数据B的处理,因为数据A依赖于数据B的结果。由于数据之间存在关联和依赖关系,对应的子任务之间也有对应的关联和依赖。
具体地,获取业务线中任务的执行规则信息以及各数据之间的依赖关系,根据各数据之间的依赖关系,将业务线中的任务拆分为不具有依赖关系的多个子任务。
S202:判断任务是否具有资源池限定属性。
其中,资源池限定属性包括资源池标识。
具体地,步骤S202包括Sa~Sc:
Sa:判断任务是否标记了资源池标识。
Sb:若标记了资源池标识,则确定任务具有资源池限定属性。
Sc:若没有标记资源池标识,则确定任务不具有资源池限定属性。
具体地,判断业务线中任务是否标记了特定的资源池标识,如果标记了特定的资源池标识,则确定该任务只能使用特定的资源池,不能直接分配资源。如果没有标记特定的资源池标识,则确定可以给该任务直接分配资源。
S203:若任务具有资源池限定属性,则将各子任务的属性信息添加至数据库中并获取网页端上用户输入的各子任务的优先级;将各子任务压入到资源池的内存队列。
其中,各子任务的属性信息包括各子任务的标识。
具体地,如果任务具有资源限定属性,则在数据库的资源使用表中添加各子任务的属性信息,包括各任务的标识和各子任务的优先级,并将各子任务压入到资源池的内存队列中等待分配资源。
S204:判断任务所属的资源池是否已满,其中任务所属的资源池是根据网页端上用户的配置创建的,资源池的总量对应子任务的并发量。
其中,任务所属的资源池的信息包括资源池的总量和资源池的已用量。
示例性地,若业务线的任务B的资源需求量为10,则为业务线的任务B分配资源池的总量为10的资源池,若当前数据库的资源池表中不存在资源池总量为10的资源池,则新增一条资源池的总量为10的资源池,此时资源池对应的子任务并发量为10。
具体地,S204包括Sf~Sh:
Sf:获取任务所属的资源池的总量和已用量。
Sg:若已用量小于总量,则确定任务所属的资源池未满。
Sh:若已用量不小于总量,则确定任务所属的资源池已满。
S205:若资源池未满,为各子任务分配资源。
具体地,若资源池的已用量小于资源池的总量,为了保证操作的原子性,通过SQL语言:
update TableA set已用量=C+1where资源池的标识=ID and已用量=C
其中,TableA为资源池表的名称,C为当前该资源池的已用量,ID为该资源池的标识。
修改数据库中的资源池表中的该资源池的已用量后,为各子任务分配资源。
S206:若资源池已满,则监听资源池是否存在释放事件;若存在释放事件,则删除释放事件,并判断数据库中是否包括比内存队列中所有的子任务的优先级更高的子任务。
具体地,S206包括Si~Sm:
Si:启动服务配置以监听是否存在释放事件。
Sj:若监听到存在释放事件,则删除内存队列中优先级最高的子任务。
具体地,若监听到释放事件,则确定此时资源池的内存队列中存在使用完毕资源后释放资源的子任务,删除资源池的内存队列中优先级最高的子任务。
Sk:判断数据库的资源使用表中的子任务的优先级是否高于内存队列中所有子任务的优先级,其中资源使用表中的子任务的优先级是根据网页端上用户的输入而确定的。
具体地,删除资源池的内存队列中优先级最高的子任务后,检查数据库的资源使用表中是否存在比内存队列中所有子任务的优先级更高的子任务。
其中,若数据库的资源使用表中的子任务需要强制启动,用户可以通过网页端修改该子任务的优先级。
Sl:若数据库的资源使用表中存在高于内存队列中所有的子任务的优先级的子任务,则确定包括比内存队列中所有子任务优先级更高的子任务。
Sm:若数据库的资源使用表中不存在高于内存队列中所有的子任务的优先级的子任务,则确定不包括比内存队列中所有子任务的优先级更高的子任务。
S207:若包括比内存队列中所有的子任务的优先级更高的子任务,则将数据库中优先级最高的子任务压入到内存队列,并为数据库中优先级最高的子任务分配资源。
S208:若不包括比内存队列中所有的子任务的优先级更高的子任务,则为内存队列中优先级最高的子任务分配资源。
S209:在各子任务执行结束后,在资源池生成对应的释放事件。
具体地,在各子任务执行结束后,生成释放事件,同时,修改数据库的资源使用表,使该资源池的已用量减1。
综上可知,本实施例提供的资源分配方法,通过配置资源池总量来控制子任务的并发量,从而控制资源池的访问量,以提高任务执行高峰时的执行效率。
在本申请的一个实施例中,在上述实施例的基础上,步骤S203中将各子任务的属性信息添加至数据库中并获取网页端上用户输入的各子任务的优先级,具体包括:
在数据库的资源使用表中添加一条资源使用记录,其中资源使用表中每一条资源使用记录包含各子任务的属性信息以及网页端上用户输入的各子任务的优先级,其中各子任务的属性信息至少包括:子任务的标识。其中,资源使用表中每一条资源使用记录包含的字段有标记使用的资源池的标识、子任务的标识和子任务的优先级。标记使用的资源池的标识表示该子任务使用的资源池,子任务的标识根据在数据库的资源使用表中添加次序依次排序。子任务的优先级可以根据任务的需求进行动态调整。
相应地,在步骤S203将各子任务压入到资源池的内存队列之后,还包括:
在内存队列中根据各子任务的优先级进行排序:根据各子任务的优先级对内存队列中的各子任务进行排序,其中子任务的优先级高的排序在前;在与任一子任务的优先级相同的情况下,根据各子任务的标识的大小进行排序,其中子任务的标识小的排序在前。
其中,内存队列为优先级队列,首先根据数据库的资源使用表中的子任务的优先级进行排序,子任务的优先级高的排序在前,当出现两个不同的子任务的优先级相同,则根据子任务的标识进行排序,子任务的标识小的排序在前。
示例性地,未分配资源的子任务A需要强制启动,但根据优先级,子任务A不具备分配资源的条件,此时可以根据用户重新输入的子任务A的优先级优先分配资源。
相应地,步骤S208中若不包括比内存队列中所有的子任务的优先级更高的子任务,则为内存队列中优先级最高的子任务分配资源,具体包括:
若不包括比内存队列中所有的子任务的优先级更高的子任务,则获取内存队列中排序后的各子任务中首个子任务为优先级最高的子任务,并为优先级最高的子任务分配资源。
综上可知,通过为资源池的内存队列定义优先级排序方法,能够在为内存队列中的子任务分配资源时快速定位到优先级最高的子任务,以实现更高的处理效率。
图3为本申请实施例提供的资源分配装置的结构示意图。如图3所示,该资源分配装置,应用于服务设备,包括:任务拆分模块301、资源限定判断模块302、内存队列处理模块303、资源容量判断模块304、资源分配模块305、释放事件监听模块306、优先任务处理模块307、以及资源释放模块308。
任务拆分模块301,用于获取业务线中的任务,根据任务的依赖关系,将任务进行拆分得到多个子任务。
资源限定判断模块302,用于判断任务是否具有资源池限定属性。
内存队列处理模块303,用于若任务具有资源池限定属性,则将各子任务的属性信息添加至数据库中并获取网页端上用户输入的各子任务的优先级;将各子任务压入到资源池的内存队列。
资源容量判断模块304,判断任务所属的资源池是否已满,其中任务所属的资源池是根据网页端上用户的配置创建的,资源池的总量对应子任务的并发量。
资源分配模块305,用于若资源池未满,为各子任务分配资源。
释放事件监听模块306,用于若资源池已满,则监听资源池是否存在释放事件;若存在释放事件,则删除释放事件,并判断数据库中是否包括比内存队列中所有子任务的优先级更高的子任务。
优先任务处理模块307,用于若包括比内存队列中所有的子任务的优先级更高的子任务,则将数据库中优先级最高的子任务压入到内存队列,并为数据库中优先级最高的子任务分配资源;若不包括比内存队列中所有的子任务的优先级更高的子任务,则为内存队列中优先级最高的子任务分配资源。
资源释放模块308,用于在各子任务执行结束后,在资源池生成对应的释放事件。
在一种可能的实现方式中,所述资源限定判断模块302具体用于判断任务是否标记了资源池标识,若标记了资源池标识,则确定任务具有资源池限定属性;若没有标记资源池标识,则确定任务不具有资源池限定属性。
在一种可能的实现方式中,所述内存队列处理模块303具体用于在数据库的资源使用表中添加一条资源使用记录,其中资源使用表中每一条资源使用记录包含各子任务的属性信息以及网页端上用户输入的各子任务的优先级,其中各子任务的属性信息至少包括:子任务的标识。
在一种可能的实现方式中,所述资源容量判断模块304具体用于获取任务所属的资源池的总量和已用量。若已用量小于总量,则确定任务所属的资源池未满;若已用量不小于总量,则确定任务所属的资源池已满。
在一种可能的实现方式中,所述释放事件监听模块306具体用于启动服务配置以监听是否存在释放事件。若监听到存在释放事件,则删除内存队列中优先级最高的子任务。判断数据库的资源使用表中的子任务的优先级是否高于内存队列中所有的子任务的优先级,其中资源使用表中的子任务的优先级是根据网页端上用户的输入而确定的。若数据库的资源使用表中存在高于内存队列中所有的子任务的优先级的子任务,则确定包括比内存队列中所有子任务优先级更高的子任务;若数据库的资源使用表中不存在高于内存队列中所有的子任务的优先级的子任务,则确定不包括比内存队列中所有子任务的优先级更高的子任务。
在一种可能的实现方式中,所述资源分配装置还包括优先级排序模块,所述优先级排序模块具体用于在内存队列中根据各子任务的优先级进行排序:根据各子任务的优先级对内存队列中的各子任务进行排序,其中子任务的优先级高的排序在前;在与任一子任务的优先级相同的情况下,根据各子任务的标识的大小进行排序,其中子任务的标识小的排序在前。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图4为本申请实施例提供的服务设备的硬件结构示意图。如图4所示,本实施例的服务设备包括:至少一个处理器401以及存储器402;存储器存储计算机执行指令;至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如上的资源分配方法。
可选地,存储器402既可以是独立的,也可以跟处理器401集成在一起。
当存储器402独立设置时,该服务器还包括总线403,用于连接所述存储器402和处理器401。
本申请实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上所述的资源分配方法。
本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上所述的资源分配方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(Central Processing Unit,简称CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,简称ISA)总线、外部设备互连(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种资源分配方法,其特征在于,应用于服务设备,包括:
获取业务线中的任务,根据所述任务的依赖关系,将所述任务进行拆分得到多个子任务;
判断所述任务是否具有资源池限定属性;
若所述任务具有资源池限定属性,则将各子任务的属性信息添加至数据库中并获取网页端上用户输入的各子任务的优先级;将各子任务压入到资源池的内存队列;
判断所述任务所属的资源池是否已满,其中所述任务所属的资源池是根据网页端上用户的配置创建的,所述资源池的总量对应所述子任务的并发量;
若所述资源池未满,为所述各子任务分配资源;
若所述资源池已满,则监听所述资源池是否存在释放事件;若存在释放事件,则删除所述释放事件,并判断所述数据库中是否包括比内存队列中所有的子任务的优先级更高的子任务;
若包括所述比内存队列中所有的子任务的优先级更高的子任务,则将所述数据库中优先级最高的子任务压入到所述内存队列,并为所述数据库中优先级最高的子任务分配资源;
若不包括所述比内存队列中所有的子任务的优先级更高的子任务,则为所述内存队列中优先级最高的子任务分配资源;
在所述各子任务执行结束后,在所述资源池生成对应的释放事件。
2.根据权利要求1所述的方法,其特征在于,所述资源池限定属性包括资源池标识;
相应地,所述判断所述任务是否具有资源池限定属性,包括:
判断所述任务是否标记了所述资源池标识;
若标记了所述资源池标识,则确定所述任务具有资源池限定属性;
若没有标记所述资源池标识,则确定所述任务不具有资源池限定属性。
3.根据权利要求1所述的方法,其特征在于,所述将各子任务的属性信息添加至数据库中并获取网页端上用户输入的各子任务的优先级,包括:
在所述数据库的资源使用表中添加一条资源使用记录,其中所述资源使用表中每一条资源使用记录包含所述各子任务的属性信息以及所述网页端上用户输入的各子任务的优先级,其中所述各子任务的属性信息至少包括:子任务的标识;
相应地,所述将各子任务压入到资源池的内存队列之后,还包括:
在所述内存队列中根据所述各子任务的优先级进行排序:根据所述各子任务的优先级对所述内存队列中的各子任务进行排序,其中子任务的优先级高的排序在前;在与任一子任务的优先级相同的情况下,根据所述各子任务的标识的大小进行排序,其中子任务的标识小的排序在前;
相应地,所述若不包括所述比内存队列中所有的子任务的优先级更高的子任务,则为所述内存队列中优先级最高的子任务分配资源,包括:
若不包括所述比内存队列中所有的子任务的优先级更高的子任务,则获取所述内存队列中排序后的各子任务中首个子任务为优先级最高的子任务,并为所述优先级最高的子任务分配资源。
4.根据权利要求1所述的方法,其特征在于,所述任务所属的资源池的信息包括资源池的总量和资源池的已用量;
相应地,所述判断所述任务所属的资源池是否已满,包括:
获取所述任务所属的资源池的所述总量和所述已用量;
若所述已用量小于所述总量,则确定所述任务所属的资源池未满;
若所述已用量不小于所述总量,则确定所述任务所属的资源池已满。
5.根据权利要求1所述的方法,其特征在于,所述监听所述资源池是否存在释放事件;若存在释放事件,则删除所述释放事件,并判断所述数据库中是否包括比内存队列中所有的子任务的优先级更高的子任务,包括:
启动服务配置以监听是否存在释放事件;
若监听到存在所述释放事件,则删除所述内存队列中优先级最高的子任务;
判断所述数据库的资源使用表中的子任务的优先级是否高于所述内存队列中所有的子任务的优先级,其中所述资源使用表中的子任务的优先级是根据网页端上用户的输入而确定的;
若所述数据库的资源使用表中存在高于所述内存队列中所有的子任务的优先级的子任务,则确定包括所述比内存队列中所有子任务优先级更高的子任务;
若所述数据库的资源使用表中不存在高于所述内存队列中所有的子任务的优先级的子任务,则确定不包括所述比内存队列中所有子任务的优先级更高的子任务。
6.一种资源分配装置,其特征在于,应用于服务设备,包括:
任务拆分模块,用于获取业务线中的任务,根据所述任务的依赖关系,将所述任务进行拆分得到多个子任务;
资源限定判断模块,用于判断所述任务是否具有资源池限定属性;
内存队列处理模块,用于若所述任务具有资源池限定属性,则将各子任务的属性信息添加至数据库中并获取网页端上用户输入的各子任务的优先级;将各子任务压入到资源池的内存队列;
资源容量判断模块,判断所述任务所属的资源池是否已满,其中所述任务所属的资源池是根据网页端上用户的配置创建的,所述资源池的总量对应所述子任务的并发量;
资源分配模块,用于若所述资源池未满,为所述各子任务分配资源;
释放事件监听模块,用于若所述资源池已满,则监听所述资源池是否存在释放事件;若存在释放事件,则删除所述释放事件,并判断所述数据库中是否包括比内存队列中所有子任务的优先级更高的子任务;
优先任务处理模块,用于若包括所述比内存队列中所有的子任务的优先级更高的子任务,则将所述数据库中优先级最高的子任务压入到所述内存队列,并为所述数据库中优先级最高的子任务分配资源;若不包括所述比内存队列中所有的子任务的优先级更高的子任务,则为所述内存队列中优先级最高的子任务分配资源;
资源释放模块,用于在所述各子任务执行结束后,在所述资源池生成对应的释放事件。
7.根据权利要求6所述的装置,其特征在于,
所述资源限定判断模块,具体用于:判断所述任务是否标记了所述资源池标识,若标记了所述资源池标识,则确定所述任务具有资源池限定属性;若没有标记所述资源池标识,则确定所述任务不具有资源池限定属性。
8.根据权利要求6所述的装置,其特征在于,
所述资源分配模块,具体用于获取所述任务所属的资源池的总量和已用量;若所述已用量小于所述总量,则确定所述任务所属的资源池未满;若所述已用量不小于所述总量,则确定所述任务所属的资源池已满。
9.一种服务设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至5任一项所述的资源分配方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至5任一项所述的资源分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310832159.9A CN116881003A (zh) | 2023-07-06 | 2023-07-06 | 资源分配方法、装置、服务设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310832159.9A CN116881003A (zh) | 2023-07-06 | 2023-07-06 | 资源分配方法、装置、服务设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116881003A true CN116881003A (zh) | 2023-10-13 |
Family
ID=88257989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310832159.9A Pending CN116881003A (zh) | 2023-07-06 | 2023-07-06 | 资源分配方法、装置、服务设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116881003A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117971499A (zh) * | 2024-03-28 | 2024-05-03 | 北京中电普华信息技术有限公司 | 资源配置方法、装置、电子设备和存储介质 |
-
2023
- 2023-07-06 CN CN202310832159.9A patent/CN116881003A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117971499A (zh) * | 2024-03-28 | 2024-05-03 | 北京中电普华信息技术有限公司 | 资源配置方法、装置、电子设备和存储介质 |
CN117971499B (zh) * | 2024-03-28 | 2024-06-25 | 北京中电普华信息技术有限公司 | 资源配置方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684065B (zh) | 一种资源调度方法、装置及*** | |
CN108614726B (zh) | 虚拟机创建方法及装置 | |
KR101630749B1 (ko) | 데이터센터 리소스 할당 | |
CN112015713B (zh) | 数据库任务的处理方法、装置、电子设备及可读介质 | |
CN110941481A (zh) | 资源调度方法、装置及*** | |
US20160139949A1 (en) | Virtual machine resource management system and method thereof | |
US20130139172A1 (en) | Controlling the use of computing resources in a database as a service | |
CN109324890B (zh) | 资源管理方法、装置及计算机可读存储介质 | |
CN114416352A (zh) | 算力资源分配方法、装置、电子设备及储存介质 | |
EP3208709B1 (en) | Batch processing method and device for system invocation commands | |
CN111338779B (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
CN112860387A (zh) | 分布式任务调度方法、装置、计算机设备及存储介质 | |
CN116881003A (zh) | 资源分配方法、装置、服务设备及存储介质 | |
CN112148468A (zh) | 一种资源调度方法、装置、电子设备及存储介质 | |
CN113672375B (zh) | 资源分配预测方法、装置、设备及存储介质 | |
CN113886069A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN113010265A (zh) | Pod的调度方法、调度器、存储插件及*** | |
CN111709723A (zh) | Rpa业务流程智能处理方法、装置、计算机设备和存储介质 | |
CN113485838A (zh) | 服务器分配方法及装置、电子设备和计算机可读存储介质 | |
CN109445863B (zh) | 一种基于fpga的数据处理方法、装置、设备及介质 | |
CN112073532A (zh) | 一种资源分配的方法及装置 | |
CN111399999A (zh) | 计算机资源处理方法、装置、可读存储介质和计算机设备 | |
CN115878910A (zh) | 线路查询方法、装置和存储介质 | |
CN115981808A (zh) | 调度方法、装置、计算机设备和存储介质 | |
CN112884382B (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 |