CN116185623A - 任务分配方法、装置、电子设备及存储介质 - Google Patents
任务分配方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116185623A CN116185623A CN202310128449.5A CN202310128449A CN116185623A CN 116185623 A CN116185623 A CN 116185623A CN 202310128449 A CN202310128449 A CN 202310128449A CN 116185623 A CN116185623 A CN 116185623A
- Authority
- CN
- China
- Prior art keywords
- task
- working node
- allocated
- resource
- node
- 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
Images
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/5044—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 hardware capabilities
-
- 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/505—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 load
-
- 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/5061—Partitioning or combining of resources
-
- 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)
- Hardware Redundancy (AREA)
Abstract
本申请公开了一种任务分配方法、装置、电子设备及存储介质,所述方法包括:响应于待分配任务的执行请求,获取至少一个备选工作节点;根据任务分配策略以及各个所述备选工作节点当前的状态信息,确定目标工作节点;将所述待分配任务分配给所述目标工作节点;其中,所述备选工作节点满足所述待分配任务的资源需求;所述备选工作节点当前的状态信息包括所述备选工作节点的资源配置、当前的资源占用量以及当前的资源剩余量。
Description
技术领域
本申请属于计算机技术领域,具体涉及一种任务分配方法、装置、电子设备及存储介质。
背景技术
针对计算任务的多机器分配一般是以任务数量为分配依据,在接收到任务的执行命令后,使用均衡算法(例如轮询、随机、哈希(Hash))选择执行机器,再将该任务提交到该执行机器上进行执行。这些算法的显著特征是能够均衡集群中各个节点执行的任务数量;对于执行异常的任务,则提供重试策略,重新分配执行机器进行任务执行,直至任务执行成功或者超过重试次数要求。
但基于任务数量分配任务的方式适用于对资源消耗不大的任务或者各个任务对资源的占用量相差不多的情况,即上述方式适用于节点可执行的任务数量是可以预估的情况。而计算任务的特征是资源消耗大、不同的计算任务对资源的需求差别大、计算复杂度、数据量、各个节点的资源配置也不尽相同,因此节点可执行的任务数量是不可预估的,基于任务数量进行任务的分配则会导致任务的资源需求与节点的资源配置不匹配,进而导致节点的资源利用率低以及任务执行的稳定性降低。
发明内容
本申请实施例提供一种任务分配方法、装置、电子设备及存储介质,能够解决任务的资源需求与节点的资源配置不匹配而导致节点的资源利用率低以及任务执行的稳定性降低的问题。
第一方面,本申请实施例提供了一种任务分配方法,该方法包括:响应于待分配任务的执行请求,获取至少一个备选工作节点;根据任务分配策略以及各个所述备选工作节点当前的状态信息,确定目标工作节点;将所述待分配任务分配给所述目标工作节点;其中,所述备选工作节点满足所述待分配任务的资源需求;所述备选工作节点当前的状态信息包括所述备选工作节点的资源配置、当前的资源占用量以及当前的资源剩余量。
第二方面,本申请实施例提供了一种任务分配装置,该装置包括:获取模块,用于响应于待分配任务的执行请求,获取至少一个备选工作节点;确定模块,用于根据任务分配策略以及各个所述备选工作节点当前的状态信息,确定目标工作节点;分配模块,用于将所述待分配任务分配给所述目标工作节点;其中,所述备选工作节点满足所述待分配任务的资源需求;所述备选工作节点当前的状态信息包括所述备选工作节点的资源配置、当前的资源占用量以及当前的资源剩余量。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
在本申请实施例中,通过响应于待分配任务的执行请求,获取至少一个备选工作节点;根据任务分配策略以及各个所述备选工作节点当前的状态信息,确定目标工作节点;将所述待分配任务分配给所述目标工作节点;其中,所述备选工作节点满足所述待分配任务的资源需求;所述备选工作节点当前的状态信息包括所述备选工作节点的资源配置、当前的资源占用量以及当前的资源剩余量;即根据任务分配策略从至少一个满足待分配任务资源需求的备选工作节点中选取目标工作节点,将待分配任务分配给该目标工作节点,实现根据工作节点的资源配置情况与待分配任务的资源需求情况,对待分配任务进行合理地分配,能够提高工作节点的资源利用率,解决了任务的资源需求与工作节点的资源配置不匹配而导致工作节点的资源利用率低以及待分配任务执行的稳定性降低的问题。
附图说明
图1是本申请实施例提供的一种任务分配方法的流程示意图;
图2是本申请实施例提供的另一种任务分配方法的流程示意图;
图3是本申请实施例提供的又一种任务分配方法的流程示意图;
图4是本申请实施例提供的一种任务分配装置的结构示意图;
图5是本申请实施例提供的另一种任务分配装置的结构示意图;
图6是本申请实施例提供的又一种任务分配方法的流程示意图;
图7是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的一种任务分配方法、装置、电子设备及存储介质进行详细地说明。
图1示出本申请的一个实施例提供的一种任务分配方法的流程示意图,该方法可以由电子设备执行,该电子设备可以包括:服务器和/或终端设备,其中终端设备可以例如车载终端或手机终端等。参照图1,该方法可以包括如下步骤:
步骤102:响应于待分配任务的执行请求,获取至少一个备选工作节点;
可选的,待分配任务可以包括用户手动启动的任务或者定时启动的任务。
步骤104:根据任务分配策略以及各个所述备选工作节点当前的状态信息,确定目标工作节点;
步骤106:将所述待分配任务分配给所述目标工作节点。
其中,所述备选工作节点满足所述待分配任务的资源需求;所述备选工作节点当前的状态信息包括所述备选工作节点的资源配置、当前的资源占用量以及当前的资源剩余量。
在本申请实施例中,通过获取至少一个满足待分配任务的资源需求的备选工作节点,各个备选工作节点能够为该待分配任务提供足够的资源;然后再根据任务分配策略以及各个备选工作节点当前的状态信息,从上述的各个备选工作节点中选取符合该任务分配策略的备选工作节点,将该备选工作节点确定为目标工作节点,再将待分配任务分配给该目标工作节点;实现了综合考虑待分配任务的资源需求、各个备选工作节点当前的状态以及待分配任务的资源需求与各个备选工作节点当前状态的匹配程度,以确定该待分配任务所要分配的目标工作节点,提高了工作节点的资源利用率,解决了任务的资源需求与工作节点的资源配置不匹配而导致工作节点的资源利用率低以及待分配任务执行的稳定性降低的问题。
图2示出在一种实现方式中,本申请的一个实施例提供的另一种任务分配方法的流程示意图。参见图2,该方法可以包括:
步骤202:响应于待分配任务的执行请求,获取至少一个备选工作节点;
步骤204:在预设情况下,根据各个所述备选工作节点当前的状态信息,分别确定各个所述备选工作节点的任务负载值;
其中,所述预设情况包括以下至少之一:
所述待分配任务的资源需求大于预设阈值;
各个所述备选工作节点的资源配置不同。
步骤206:将所述任务负载值最小的备选工作节点确定为目标工作节点;
步骤208:将所述待分配任务分配给所述目标工作节点。
在本申请实施例中,在获取到至少一个满足待分配任务的资源需求的备选工作节点之后,在待分配任务的资源需求大于预设阈值,和/或上述的各个备选工作节点的资源配置不同的情况下,通过各个备选工作节点当前的状态信息分别确定各个备选工作节点的任务负载值,根据如下任务分配策略确定目标工作节点:选取任务负载值最小的备选工作节点确定为目标工作节点;然后将待分配任务分配给该目标工作节点。
需要说明的是,在待分配任务的资源需求不大于预设阈值,和/或各个备选工作节点的资源配置都相同的情况下,通过各个备选工作节点当前的状态信息分别确定各个备选工作节点的并行度,即各个备选工作节点当前执行的任务数量,根据如下任务分配策略确定目标工作节点:选取任务并行度最小的备选工作节点确定为目标工作节点;然后将待分配任务分配给该目标工作节点。
本申请实施例通过综合待分配任务的资源需求以及各个备选工作节点的资源配置的情况,选择不同的任务分配策略去确定目标工作节点,再将待分配任务分配给目标工作节点,实现了合理分配任务,并且提高了工作节点的资源利用率。
在一种实现方式中,上述的步骤204可以包括:根据各个所述备选工作节点的资源配置以及当前的资源占用量,分别确定各个所述备选工作节点的任务负载值。
其中,根据备选工作节点的资源配置以及当前的资源占用量确定的任务负载值能够充分表达该备选工作节点当前的任务负载,从而能够为选取目标工作节点提供准确可靠的选取依据。
可选的,可以通过如下公式计算备选工作节点的任务负载值:
图3示出在一种实现方式中,本申请的一个实施例提供的又一种任务分配方法的流程示意图。参见图3,该方法可以包括:
步骤302:响应于待分配任务的执行请求,获取至少一个工作节点以及所述待分配任务的资源需求;
其中,资源池中包括至少一个工作节点,备选工作节点通过对资源池中的各个工作节点进行筛选而得到满足预设条件的工作节点;该预设条件可以是满足待分配任务的资源需求。
步骤304:根据所述待分配任务的资源需求以及所述工作节点当前的状态信息,确定至少一个备选工作节点;
其中,所述工作节点当前的状态信息包括所述工作节点的资源配置、当前的资源占用量以及当前的资源剩余量。
可选的,待分配任务的资源需求可以以如下方式表达:
{任务ID:id;任务名称:name;资源1需求:x1;资源2需求:x2;…资源i需求:xi},其中,id为任务的唯一标识,name为任务的名称,x1为任务对资源1的需求量,x2为任务对资源2的需求量,xi为任务对资源i的需求量。
可选的,工作节点的当前状态信息可以以如下方式表达:
[{
节点名称:工作节点的名称;
节点IP:工作节点的IP地址;
总资源1:工作节点的第1种资源总量;
可用资源1:工作节点剩余可用的第1种资源量;
总资源2:工作节点的第2种资源总量;
可用资源2:工作节点剩余可用的第2种资源量;
……
总资源i:工作节点的第i种资源总量;
可用资源i:工作节点剩余可用的第i种资源量;
并行度:工作节点当前并行任务数;
负载:工作节点当前的任务负载值;
任务列表:
[{任务ID:id1;任务名称:name1;资源1需求:x1;资源2需求:x2;……资源i需求:xi}];……;
[{任务ID:id n;任务名称:name n;资源1需求:y1;资源2需求:y2;……资源i需求:yi}];
}]
步骤306:根据任务分配策略以及各个所述备选工作节点当前的状态信息,确定目标工作节点;
步骤308:将所述待分配任务分配给所述目标工作节点;
在本实施例中,根据获取的待分配任务的资源需求以及工作节点的当前状态信息,判断工作节点当前的状态是否满足待分配任务的资源需求,若工作节点当前的状态满足待分配任务的资源需求,即该工作节点的资源配置和当前资源剩余量能够满足待分配任务所需要的资源量,则确定该工作节点可以作为该待分配任务的备选工作节点,通过对获取的各个工作节点进行上述的判断,从各个工作节点中确定出可供待分配任务选择的备选工作节点,再根据分配策略对该备选工作节点进行进一步地选择,确定目标工作节点,然后将待分配任务分配给该目标工作节点;实现了对待分配任务的资源需求以及工作节点当前的状态进行综合考虑,既避免了待分配任务因资源问题致使任务执行失败的情况,也能够更加合理地为待分配任务选取目标工作节点,提高了工作节点的资源利用率和任务执行的成功率。
在一种实现方式中,在响应于待分配任务的执行请求之后,所述方法还可以包括如下步骤:
步骤110:获取所述待分配任务的序列标识;
可选的,可以在接收到待分配任务的执行请求时对该执行请求打时间戳,根据该时间戳获取待分配任务的序列标识。
步骤120:根据所述序列标识,确定所述待分配任务的分配顺序;
其中,所述待分配任务的序列标识包括所述待分配任务的执行请求的接收时间。
可选的,上述的工作节点的当前状态信息中的任务列表还可以包括如下内容:
任务列表:
[{任务ID:id 1;任务名称:name 1;资源1需求:x1;资源2需求:x2;……资源i需求:xi;提交时间:任务提交的时间}];……;
[{任务ID:id n;任务名称:name n;资源1需求:y1;资源2需求:y2;……资源i需求:yi;提交时间:任务提交的时间}];
其中,通过序列标识确定待分配任务的分配顺序,保证待分配任务的有序性。
可选的,还可以通过对待分配任务标记任务优先级,根据待分配任务的任务优先级确定待分配任务的分配顺序,实现对优先级较高的任务优先分配,从而优先进行执行。
在一种实现方式中,上述的方法还可以包括:在所述备选工作节点为空的情况下,调整所述待分配任务的分配顺序。
对于当前待分配任务,备选工作节点却为空的情况时,说明当前的各个工作节点的状态都不能满足该待分配任务的资源需求,则调整该待分配任务的分配顺序,即当前暂不分配该待分配任务,先对其他待分配任务进行分配,直至按分配顺序再次轮到该待分配任务且存在备选工作节点时,再对该待分配任务进行分配。
在一种实现方式中,在上述的步骤106之后,该方法还可以包括:在所述目标工作节点启动所述待分配任务失败的情况下,将所述待分配任务再次进行任务分配。
其中,在目标工作节点启动待分配任务失败时,将该待分配任务重新提交到待分配的队列中,按照分配顺序,再次进行分配。
在一种实现方式中,在上述的步骤106之后,该方法还可以包括:在所述目标工作节点启动所述待分配任务成功的情况下,接收所述待分配任务的执行完成信息。
其中,在目标工作节点启动待分配任务成功时,且在该目标工作节点完成执行该待分配任务时,接收该待分配任务的执行完成信息,该执行完成信息可以包括任务执行状态、日志信息,以便于更新工作节点当前的状态信息,准确指示后续待分配任务的分配。
在一种实现方式中,在接收所述待分配任务的执行完成信息之后,该方法还可以包括:释放所述待分配任务占用所述目标工作节点的资源。
其中,在目标工作节点执行完成该待分配任务时,该项任务结束,释放该待分配任务占用目标工作节点的资源,为后续待分配任务留出资源,以使能够继续执行其他待分配任务。
需要说明的是,本申请实施例提供的任务分配方法,执行主体可以为任务分配装置,或者该任务分配装置中的用于执行任务分配方法的控制模块。本申请实施例中以任务分配装置执行任务分配方法为例,说明本申请实施例提供的任务分配装置。
图4是根据本申请实施例的任务分配装置的结构示意图。如图4所示,任务分配装置40包括:获取模块41、确定模块42以及分配模块43。
获取模块41,用于响应于待分配任务的执行请求,获取至少一个备选工作节点;确定模块42,用于根据任务分配策略以及各个所述备选工作节点当前的状态信息,确定目标工作节点;分配模块43,用于将所述待分配任务分配给所述目标工作节点;其中,所述备选工作节点满足所述待分配任务的资源需求;所述备选工作节点当前的状态信息包括所述备选工作节点的资源配置、当前的资源占用量以及当前的资源剩余量。
在一种实现方式中,确定模块42可以用于:在预设情况下,根据各个所述备选工作节点当前的状态信息,分别确定各个所述备选工作节点的任务负载值;将所述任务负载值最小的备选工作节点确定为目标工作节点;其中,所述预设情况包括以下至少之一:所述待分配任务的资源需求大于预设阈值;各个所述备选工作节点的资源配置不同。
在一种实现方式中,确定模块42可以用于:根据各个所述备选工作节点的资源配置以及当前的资源占用量,分别确定各个所述备选工作节点的任务负载值。
在一种实现方式中,获取模块41可以用于:获取至少一个工作节点以及所述待分配任务的资源需求;根据所述待分配任务的资源需求以及所述工作节点当前的状态信息,确定至少一个备选工作节点;其中,所述工作节点当前的状态信息包括所述工作节点的资源配置、当前的资源占用量以及当前的资源剩余量。
在一种实现方式中,上述装置40还可以包括顺序确定模块,用于获取所述待分配任务的序列标识;根据所述序列标识,确定所述待分配任务的分配顺序;其中,所述待分配任务的序列标识包括所述待分配任务的执行请求的接收时间。
在一种实现方式中,顺序确定模块还可以用于:在所述备选工作节点为空的情况下,调整所述待分配任务的分配顺序。
在一种实现方式中,上述装置40还可以用于:在所述目标工作节点启动所述待分配任务失败的情况下,将所述待分配任务再次进行任务分配。
在一种实现方式中,上述装置40还可以包括接收模块,用于在所述目标工作节点启动所述待分配任务成功的情况下,接收所述待分配任务的执行完成信息。
在一种实现方式中,上述装置40还可以包括释放模块,用于释放所述待分配任务占用所述目标工作节点的资源。
本申请实施例中的任务分配装置可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personaldigital assistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(NetworkAttached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的任务分配装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
具体地,本申请实施例提供了另一种任务分配装置的结构示意图,如图5所示,任务分配装置50包括管理节点51和工作节点52;其中管理节点51包括任务管理模块511、任务执行队列512、资源管理模块513、任务调度模块514;工作节点52包括工作节点管理模块521和任务执行模块522。
任务管理模块511,用于接收任务的执行请求以及将任务的执行信息封装并发送到任务执行队列512;其中,任务包括用户手动启动的任务、定时启动的任务;任务的执行信息包括提交时间、任务类型、资源需求、任务脚本等。
任务执行队列512,用于指示任务按照顺序进行执行,将提交的任务按照提交时间依次加入执行队列中;在任务失败或者资源不足时,将该任务按照任务的提交时间再次加入执行队列。
资源管理模块513,用于接收工作节点启动时注册的工作节点信息以及资源信息,并对其进行管理;以及根据任务的资源需求、工作节点的负载值选出目标工作节点。
可选的,以包括中央处理器(Central Processing Unit,CPU)和内存两种资源为例,资源管理数据结构可以为:
[{
节点名称:工作节点的名称;
节点IP:工作节点的IP地址;
总CPU:工作节点总共有的CPU核数;
可用CPU:工作节点剩余可用的CPU核数;
总内存:工作节点总共有的运行内存容量;
可用内存:工作节点剩余可用的内存容量;
并行度:工作节点当前并行任务数;
负载:工作节点当前的任务负载值;
任务列表:
[{任务ID:任务的唯一标识;任务名称:任务的名称;CPU:任务运行需要的CPU核数;内存:任务运行需要的内存容量;提交时间:任务的提交时间}]
}]
任务调度模块514,用于在资源管理模块513选出目标工作节点后,将任务的执行信息发送到工作节点52中执行,并保持与工作节点的通信,以获取任务的执行状态和日志信息。
工作节点管理模块521,用于接收管理节点51的任务调度模块514发送的任务的执行信息,并监控任务的执行状态和日志信息,上报给管理节点51的任务调度模块514。
任务执行模块522,用于执行任务。
上述的任务分配装置50能够实现如图6所示的本申请实施例提供的又一种任务分配方法的步骤,参见图6,该方法可以包括如下步骤:
步骤601:任务管理模块511接收任务的执行请求,获取任务的序列标识并提交至任务执行队列512中。
步骤602:任务调度模块514定期从任务执行队列512中获取一个任务,并将该任务的资源需求发送给资源管理模块513。
例如,测试任务2的资源需求为:{任务ID:2,任务名称:测试任务2,CPU:2,内存:4}。
步骤603:资源管理模块513根据接收到的任务的资源需求对工作节点列表进行过滤。
可选的,步骤603可以包括如下步骤:
步骤6031:从资源池中获取一个工作节点的状态信息;
步骤6032:根据工作节点的状态信息,判断该工作节点是否满足任务的资源需求,在满足的情况下,将该工作节点保留;在不满足的情况下,将该工作节点剔除;
步骤6033:在工作节点列表为空的情况下,通知任务调度模块514,指示任务调度模块514将该任务重新加入任务执行队列512中,等待分配。
例如,工作节点列表为:
[{节点名称:工作节点1;节点IP:192.168.0.1;
总CPU:2;可用CPU:2;
总内存:3;可用内存:3;
并行度:0;负载:0;
任务列表[]};
{节点名称:工作节点2;节点IP:192.168.0.2;
总CPU:4;可用CPU:2;
总内存:8;可用内存:4;
并行度:1;负载:1;
任务列表[{任务ID:1;任务名称:测试任务;CPU:2;内存:4;提
交时间:1671672706766}]};
{节点名称:工作节点3;节点IP:192.168.0.3;
总CPU:6;可用CPU:6;
总内存:16;可用内存:16;
并行度:0;负载:0;
任务列表[]}]
此时,对上述的测试任务2进行任务分配,根据测试任务2的资源需求,对该工作节点列表进行过滤,其中工作节点1可用内存为3,而测试任务2需要的内存为4,工作节点1可用资源不满足测试任务2的资源需求,将工作节点1剔除,则过滤后的工作节点列表为:
[{节点名称:工作节点2;节点IP:192.168.0.2;
总CPU:4;可用CPU:2;
总内存:8;可用内存:4;
并行度:1;负载:1;
任务列表[{任务ID:1;任务名称:测试任务;CPU:2;内存:4;提
交时间:1671672706766}]};
{节点名称:工作节点3;节点IP:192.168.0.3;
总CPU:6;可用CPU:6;
总内存:16;可用内存:16;
并行度:0;负载:0;
任务列表[]}]。
步骤604:按照任务分配策略,从工作节点列表中选择一个工作节点作为目标工作节点。
可选的,任务分配策略可以包括最小连接数策略、加权最小连接数策略等。
例如,在任务运行资源需求较少或任务资源分配相同的情况下,只需关注任务数量。按照最小连接数策略,比较工作节点的并行度,选择并行度最小的工作节点作为目标工作节点;对于上述的测试任务2,工作节点2的并行度为1,工作节点3的并行度为0,则选择工作节点3作为目标工作节点。
再例如,在任务运行资源需求较大或任务资源按需分配,做到更精细的任务分配,需要综合任务资源需求情况、工作节点资源负载情况进行任务分配的情况下,按照加权最小连接数策略,比较工作节点的并行度,选择负载值最小的节点作为目标工作节点;对于上述的测试任务2,工作节点2的负载值为1,工作节点3的负载值为0,则选择工作节点3作为目标工作节点。
此外,在上述测试任务2被分配给工作节点3之后,工作节点3当前的负载值为2/6+4/16=0.583,即工作节点3当前的负载值依然低于工作节点2的负载值1。因此,若有新任务在工作节点2与工作节点3之中做选择,工作节点3依然被选择。
此时更新后的工作节点列表为:
[{节点名称:工作节点1;节点IP:192.168.0.1;
总CPU:2;可用CPU:2;
总内存:3;可用内存:3;
并行度:0;负载:0;
任务列表[]};
{节点名称:工作节点2;节点IP:192.168.0.2;
总CPU:4;可用CPU:2;
总内存:8;可用内存:4;
并行度:1;负载:1;
任务列表[{任务ID:1;任务名称:测试任务;CPU:2;内存:4;提
交时间:1671672706766}]};
{节点名称:工作节点3;节点IP:192.168.0.3;
总CPU:6;可用CPU:4;
总内存:16;可用内存:12;
并行度:1;负载:0.583;
任务列表[{任务ID:2,任务名称:测试任务2,CPU:2,内存:4;
提交时间:1671675300557}]}]。
步骤605:任务调度模块514将任务的执行信息发送给工作节点管理模块521。
步骤606:工作节点管理模块521启动任务;判断是否启动成功,若任务启动成功,则执行步骤607;若任务启动失败,则执行步骤608。
步骤607:任务执行模块522执行任务;工作节点管理模块521监控任务的执行状态、日志信息等。
步骤608:通知任务调度模块514任务启动失败,任务调度模块514将任务重新提交到任务执行队列512中。
步骤609:在任务执行完成后,工作节点管理模块521将任务的执行状态、日志信息等发送给任务调度模块514。
步骤610:资源管理模块513释放任务执行占用的目标工作节点的资源。
此时更新后的工作节点列表为:
[{节点名称:工作节点1;节点IP:192.168.0.1;
总CPU:2;可用CPU:2;
总内存:3;可用内存:3;
并行度:0;负载:0;
任务列表[]};
{节点名称:工作节点2;节点IP:192.168.0.2;
总CPU:4;可用CPU:2;
总内存:8;可用内存:4;
并行度:1;负载:1;
任务列表[{任务ID:1;任务名称:测试任务;CPU:2;内存:4;提交时间:1671672706766}]};
{节点名称:工作节点3;节点IP:192.168.0.3;
总CPU:6;可用CPU:6;
总内存:16;可用内存:16;
并行度:0;负载:0;
任务列表[]}]。
本申请实施例提供的任务分配装置能够实现图1至图3和图6的方法实施例中实现的各个过程,为避免重复,这里不再赘述。
基于相同的技术构思,本申请实施例还提供了一种电子设备,该电子设备用于执行上述的任务分配方法,图7为实现本申请各个实施例的一种电子设备的结构示意图。电子设备可因配置或性能不同而产生比较大的差异,可以包括处理器(processor)701、通信接口(Communications Interface)702、存储器(memory)703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信。处理器701可以调用存储在存储器703上并可在处理器701上运行的计算机程序,以执行下述步骤:
响应于待分配任务的执行请求,获取至少一个备选工作节点;
根据任务分配策略以及各个所述备选工作节点当前的状态信息,确定目标工作节点;
将所述待分配任务分配给所述目标工作节点;
其中,所述备选工作节点满足所述待分配任务的资源需求;所述备选工作节点当前的状态信息包括所述备选工作节点的资源配置、当前的资源占用量以及当前的资源剩余量。
具体执行步骤可以参见上述任务分配方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括:服务器、终端或除终端之外的其他设备。
以上电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,例如,输入单元,可以包括图形处理器(Graphics Processing Unit,GPU)和麦克风,显示单元可以采用液晶显示器、有机发光二极管等形式来配置显示面板。用户输入单元包括触控面板以及其他输入设备中的至少一种。触控面板也称为触摸屏。其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
存储器可用于存储软件程序以及各种数据。存储器可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器可以包括易失性存储器或非易失性存储器,或者,存储器可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。
处理器可包括一个或多个处理单元;可选的,处理器集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器中。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述任务分配方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述任务分配方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (12)
1.一种任务分配方法,其特征在于,包括:
响应于待分配任务的执行请求,获取至少一个备选工作节点;
根据任务分配策略以及各个所述备选工作节点当前的状态信息,确定目标工作节点;
将所述待分配任务分配给所述目标工作节点;
其中,所述备选工作节点满足所述待分配任务的资源需求;所述备选工作节点当前的状态信息包括所述备选工作节点的资源配置、当前的资源占用量以及当前的资源剩余量。
2.根据权利要求1所述的方法,其特征在于,所述根据任务分配策略以及各个所述备选工作节点当前的状态信息,确定目标工作节点,包括:
在预设情况下,根据各个所述备选工作节点当前的状态信息,分别确定各个所述备选工作节点的任务负载值;
将所述任务负载值最小的备选工作节点确定为目标工作节点;
其中,所述预设情况包括以下至少之一:
所述待分配任务的资源需求大于预设阈值;
各个所述备选工作节点的资源配置不同。
3.根据权利要求2所述的方法,其特征在于,根据各个所述备选工作节点当前的状态信息,确定各个所述备选工作节点的任务负载值,包括:
根据各个所述备选工作节点的资源配置以及当前的资源占用量,分别确定各个所述备选工作节点的任务负载值。
4.根据权利要求1所述的方法,其特征在于,所述获取至少一个备选工作节点,包括:
获取至少一个工作节点以及所述待分配任务的资源需求;
根据所述待分配任务的资源需求以及所述工作节点当前的状态信息,确定至少一个备选工作节点;
其中,所述工作节点当前的状态信息包括所述工作节点的资源配置、当前的资源占用量以及当前的资源剩余量。
5.根据权利要求1所述的方法,其特征在于,在所述响应于待分配任务的执行请求之后,还包括:
获取所述待分配任务的序列标识;
根据所述序列标识,确定所述待分配任务的分配顺序;
其中,所述待分配任务的序列标识包括所述待分配任务的执行请求的接收时间。
6.根据权利要求1或5所述的方法,其特征在于,所述方法还包括:
在所述备选工作节点为空的情况下,调整所述待分配任务的分配顺序。
7.根据权利要求1所述的方法,其特征在于,在将所述待分配任务分配给所述目标工作节点之后,还包括:
在所述目标工作节点启动所述待分配任务失败的情况下,将所述待分配任务再次进行任务分配。
8.根据权利要求1所述的方法,其特征在于,在将所述待分配任务分配给所述目标工作节点之后,还包括:
在所述目标工作节点启动所述待分配任务成功的情况下,接收所述待分配任务的执行完成信息。
9.根据权利要求8所述的方法,其特征在于,在接收所述待分配任务的执行完成信息之后,还包括:
释放所述待分配任务占用所述目标工作节点的资源。
10.一种任务分配装置,其特征在于,包括:
获取模块,用于响应于待分配任务的执行请求,获取至少一个备选工作节点;
确定模块,用于根据任务分配策略以及各个所述备选工作节点当前的状态信息,确定目标工作节点;
分配模块,用于将所述待分配任务分配给所述目标工作节点;
其中,所述备选工作节点满足所述待分配任务的资源需求;所述备选工作节点当前的状态信息包括所述备选工作节点的资源配置、当前的资源占用量以及当前的资源剩余量。
11.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至9任一项所述的任务分配方法的步骤。
12.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至9任一项所述的任务分配方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310128449.5A CN116185623A (zh) | 2023-02-07 | 2023-02-07 | 任务分配方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310128449.5A CN116185623A (zh) | 2023-02-07 | 2023-02-07 | 任务分配方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116185623A true CN116185623A (zh) | 2023-05-30 |
Family
ID=86441905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310128449.5A Pending CN116185623A (zh) | 2023-02-07 | 2023-02-07 | 任务分配方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116185623A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627659A (zh) * | 2023-07-21 | 2023-08-22 | 科大讯飞股份有限公司 | 模型检查点文件保存方法、装置、设备及存储介质 |
CN117407178A (zh) * | 2023-12-14 | 2024-01-16 | 成都凯迪飞研科技有限责任公司 | 一种自适应负载分配的加速子卡管理方法及系统 |
-
2023
- 2023-02-07 CN CN202310128449.5A patent/CN116185623A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627659A (zh) * | 2023-07-21 | 2023-08-22 | 科大讯飞股份有限公司 | 模型检查点文件保存方法、装置、设备及存储介质 |
CN116627659B (zh) * | 2023-07-21 | 2023-12-01 | 科大讯飞股份有限公司 | 模型检查点文件保存方法、装置、设备及存储介质 |
CN117407178A (zh) * | 2023-12-14 | 2024-01-16 | 成都凯迪飞研科技有限责任公司 | 一种自适应负载分配的加速子卡管理方法及系统 |
CN117407178B (zh) * | 2023-12-14 | 2024-04-02 | 成都凯迪飞研科技有限责任公司 | 一种自适应负载分配的加速子卡管理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096336B (zh) | 数据监控方法、装置、设备和介质 | |
CN116185623A (zh) | 任务分配方法、装置、电子设备及存储介质 | |
EP3380937A1 (en) | Techniques for analytics-driven hybrid concurrency control in clouds | |
CN112269641B (zh) | 一种调度方法、装置、电子设备及存储介质 | |
CN111104208B (zh) | 进程调度管理方法、装置、计算机设备及存储介质 | |
EP4242843A1 (en) | Graphics card memory management method and apparatus, device, and system | |
CN106897299B (zh) | 一种数据库访问方法及装置 | |
CN106528288A (zh) | 一种资源管理方法、装置和系统 | |
CN115562877B (zh) | 分布式算力资源的编排方法、装置、设备及存储介质 | |
CN114625533A (zh) | 分布式任务调度方法、装置、电子设备及存储介质 | |
CN111338779A (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
CN112783659A (zh) | 一种资源分配方法、装置、计算机设备及存储介质 | |
CN116560860B (zh) | 一种基于机器学习的资源优先级的实时优化调整方法 | |
CN112860383A (zh) | 集群资源调度方法、装置、设备及存储介质 | |
CN110659131A (zh) | 任务处理方法、电子装置、计算机设备及存储介质 | |
CN113032102A (zh) | 资源重调度方法、装置、设备和介质 | |
CN111709723A (zh) | Rpa业务流程智能处理方法、装置、计算机设备和存储介质 | |
CN112073532B (zh) | 一种资源分配的方法及装置 | |
CN114968567A (zh) | 用于分配计算节点的计算资源的方法、装置和介质 | |
CN111813541B (zh) | 一种任务调度方法、装置、介质和设备 | |
CN107634978B (zh) | 一种资源调度方法及装置 | |
CN109189581B (zh) | 一种作业调度方法和装置 | |
CN111813564B (zh) | 集群资源管理方法、装置及容器集群管理系统 | |
CN113055199B (zh) | 网关访问方法、装置及网关设备 | |
CN107294765B (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 |