CN112988361B - 集群任务分配方法、装置和计算机可读介质 - Google Patents
集群任务分配方法、装置和计算机可读介质 Download PDFInfo
- Publication number
- CN112988361B CN112988361B CN202110519940.1A CN202110519940A CN112988361B CN 112988361 B CN112988361 B CN 112988361B CN 202110519940 A CN202110519940 A CN 202110519940A CN 112988361 B CN112988361 B CN 112988361B
- Authority
- CN
- China
- Prior art keywords
- task
- computing server
- target
- computing
- server
- 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.)
- Active
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/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/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/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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种集群任务分配方法、装置和计算机可读介质,该方法包括:调度服务器向每一个计算服务器发送状态请求报文,并接收每一个计算服务器反馈的运行数据;根据所述运行数据确定每一个计算服务器中等待处理时长达到第一设定阈值的目标任务;根据所述运行数据确定每一个计算服务器当前的负载状况;根据每一个计算服务器当前的负载状况,将确定的各目标任务重新进行分配。本方案能够保证计算服务器能够及时完成任务,给用户进行结果响应。
Description
技术领域
本发明涉及服务器集群技术领域,尤其涉及一种集群任务分配方法、装置和计算机可读介质。
背景技术
随着计算机及互联网技术的不断发展,业务流量规模及业务逻辑的复杂度也随之发展,为了适应越来越大的业务流量及越加复杂多样的业务逻辑,往往需要利用集群来实现性能扩展以及避免单点故障。
在利用集群针对业务逻辑进行任务计算时,需要考虑集群中各计算服务器的负载均衡,然后通过集群中的调度服务器将任务调度给各计算服务器。但是,由于各计算服务器的性能不同,在将任务调度给各计算服务器之后,无法保证计算服务器能否及时完成任务,给用户进行结果响应。
鉴于此,针对以上不足,需要提供一种集群任务分配方法、装置和计算机可读介质,以保证及时完成任务给用户进行结果响应。
发明内容
本发明要解决的技术问题在于如何保证计算服务器能够及时完成任务,给用户进行结果响应,针对现有技术中的缺陷,提供了一种集群任务分配方法、装置和计算机可读介质。
为了解决上述技术问题,本发明提供了一种集群任务分配方法,所述集群包括调度服务器和多个计算服务器,所述方法应用于调度服务器;所述方法包括:
向每一个计算服务器发送状态请求报文,并接收每一个计算服务器反馈的运行数据;
根据所述运行数据确定每一个计算服务器中等待处理时长达到第一设定阈值的目标任务;
根据所述运行数据确定每一个计算服务器当前的负载状况;
根据每一个计算服务器当前的负载状况,将确定的各目标任务重新进行分配。
优选地,所述运行数据包括该计算服务器中当前未处理的任务的生成时间戳;
所述确定每一个计算服务器中等待处理时长达到第一设定阈值的目标任务,包括:
针对每一个计算服务器,均执行:
针对该计算服务器中每一个当前未处理的任务对应的生成时间戳,分别计算距离当前时间戳的时长,将计算得到的时长确定为该任务的等待处理时长;
将所述等待处理时长不小于所述第一设定阈值的任务,确定为该计算服务器中的目标任务。
优选地,所述根据每一个计算服务器当前的负载状况,将各目标任务重新进行分配,包括以下步骤:
A1:根据各目标任务分别对应的等待处理时长,按照等待处理时长从大到小的顺序将各目标任务进行分组;其中,每一个分组中目标任务对应的最大等待处理时长和最小等待处理时长的间隔时长不大于第二设定阈值;
A2:判断当前是否存在未进行分配关联的分组,如果是,执行步骤A3;否则,执行步骤A5;
A3:在当前未进行分配关联的各分组中,确定出等待处理时长均比其他分组中的等待处理时长大的目标分组;
A4:将所述目标分组中包括的各目标任务逐个与各计算服务器进行分配关联,并在所述目标分组中不存在未被分配关联的目标任务之后,返回执行步骤A2;
A5:根据分配关联结果,生成每一个计算服务器对应的关联关系,并将关联关系发送给对应的计算服务器,以使计算服务器根据接收到的关联关系,将自身包括的目标任务按照该关联关系迁移给对应的计算服务器;所述关联关系中包括需迁移的目标任务的标识以及将该目标任务迁移到的计算服务器的地址。
优选地,所述负载状况至少包括计算性能;
在步骤A4中,所述将所述目标分组中包括的各目标任务逐个与各计算服务器进行分配关联,包括:
B1:将各个计算服务器按照计算性能从大到小的顺序排序;
B2:判断所述目标分组中是否存在未被分配关联的目标任务,如果是,执行步骤B3;否则,执行步骤A2;
B3:确定上一次分配关联完成的计算服务器的计算性能是否最小,如果是,执行步骤B4;否则,执行步骤B5;
B4:将存在的未被分配关联的目标任务中等待处理时长最大的目标任务,分配关联给最大计算性能的计算服务器,并执行步骤B2;
B5:将存在的未被分配关联的目标任务中等待处理时长最大的目标任务,分配关联给比上一次分配关联完成的计算服务器的计算性能小且与该计算服务器相邻的计算服务器,并执行步骤B2。
优选地,所述计算服务器根据接收到的关联关系,将自身包括的目标任务按照该关联关系迁移给对应的计算服务器,包括:
在计算服务器根据所述关联关系,确定出自身需要迁移的各目标任务;
判断需要迁移的各目标任务中是否存在已处理完成的任务,如果存在,将该已处理完成的任务滤除,将该自身需要迁移的各目标任务中滤除后剩余的目标任务按照所述关联关系迁移给对应的计算服务器。
优选地,在所述将确定的各目标任务重新进行分配之后,进一步包括:
重新确定每一个计算服务器的负载状况;
根据重新确定的每一个计算服务器的负载状况,进行负载均衡调配。
优选地,所述负载状况至少包括未处理任务的任务量;
所述根据重新确定的每一个计算服务器的负载状况,进行负载均衡调配,包括:
C1:确定当前是否存在未进行负载均衡调配的至少两个计算服务器,如果存在,执行步骤C2;否则,执行步骤C4;
C2:在当前未进行负载均衡调配的至少两个计算服务器中,确定任务量最大的计算服务器和任务量最小的服务器;
C3:将任务量最大的计算服务器向任务量最小的服务器进行任务迁移,并将该任务量最大的计算服务器和该任务量最小的服务器均确定为已进行负载均衡调配的计算服务器,并返回C1;
C4:结束负载均衡调配。
本发明实施例还提供了一种集群任务分配装置,所述集群包括调度服务器和多个计算服务器,所述集群任务分配装置位于所述调度服务器中;包括:
通信单元,用于向每一个计算服务器发送状态请求报文,并接收每一个计算服务器反馈的运行数据;
目标任务确定单元,用于根据所述运行数据确定每一个计算服务器中等待处理时长达到第一设定阈值的目标任务;
负载状况确定单元,用于根据所述运行数据确定每一个计算服务器当前的负载状况;
任务重分配单元,用于根据每一个计算服务器当前的负载状况,将确定的各目标任务重新进行分配。
本发明还提供了一种集群任务分配装置,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行上述第一方面或第一方面的任一可能的实现方式所提供的集群任务分配方法。
本发明还提供了计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行上述第一方面或第一方面的任一可能的实现方式所提供的集群任务分配方法。
本发明实施例所提供的一种集群任务分配方法、装置和计算机可读介质,调度服务器通过向每一个计算服务器发送状态请求报文,以接收每一个计算服务器反馈的运行数据,根据运行数据可以确定出每一个计算服务器中等待处理时长达到一个设定阈值的目标任务,该目标任务即为分配给计算服务器但尚未被处理,且等待处理时长较长的任务,因此,可以根据运行数据确定每一个计算服务器当前的负载状况,以对各目标任务重新进行分配。本方案能够保证计算服务器能够及时完成任务,给用户进行结果响应。
附图说明
图1是本发明实施例所提供的一种集群任务分配方法流程图;
图2是本发明实施例所提供的一种目标任务分配方法流程图;
图3是本发明实施例所提供的另一种目标任务分配方法流程图;
图4是本发明实施例所提供的一种负载均衡调配方法流程图;
图5是本发明实施例所提供的一种集群任务分配装置所在设备的结构图;
图6是本发明实施例所提供的一种集群任务分配装置的结构图;
图7是本发明实施例所提供的另一种集群任务分配装置的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将集合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在相关技术中,调度服务器将任务分配给各计算服务器之后,由于各个计算服务器的计算性能不同,那么对分配到的任务进行处理的速度也会不同。调度服务器会根据每一个计算服务器当前的负载状况,来确定接下来的任务分配给谁,而对于已经分配的任务计算服务器是否已经完成并给用户进行结果响应并不会关心。因此,存在一种情况,即已经分配给计算服务器的任务,一直未被处理,且等待处理时长较长,会影响给用户响应结果的速度。
考虑到调度服务器会获取各计算服务器的运行数据,以确定其负载状况,并根据负载状况确定接下来将任务分配给谁。因此,可以在向各计算服务器获取运行数据时,来根据运行数据确定是否有等待处理时长较长的任务存在,如果有,则对该等待处理时长较长的任务进行重新分配,以保证计算服务器能够及时对该等待处理时长较长的任务进行处理。
下面描述该集群任务分配方法的具体实现过程。
如图1所示,本发明实施例提供的一种集群任务分配方法,所述集群包括调度服务器和多个计算服务器,所述方法应用于调度服务器;该方法包括如下步骤:
步骤101:向每一个计算服务器发送状态请求报文,并接收每一个计算服务器反馈的运行数据;
步骤102:根据所述运行数据确定每一个计算服务器中等待处理时长达到第一设定阈值的目标任务;
步骤103:根据所述运行数据确定每一个计算服务器当前的负载状况;
步骤104:根据每一个计算服务器当前的负载状况,将确定的各目标任务重新进行分配。
在本发明实施例中,调度服务器通过向每一个计算服务器发送状态请求报文,以接收每一个计算服务器反馈的运行数据,根据运行数据可以确定出每一个计算服务器中等待处理时长达到一个设定阈值的目标任务,该目标任务即为分配给计算服务器但尚未被处理,且等待处理时长较长的任务,因此,可以根据运行数据确定每一个计算服务器当前的负载状况,以对各目标任务重新进行分配。本方案能够保证计算服务器能够及时完成任务,给用户进行结果响应。
下面描述各步骤的实现过程。
针对步骤102,根据运行数据确定每一个计算服务器中等待处理时长达到第一设定阈值的目标任务。
本发明实施例中,运行数据至少可以包括该计算服务器中当前未处理的任务的生成时间戳。
其中,该生成时间戳可以是调度服务器在生成该任务的时候生成的。且该生成时间戳用于指示计算服务器按照生成时间戳的先后顺序执行各任务。比如,一个计算服务器在接收到调度服务器为其分配的三个任务(任务A、任务B和任务C),其中,该三个任务的生成时间戳分别为2020000001(2020年0点0分01秒)、2020000002、2020000002。那么计算服务器会先处理任务A,然后对于任务B和任务C按照随机选择的顺序进行处理。
本发明实施例中,为了保证能够及时给用户响应结果,可以设定一个阈值,比如设定第一设定阈值为5s,如果任务生成之后在达到5s时依然未被处理,那么就需要尽快处理该任务。
具体地,步骤102可以包括:
针对每一个计算服务器,均执行:
针对该计算服务器中每一个当前未处理的任务对应的生成时间戳,分别计算距离当前时间戳的时长,将计算得到的时长确定为该任务的等待处理时长;
将所述等待处理时长不小于所述第一设定阈值的任务,确定为该计算服务器中的目标任务。
本实施例中,通过利用运行数据中包括的当前未处理的任务对应的生成时间戳,可以计算出任务的等待处理时长,从而快速且准确的筛选目标任务,以提高目标任务被重新分配的速度。
需要说明的是,在根据运行数据确定目标任务时,可能有至少一个计算服务器中存在目标任务,也可能各计算服务器中均不存在目标任务。
针对步骤103,根据运行数据确定每一个计算服务器当前的负载状况。
本发明实施例中,该负载状况用于表明计算服务器当前的状态。其中,该负载状况可以是计算服务器发来的,也可以是调度服务器根据运行数据计算得来的。
本发明实施例中,该负载状况至少可以包括如下两种:
第一种:未处理任务的任务量;
第二种:计算性能。
当包括第一种情况时,该未处理任务的任务量可以直接根据运行数据获得。
当包括第二种情况时,该计算性能可以根据上一次运行数据中包括的未处理任务的任务量以及本次运行数据中包括的未处理任务的任务量来计算。
其中,该运行数据中还包括各未处理任务的任务标识。
比如,可以通过如下方式确定计算服务器的计算性能:在上一次获得的运行数据中,包括有未处理任务的任务量为N1,且记录各未处理任务的任务标识;在本次获得的运行数据中,包括有未处理任务的任务量为N2,并统计本次获得的运行数据中未处理任务的任务标识与上一次获得的运行数据中未处理任务的任务标识中相同任务标识的个数,将统计的该个数确定为在上一次获得运行数据与本次获得运行数据之间的时间段内已经处理完成的任务量。然后,将任务量除以该时间段得到该计算服务器的计算性能。
针对步骤104,根据每一个计算服务器当前的负载状况,将确定的各目标任务重新进行分配。
本发明实施例中,请参考图2,为一种目标任务分配方法流程图,至少可以通过如下一种方式对各目标任务进行分配:
A1:根据各目标任务分别对应的等待处理时长,按照等待处理时长从大到小的顺序将各目标任务进行分组;其中,每一个分组中目标任务对应的最大等待处理时长和最小等待处理时长的间隔时长不大于第二设定阈值。
由于目标任务的等待处理时长越长,表明越急需进行处理,因此,可以按照等待处理时长从大到小的顺序将各目标任务进行分组。比如,步骤102中确定的目标任务的个数为6个(目标任务1-6),该6个目标任务的等待处理时长按照从大到小的顺序分别为6.9s,6.6s,6.4s,6.0s,5.6s,5.2s。其中,第二设定阈值可以为1s,那么可以将该6个目标任务分成两组,第一个分组:目标任务1、目标任务2、目标任务3和目标任务4;第二个分组:目标任务5和目标任务6。
A2:判断当前是否存在未进行分配关联的分组,如果是,执行步骤A3;否则,执行步骤A5。
A3:在当前未进行分配关联的各分组中,确定出等待处理时长均比其他分组中的等待处理时长大的目标分组。
此时,假设第一个分组和第二个分组均未进行分配关联,那么等待处理时长均比其他分组中的等待处理时长大的目标分组为第一个分组。
A4:将所述目标分组中包括的各目标任务逐个与各计算服务器进行分配关联,并在所述目标分组中不存在未被分配关联的目标任务之后,返回执行步骤A2。
在本发明实施例中,所述负载状况至少包括计算性能;请参考图3,为另一种目标任务分配流程图,在步骤A4中,所述将所述目标分组中包括的各目标任务逐个与各计算服务器进行分配关联,包括:
B1:将各个计算服务器按照计算性能从大到小的顺序排序。
假设有三台计算服务器,其计算性能从大到小的顺序排序后分别为计算服务器1、计算服务器2和计算服务器3。
B2:判断所述目标分组中是否存在未被分配关联的目标任务,如果是,执行步骤B3。
在第一个分组中目标任务1-4中是否存在未进行分配的目标任务,如果目标任务1-4中存在未进行分配的目标任务,则执行步骤B3;如果目标任务1-4中不存在未进行分配的目标任务,那么执行步骤A2。
B3:确定上一次分配关联完成的计算服务器的计算性能是否最小,如果是,执行步骤B4;否则,执行步骤B5。
比如,在第一个分组中未进行分配的目标任务为目标任务3和目标任务4,且目标任务2在上一次分配关联时已经分配关联给计算服务器2,那么可以确定上一次分配关联完成的计算服务器为计算服务器2,该计算服务器2的计算性能不是最小的,因此,执行步骤B5。
B4:将存在的未被分配关联的目标任务中等待处理时长最大的目标任务,分配关联给最大计算性能的计算服务器,并执行步骤B2。
B5:将存在的未被分配关联的目标任务中等待处理时长最大的目标任务,分配关联给比上一次分配关联完成的计算服务器的计算性能小且与该计算服务器相邻的计算服务器,并执行步骤B2。
在该步骤B5中,存在的未被分配关联的目标任务中等待处理时长最大的目标任务为目标任务3,且比上一次分配关联完成的计算服务器2的计算性能小且与该计算服务器2相邻的计算服务器为计算服务器3,因此,将目标任务3分配关联给计算服务器3。
本发明实施例中,通过步骤B1-B5的方式对各目标任务进行分配,可以保证等待处理时长越大的目标任务被分配关联给计算性能越大的计算服务器,从而使得计算服务器在接收到该目标任务时,由于该目标任务的等待处理时长很大,表明该目标任务的生成时间戳较早,因此,该计算服务器基于先处理生成时间戳早的任务的原则,先处理该目标任务,从而可以保证目标任务能够被及时处理,进一步提高向用户返回响应结果的速度。
A5:根据分配关联结果,生成每一个计算服务器对应的关联关系,并将关联关系发送给对应的计算服务器,以使计算服务器根据接收到的关联关系,将自身包括的目标任务按照该关联关系迁移给对应的计算服务器;所述关联关系中包括需迁移的目标任务的标识以及将该目标任务迁移到的计算服务器的地址。
比如,存在如下分配关联结果:目标任务1、目标任务4分配关联给计算服务器1,目标任务2、目标任务5分配关联给计算服务器2,目标任务3,目标任务6分配关联给计算服务器3。
调度服务器进一步确定目标任务是从哪个计算服务器确定的,比如,在步骤102中,确定出计算服务器1中的目标任务为目标任务1、目标任务2、目标任务3、目标任务4和目标任务5,计算服务器2中的目标任务为目标任务6。
那么可以根据分配关联结果生成如下关联关系:
计算服务器1的关联关系为:将目标任务1、目标任务4迁移给计算服务器1,将目标任务2和目标任务5迁移给计算服务器2,将目标任务3迁移给计算服务器3;
计算服务器2的关联关系为:将目标任务6迁移给计算服务器3。
以计算服务器1为例,在计算服务器1接收到关联关系之后,可以按照关联关系进行分配,即对目标任务1和目标任务4不做处理,将目标任务2和目标任务5迁移给计算服务器2,将目标任务3迁移给计算服务器3。
由于在计算服务器将运行数据发送给调度服务器到接收到调度服务器发送的关联关系这个时间段中,可能已经处理了一部分目标任务,那么在计算服务器根据接收到的关联关系,将自身包括的目标任务按照该关联关系迁移给对应的计算服务器时,可以包括:在计算服务器根据所述关联关系,确定出自身需要迁移的各目标任务;判断需要迁移的各目标任务中是否存在已处理完成的任务,如果存在,将该已处理完成的任务滤除,按照所述关联关系中与滤除后剩余的各目标任务分别对应的计算服务器的地址,分别迁移给对应的计算服务器。
比如,计算服务器1在接收到的关联关系之后,先确定出自身需要迁移的各目标任务为目标任务2、目标任务3和目标任务5,而目标任务2已经处理完成,那么可以将该目标任务2从需要迁移的各目标任务中滤除,然后将目标任务3迁移给计算服务器3,以及将目标任务5迁移给计算服务器2。
在本发明实施例中,在对各目标任务重新进行分配时,除上述分配方式以外,还可以使用其他分配方式,比如,平均分配给各计算服务器等。
由于各计算服务器之间可以存着负载不均衡的情况,那么在步骤104之后,可以进一步包括:重新确定每一个计算服务器的负载状况;根据重新确定的每一个计算服务器的负载状况,进行负载均衡调配。
本发明一个实施例中,该所述负载状况至少包括未处理任务的任务量;请参考图4,为负载均衡调配方法流程图,在执行根据重新确定的每一个计算服务器的负载状况,进行负载均衡调配时,可以包括:
C1:确定当前是否存在未进行负载均衡调配的至少两个计算服务器,如果存在,执行步骤C2;否则,执行步骤C4。
C2:在当前未进行负载均衡调配的至少两个计算服务器中,确定任务量最大的计算服务器和任务量最小的服务器。
C3:将任务量最大的计算服务器向任务量最小的服务器进行任务迁移,并将该任务量最大的计算服务器和该任务量最小的服务器均确定为已进行负载均衡调配的计算服务器,并返回C1。
C4:结束负载均衡调配。
比如,集群中包括5个计算服务器,按照任务量从大到小排序依次为:计算服务器1、计算服务器2、计算服务器3、计算服务器4和计算服务器5。那么在进行负载均衡调配时,将计算服务器1向计算服务器5进行任务迁移,将计算服务器2向计算服务器4进行任务迁移。
由于计算服务器在处理任务时是按照生成时间戳由远到近的顺序处理,那么迁移任务可以按照生成时间戳由近到远的顺序迁移。比如,计算服务器1中当前的任务按照生成时间戳由近到远的顺序依次包括任务1、任务2、…、任务n,n为正整数,如果从计算服务器1向计算服务器4进行任务迁移的个数为2个,那么将任务1和任务2迁移给计算服务器4。
需要说明的是,在进行负载均衡调配时,除上述方式以外,还可以使用其他方式,比如,计算服务器1向计算服务器4进行任务迁移。
如图5、图6所示,本发明实施例提供了一种集群任务分配装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件集合的方式实现。从硬件层面而言,如图5所示,为本发明实施例提供的一种集群任务分配装置所在设备的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图6所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的一种集群任务分配装置,所述集群包括调度服务器和多个计算服务器,所述集群任务分配装置位于所述调度服务器中;包括:
通信单元601,用于向每一个计算服务器发送状态请求报文,并接收每一个计算服务器反馈的运行数据;
目标任务确定单元602,用于根据所述运行数据确定每一个计算服务器中等待处理时长达到第一设定阈值的目标任务;
负载状况确定单元603,用于根据所述运行数据确定每一个计算服务器当前的负载状况;
任务重分配单元604,用于根据每一个计算服务器当前的负载状况,将确定的各目标任务重新进行分配。
在本发明一个实施例中,所述运行数据包括该计算服务器中当前未处理的任务的生成时间戳;
所述目标任务确定单元,具体用于执行如下操作:
针对每一个计算服务器,均执行:
针对该计算服务器中每一个当前未处理的任务对应的生成时间戳,分别计算距离当前时间戳的时长,将计算得到的时长确定为该任务的等待处理时长;
将所述等待处理时长不小于所述第一设定阈值的任务,确定为该计算服务器中的目标任务。
在本发明一个实施例中,任务重分配单元,具体用于执行如下步骤:
A1:根据各目标任务分别对应的等待处理时长,按照等待处理时长从大到小的顺序将各目标任务进行分组;其中,每一个分组中目标任务对应的最大等待处理时长和最小等待处理时长的间隔时长不大于第二设定阈值;
A2:判断当前是否存在未进行分配关联的分组,如果是,执行步骤A3;否则,执行步骤A5;
A3:在当前未进行分配关联的各分组中,确定出等待处理时长均比其他分组中的等待处理时长大的目标分组;
A4:将所述目标分组中包括的各目标任务逐个与各计算服务器进行分配关联,并在所述目标分组中不存在未被分配关联的目标任务之后,返回执行步骤A2;
A5:根据分配关联结果,生成每一个计算服务器对应的关联关系,并将关联关系发送给对应的计算服务器,以使计算服务器根据接收到的关联关系,将自身包括的目标任务按照该关联关系迁移给对应的计算服务器;所述关联关系中包括需迁移的目标任务的标识以及将该目标任务迁移到的计算服务器的地址。
在本发明一个实施例中,所述负载状况至少包括计算性能;
任务重分配单元,在执行步骤A4时,具体用于执行如下步骤:
B1:将各个计算服务器按照计算性能从大到小的顺序排序;
B2:判断所述目标分组中是否存在未被分配关联的目标任务,如果是,执行步骤B3;否则,执行步骤A2;
B3:确定上一次分配关联完成的计算服务器的计算性能是否最小,如果是,执行步骤B4;否则,执行步骤B5;
B4:将存在的未被分配关联的目标任务中等待处理时长最大的目标任务,分配关联给最大计算性能的计算服务器,并执行步骤B2;
B5:将存在的未被分配关联的目标任务中等待处理时长最大的目标任务,分配关联给比上一次分配关联完成的计算服务器的计算性能小且与该计算服务器相邻的计算服务器,并执行步骤B2。
在本发明一个实施例中,所述计算服务器根据接收到的关联关系,将自身包括的目标任务按照该关联关系迁移给对应的计算服务器,具体包括:在计算服务器根据所述关联关系,确定出自身需要迁移的各目标任务;判断需要迁移的各目标任务中是否存在已处理完成的任务,如果存在,将该已处理完成的任务滤除,将该自身需要迁移的各目标任务中滤除后剩余的目标任务按照所述关联关系迁移给对应的计算服务器。
在本发明一个实施例中,请参考图7,可以进一步包括:负载均衡调配单元605,用于重新确定每一个计算服务器的负载状况;根据重新确定的每一个计算服务器的负载状况,进行负载均衡调配。
在本发明一个实施例中,所述负载状况至少包括未处理任务的任务量;
所述负载均衡调配单元在执行根据重新确定的每一个计算服务器的负载状况,进行负载均衡调配时,具体包括:
C1:确定当前是否存在未进行负载均衡调配的至少两个计算服务器,如果存在,执行步骤C2;否则,执行步骤C4;
C2:在当前未进行负载均衡调配的至少两个计算服务器中,确定任务量最大的计算服务器和任务量最小的服务器;
C3:将任务量最大的计算服务器向任务量最小的服务器进行任务迁移,并将该任务量最大的计算服务器和该任务量最小的服务器均确定为已进行负载均衡调配的计算服务器,并返回C1;
C4:结束负载均衡调配。
可以理解的是,本发明实施例示意的结构并不构成对一种集群任务分配装置的具体限定。在本发明的另一些实施例中,一种集群任务分配装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例还提供了一种集群任务分配装置,包括:至少一个存储区和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行本发明任一实施例中的一种集群任务分配方法。
本发明实施例还提供了一种计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行本发明任一实施例中的一种集群任务分配方法。
具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展模块中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展模块上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种集群任务分配方法,其特征在于,所述集群包括调度服务器和多个计算服务器,所述方法应用于调度服务器;所述方法包括:
向每一个计算服务器发送状态请求报文,并接收每一个计算服务器反馈的运行数据;
根据所述运行数据确定每一个计算服务器中等待处理时长达到第一设定阈值的目标任务;
根据所述运行数据确定每一个计算服务器当前的负载状况;
根据每一个计算服务器当前的负载状况,将确定的各目标任务重新进行分配;
所述根据每一个计算服务器当前的负载状况,将确定的各目标任务重新进行分配,包括以下步骤:
A1:根据各目标任务分别对应的等待处理时长,按照等待处理时长从大到小的顺序将各目标任务进行分组;其中,每一个分组中目标任务对应的最大等待处理时长和最小等待处理时长的间隔时长不大于第二设定阈值;
A2:判断当前是否存在未进行分配关联的分组,如果是,执行步骤A3;否则,执行步骤A5;
A3:在当前未进行分配关联的各分组中,确定出等待处理时长均比其他分组中的等待处理时长大的目标分组;
A4:将所述目标分组中包括的各目标任务逐个与各计算服务器进行分配关联,并在所述目标分组中不存在未被分配关联的目标任务之后,返回执行步骤A2;
A5:根据分配关联结果,生成每一个计算服务器对应的关联关系,并将关联关系发送给对应的计算服务器,以使计算服务器根据接收到的关联关系,将自身包括的目标任务按照该关联关系迁移给对应的计算服务器;所述关联关系中包括需迁移的目标任务的标识以及将该目标任务迁移到的计算服务器的地址。
2.根据权利要求1所述的方法,其特征在于,所述运行数据包括该计算服务器中当前未处理的任务的生成时间戳;
所述确定每一个计算服务器中等待处理时长达到第一设定阈值的目标任务,包括:
针对每一个计算服务器,均执行:
针对该计算服务器中每一个当前未处理的任务对应的生成时间戳,分别计算距离当前时间戳的时长,将计算得到的时长确定为该任务的等待处理时长;
将所述等待处理时长不小于所述第一设定阈值的任务,确定为该计算服务器中的目标任务。
3.根据权利要求1所述的方法,其特征在于,
所述负载状况至少包括计算性能;
在步骤A4中,所述将所述目标分组中包括的各目标任务逐个与各计算服务器进行分配关联,包括:
B1:将各个计算服务器按照计算性能从大到小的顺序排序;
B2:判断所述目标分组中是否存在未被分配关联的目标任务,如果是,执行步骤B3;否则,执行步骤A2;
B3:确定上一次分配关联完成的计算服务器的计算性能是否最小,如果是,执行步骤B4;否则,执行步骤B5;
B4:将存在的未被分配关联的目标任务中等待处理时长最大的目标任务,分配关联给最大计算性能的计算服务器,并执行步骤B2;
B5:将存在的未被分配关联的目标任务中等待处理时长最大的目标任务,分配关联给比上一次分配关联完成的计算服务器的计算性能小且与该计算服务器相邻的计算服务器,并执行步骤B2。
4.根据权利要求3所述的方法,其特征在于,所述计算服务器根据接收到的关联关系,将自身包括的目标任务按照该关联关系迁移给对应的计算服务器,包括:
在计算服务器根据所述关联关系,确定出自身需要迁移的各目标任务;
判断需要迁移的各目标任务中是否存在已处理完成的任务,如果存在,将该已处理完成的任务滤除,将该自身需要迁移的各目标任务中滤除后剩余的目标任务按照所述关联关系迁移给对应的计算服务器。
5.根据权利要求1-4中任一所述的方法,其特征在于,在所述将确定的各目标任务重新进行分配之后,进一步包括:
重新确定每一个计算服务器的负载状况;
根据重新确定的每一个计算服务器的负载状况,进行负载均衡调配。
6.根据权利要求5所述的方法,其特征在于,
所述负载状况至少包括未处理任务的任务量;
所述根据重新确定的每一个计算服务器的负载状况,进行负载均衡调配,包括:
C1:确定当前是否存在未进行负载均衡调配的至少两个计算服务器,如果存在,执行步骤C2;否则,执行步骤C4;
C2:在当前未进行负载均衡调配的至少两个计算服务器中,确定任务量最大的计算服务器和任务量最小的服务器;
C3:将任务量最大的计算服务器向任务量最小的服务器进行任务迁移,并将该任务量最大的计算服务器和该任务量最小的服务器均确定为已进行负载均衡调配的计算服务器,并返回C1;
C4:结束负载均衡调配。
7.一种集群任务分配装置,其特征在于,所述集群包括调度服务器和多个计算服务器,所述集群任务分配装置位于所述调度服务器中;包括:
通信单元,用于向每一个计算服务器发送状态请求报文,并接收每一个计算服务器反馈的运行数据;
目标任务确定单元,用于根据所述运行数据确定每一个计算服务器中等待处理时长达到第一设定阈值的目标任务;
负载状况确定单元,用于根据所述运行数据确定每一个计算服务器当前的负载状况;
任务重分配单元,用于根据每一个计算服务器当前的负载状况,将确定的各目标任务重新进行分配;所述根据每一个计算服务器当前的负载状况,将确定的各目标任务重新进行分配,包括执行以下步骤:
A1:根据各目标任务分别对应的等待处理时长,按照等待处理时长从大到小的顺序将各目标任务进行分组;其中,每一个分组中目标任务对应的最大等待处理时长和最小等待处理时长的间隔时长不大于第二设定阈值;
A2:判断当前是否存在未进行分配关联的分组,如果是,执行步骤A3;否则,执行步骤A5;
A3:在当前未进行分配关联的各分组中,确定出等待处理时长均比其他分组中的等待处理时长大的目标分组;
A4:将所述目标分组中包括的各目标任务逐个与各计算服务器进行分配关联,并在所述目标分组中不存在未被分配关联的目标任务之后,返回执行步骤A2;
A5:根据分配关联结果,生成每一个计算服务器对应的关联关系,并将关联关系发送给对应的计算服务器,以使计算服务器根据接收到的关联关系,将自身包括的目标任务按照该关联关系迁移给对应的计算服务器;所述关联关系中包括需迁移的目标任务的标识以及将该目标任务迁移到的计算服务器的地址。
8.一种集群任务分配装置,其特征在于,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行权利要求1至6中任一项所述的方法。
9.计算机可读介质,其特征在于,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110519940.1A CN112988361B (zh) | 2021-05-13 | 2021-05-13 | 集群任务分配方法、装置和计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110519940.1A CN112988361B (zh) | 2021-05-13 | 2021-05-13 | 集群任务分配方法、装置和计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112988361A CN112988361A (zh) | 2021-06-18 |
CN112988361B true CN112988361B (zh) | 2021-08-20 |
Family
ID=76337673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110519940.1A Active CN112988361B (zh) | 2021-05-13 | 2021-05-13 | 集群任务分配方法、装置和计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112988361B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113791900A (zh) * | 2021-08-26 | 2021-12-14 | 国网山东省电力公司邹城市供电公司 | 一种电费计算方法及系统 |
CN114237859B (zh) * | 2022-02-25 | 2022-05-13 | 中瓴智行(成都)科技有限公司 | 分布式的智能终端gpu算力提升方法、终端、系统及介质 |
CN115695432B (zh) * | 2023-01-04 | 2023-04-07 | 河北华通科技股份有限公司 | 一种负载均衡方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104516784A (zh) * | 2014-07-11 | 2015-04-15 | 中国科学院计算技术研究所 | 一种预测任务资源等待时间的方法及系统 |
CN104572305A (zh) * | 2015-01-26 | 2015-04-29 | 赞奇科技发展有限公司 | 均衡负载的集群渲染任务调度方法 |
CN106933662A (zh) * | 2017-03-03 | 2017-07-07 | 广东神马搜索科技有限公司 | 分布式系统及其调度方法和调度装置 |
CN107608777A (zh) * | 2017-09-15 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种分布式环境中大数据处理任务的调度方法 |
CN108563500A (zh) * | 2018-05-08 | 2018-09-21 | 深圳市零度智控科技有限公司 | 基于云平台的任务调度方法、云平台及计算机存储介质 |
CN110764887A (zh) * | 2019-09-10 | 2020-02-07 | 浙江大华技术股份有限公司 | 任务重调度方法、系统及相关设备、装置 |
CN112087503A (zh) * | 2020-08-29 | 2020-12-15 | 北京明略昭辉科技有限公司 | 集群任务调度方法、系统、计算机和计算机可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160006635A1 (en) * | 2013-12-25 | 2016-01-07 | Hitachi, Ltd. | Monitoring method and monitoring system |
CN104615498B (zh) * | 2015-01-22 | 2018-04-03 | 北京仿真中心 | 一种基于任务迁移的集群系统动态负载均衡方法 |
-
2021
- 2021-05-13 CN CN202110519940.1A patent/CN112988361B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104516784A (zh) * | 2014-07-11 | 2015-04-15 | 中国科学院计算技术研究所 | 一种预测任务资源等待时间的方法及系统 |
CN104572305A (zh) * | 2015-01-26 | 2015-04-29 | 赞奇科技发展有限公司 | 均衡负载的集群渲染任务调度方法 |
CN106933662A (zh) * | 2017-03-03 | 2017-07-07 | 广东神马搜索科技有限公司 | 分布式系统及其调度方法和调度装置 |
CN107608777A (zh) * | 2017-09-15 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种分布式环境中大数据处理任务的调度方法 |
CN108563500A (zh) * | 2018-05-08 | 2018-09-21 | 深圳市零度智控科技有限公司 | 基于云平台的任务调度方法、云平台及计算机存储介质 |
CN110764887A (zh) * | 2019-09-10 | 2020-02-07 | 浙江大华技术股份有限公司 | 任务重调度方法、系统及相关设备、装置 |
CN112087503A (zh) * | 2020-08-29 | 2020-12-15 | 北京明略昭辉科技有限公司 | 集群任务调度方法、系统、计算机和计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
基于任务分类的延迟调度算法;高正九,郑烇,辛波,王嵩;《计算机系统应用》;20140930;第2014卷(第9期);全文 * |
基于平均等待时间约束的松弛预留机制;胡志刚,闫朝坤,刘长庚;《计算机工程》;20120717;第38卷(第10期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112988361A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112988361B (zh) | 集群任务分配方法、装置和计算机可读介质 | |
US9052932B2 (en) | Hybrid virtual machine configuration management | |
US11106508B2 (en) | Elastic multi-tenant container architecture | |
WO2018120991A1 (zh) | 一种资源调度方法及装置 | |
US11755369B2 (en) | Techniques for container scheduling in a virtual environment | |
CN111399970B (zh) | 一种预留资源管理方法、装置和存储介质 | |
CN112052068A (zh) | 一种Kubernetes容器平台CPU绑核的方法与装置 | |
WO2016101996A1 (en) | Allocating cloud computing resources in a cloud computing environment | |
WO2016074130A1 (zh) | 一种系统调用命令的批处理方法及装置 | |
WO2013082742A1 (zh) | 资源调度方法、装置和系统 | |
CN114625500A (zh) | 云环境下拓扑感知的微服务应用调度的方法及应用 | |
CN104598304B (zh) | 用于作业执行中的调度的方法和装置 | |
CN111352710B (zh) | 进程管理方法及装置、计算设备、存储介质 | |
CN109062580B (zh) | 一种虚拟化环境部署方法和部署装置 | |
NL2026456B1 (en) | Automatic node fungibility between compute and infrastructure nodes in edge zones | |
CN111104203B (zh) | 虚拟机分散调度方法、装置以及电子设备、存储介质 | |
CN116157778A (zh) | 共享物理主机上混合集中分布式调度的系统和方法 | |
CN117608760A (zh) | 应用于Kubernetes的云上应用混合部署方法 | |
CN111796932A (zh) | 一种gpu资源调度方法 | |
WO2017133421A1 (zh) | 一种多租户资源共享的方法及装置 | |
CN109558214B (zh) | 异构环境下宿主机资源管理方法、装置和存储介质 | |
JP7037059B2 (ja) | リソース管理システム、および、リソース割当プログラム | |
US10963296B1 (en) | Load balancing of compute resources based on resource credits | |
CN111459651A (zh) | 一种负载均衡方法、装置、存储介质及调度系统 | |
TWI723568B (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210730 Address after: 807-3, floor 8, block F, No. 9, Shangdi Third Street, Haidian District, Beijing 100080 Applicant after: Zhongcheng Hualong Computer Technology Co.,Ltd. Address before: No.114, 14th floor, block B, building 1, No.38, Zhongguancun Street, Haidian District, Beijing 100082 Applicant before: Shenwei Super Computing (Beijing) Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |