CN110837421B - 一种任务分配方法及装置 - Google Patents
一种任务分配方法及装置 Download PDFInfo
- Publication number
- CN110837421B CN110837421B CN201911111740.1A CN201911111740A CN110837421B CN 110837421 B CN110837421 B CN 110837421B CN 201911111740 A CN201911111740 A CN 201911111740A CN 110837421 B CN110837421 B CN 110837421B
- Authority
- CN
- China
- Prior art keywords
- slave node
- task
- value
- slave
- result data
- 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/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/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种任务分配方法及装置,其中,任务分配方法应用于主节点,包括:向第一从节点分配第一预设工作量的第一任务;接收第一从节点完成第一任务后返回的第一结果数据;其中,第一结果数据包括任务结果数据及用于表征从节点任务完成情况的完成情况数据;根据第一结果数据确定第一从节点的第一当前算力值;根据第一当前算力值向第一从节点分配第二预设工作量的第二任务。因此,主节点可以根据某个从节点完成上一任务的完成情况数据,确定该从节点当前实时的算力值,并根据当前实时的算力值向该从节点分配新的任务,从而可以根据从节点实时的性能向从节点分配任务,使得整个服务器集群的运算效率较高。
Description
技术领域
本申请涉及数据处理领域,具体而言,涉及一种任务分配方法及装置。
背景技术
随着大数据、云计算与移动互联网的接连兴起,网络中的数据量和流量也在飞速增长,处理海量数据和用户请求对服务器造成了非常大的压力。又因为服务器的性能和售价间的关系并不符合线性关系,当达到一定阈值后再为一台服务器投入大量资金也不会使其性能有很客观的提升,所以目前最常用的方案是使用多台服务器组合起来,形成服务器集群进行工作。但是由于每台机器的性能可能各不相同,所以需要解决将任务分配给哪台机器的问题。
现有的一种方案是人工测定机器的性能,并事先为每台机器设定好接收任务的比例。但是,机器性能会随着时间的变化发生变化:当内存占用比较高或者CPU占用较高的时候都会导致其性能下降,此时再使用之前人工设定的固定比例分配任务,并不能使得整个服务器集群的运算效率最高。
发明内容
本申请实施例的目的在于提供一种任务分配方法及装置,用以解决整个服务器集群的运算效率较低的技术问题。
为了实现上述目的,本申请实施例所提供的技术方案如下所示:
第一方面,本申请实施例提供一种任务分配方法,应用于主节点,包括:向第一从节点分配第一预设工作量的第一任务;接收所述第一从节点完成所述第一任务后返回的第一结果数据;其中,所述第一结果数据包括任务结果数据及用于表征所述第一从节点任务完成情况的完成情况数据;根据所述第一结果数据确定所述第一从节点的第一当前算力值;根据所述第一当前算力值向所述第一从节点分配第二预设工作量的第二任务。因此,主节点可以根据某个从节点完成上一任务的完成情况数据,确定该从节点当前实时的算力值,并根据当前实时的算力值向该从节点分配新的任务,从而可以根据从节点实时的性能向从节点分配任务,使得整个服务器集群的运算效率较高。
在本申请的可选实施例中,所述任务分配方法还包括:当接入新的第二从节点时,向所述第二从节点分配第三预设工作量的第三任务;其中,所述第三预设工作量小于预设工作量阈值;接收所述第二从节点完成所述第三任务后返回的第二结果数据;根据所述第二结果数据确定所述第二从节点的第二当前算力值;根据所述第二当前算力值向所述第二从节点分配第四预设工作量的第四任务。因此,当服务器集群中接入新的从节点时,可以向新接入的从节点分配一定量的任务,以确定新加入的从节点实时的算力值,并根据确定的算力值向该从节点继续分配任务,从而使得即使有新的节点加入服务器集群中,也可以通过实时的确定每个节点的算力值,以使整个服务器集群的运算效率较高。
在本申请的可选实施例中,所述向第一从节点分配第一预设工作量的第一任务,包括:获取所述第一从节点的初始算力值;根据所述初始算力值向所述第一从节点分配所述第一任务。因此,根据预先获得的从节点的初始算力值向该从节点分配任务,然后根据该节点完成该任务的情况计算该节点实时的算力值,从而后续可以根据该从节点实时的性能向从节点分配任务,使得整个服务器集群的运算效率较高。
在本申请的可选实施例中,所述向第一从节点分配第一预设工作量的第一任务,包括:向所述第一从节点分配第一初始工作量的第五任务;接收所述第一从节点完成所述第五任务后返回的第三结果数据;根据所述第三结果数据确定所述第一从节点的第一待定算力值;向所述第一从节点分配根据待定算力值确定的初始工作量的任务,直至确定所述第一从节点的确定算力值;其中,当所述第一从节点当前的算力值与上一算力值的差值小于预设差值时,所述当前的算力值为所述确定算力值;根据所述确定算力值向所述第一从节点分配所述第一任务。因此,向从节点分配一定工作量的任务,并根据当前任务确定该从节点的算力值,然后改变分配给该从节点的任务的工作量,继续根据当任务确定该从节点的算力值,直到确定该从节点的算力值作为当前算力值,从而可以根据该从节点实时的性能向从节点分配任务,使得整个服务器集群的运算效率较高。
在本申请的可选实施例中,所述根据所述第一结果数据确定所述第一从节点的第一当前算力值,包括:根据所述第一结果数据中所述第一从节点完成所述第一任务的任务耗时,计算所述第一当前算力值。因此,可以根据从节点完成任务的耗时确定其算力值,任务耗时越长说明该节点完成任务的能力越低。
在本申请的可选实施例中,所述当前算力值为根据如下公式计算得到:
其中,cv为所述第一从节点的所述当前算力值,u为所述第一从节点的上传速度,d为所述第一从节点的下载速度,s为所述第一从节点上传上一文件时每百兆耗时,n为所述第一从节点对应的机器的CPU逻辑核心数,m为所述第一从节点对应的所述机器的CPU核心主频,x为所述第一从节点对应的所述机器的内存。因此,可以根据从节点对应的机器的硬件配置、从节点的网络参数以及从节点完成任务的耗时确定其算力值,硬件配置越差、网络参数越差、任务耗时越长说明该从节点完成任务的能力越低。
在本申请的可选实施例中,所述根据所述第一结果数据确定所述第一从节点的第一当前算力值,包括:根据所述第一结果数据中所述第一从节点完成的所述第一任务的任务类型时,计算所述第一当前算力值。因此,由于不同的任务影响从节点算力值的因素及比例不同,可以根据不同任务的任务类型确定从节点的算力值,从而保证实时确定的从节点的算力值更加准确,使得整个服务器集群的运算效率较高。
在本申请的可选实施例中,在所述根据所述第一当前算力值向所述第一从节点分配第二预设工作量的第二任务之前,所述任务分配方法还包括:接收与所述第二任务对应的服务请求;其中,所述服务请求对应的服务包括多个任务;根据所述服务请求的类型计算多个从节点的算力值并获取所述多个任务的难度系数;其中,所述多个从节点包括所述第一从节点;根据所述难度系数与所述多个从节点的算力值的匹配关系分配所述多个任务,以使所述第一从节点接收待执行的所述第二任务。因此,可以根据任务的难度系数与多个从节点的算力值的匹配关系分配任务,难度系数大的任务分配给算力值高的从节点,难度系数小的任务分配给算力值低的从节点,从而使得整个服务器集群的运算效率较高。
第二方面,本申请实施例提供一种任务分配装置,应用于主节点,包括:第一分配模块,用于向第一从节点分配第一预设工作量的第一任务;第一接收模块,用于接收所述第一从节点完成所述第一任务后返回的第一结果数据;其中,所述第一结果数据包括任务结果数据及用于表征所述第一从节点任务完成情况的完成情况数据;第一确定模块,用于根据所述第一结果数据确定所述第一从节点的第一当前算力值;第二分配模块,用于根据所述第一当前算力值向所述第一从节点分配第二预设工作量的第二任务。因此,主节点可以根据某个从节点完成上一任务的完成情况数据,利用第一确定模块确定该从节点当前实时的算力值,并利用第二分配模块根据当前实时的算力值向该从节点分配新的任务,从而可以根据从节点实时的性能向从节点分配任务,使得整个服务器集群的运算效率较高。
在本申请的可选实施例中,所述任务分配装置还包括:第三分配模块,用于当接入新的第二从节点时,向所述第二从节点分配第三预设工作量的第三任务;其中,所述第三预设工作量小于预设工作量阈值;第二接收模块,用于接收所述第二从节点完成所述第三任务后返回的第二结果数据;第二确定模块,用于根据所述第二结果数据确定所述第二从节点的第二当前算力值;第四分配模块,用于根据所述第二当前算力值向所述第二从节点分配第四预设工作量的第四任务。因此,当服务器集群中接入新的从节点时,可以利用第三分配模块向新接入的从节点分配一定量的任务,以确定新加入的从节点实时的算力值,并根据确定的算力值利用第四分配模块向该从节点继续分配任务,从而使得即使有新的节点加入服务器集群中,也可以通过实时的确定每个节点的算力值,以使整个服务器集群的运算效率较高。
在本申请的可选实施例中,所述第一分配模块还用于:获取所述第一从节点的初始算力值;根据所述初始算力值向所述第一从节点分配所述第一任务。因此,第一分配模块可以根据预先获得的从节点的初始算力值向该从节点分配任务,然后根据该节点完成该任务的情况计算该节点实时的算力值,从而后续可以根据该从节点实时的性能向从节点分配任务,使得整个服务器集群的运算效率较高。
在本申请的可选实施例中,所述第一分配模块还用于:向所述第一从节点分配第一初始工作量的第五任务;接收所述第一从节点完成所述第五任务后返回的第三结果数据;根据所述第三结果数据确定所述第一从节点的第一待定算力值;向所述第一从节点分配根据待定算力值确定的初始工作量的任务,直至确定所述第一从节点的确定算力值;其中,当所述第一从节点当前的算力值与上一算力值的差值小于预设差值时,所述当前的算力值为所述确定算力值;根据所述确定算力值向所述第一从节点分配所述第一任务。因此,第一分配模块向从节点分配一定工作量的任务,并根据当前任务确定该从节点的算力值,然后改变分配给该从节点的任务的工作量,继续根据当任务确定该从节点的算力值,直到确定该从节点的算力值作为当前算力值,从而可以根据该从节点实时的性能向从节点分配任务,使得整个服务器集群的运算效率较高。
在本申请的可选实施例中,所述第一确定模块还用于:根据所述第一结果数据中所述第一从节点完成所述第一任务的任务耗时,计算所述第一当前算力值。因此,第一确定模块可以根据从节点完成任务的耗时确定其算力值,任务耗时越长说明该节点完成任务的能力越低。
在本申请的可选实施例中,所述当前算力值为根据如下公式计算得到:
其中,cv为所述第一从节点的所述当前算力值,u为所述第一从节点的上传速度,d为所述第一从节点的下载速度,s为所述第一从节点上传上一文件时每百兆耗时,n为所述第一从节点对应的机器的CPU逻辑核心数,m为所述第一从节点对应的所述机器的CPU核心主频,x为所述第一从节点对应的所述机器的内存。因此,第一确定模块可以根据从节点对应的机器的硬件配置、从节点的网络参数以及从节点完成任务的耗时确定其算力值,硬件配置越差、网络参数越差、任务耗时越长说明该从节点完成任务的能力越低。
在本申请的可选实施例中,所述第一确定模块还用于:根据所述第一结果数据中所述第一从节点完成的所述第一任务的任务类型时,计算所述第一当前算力值。因此,由于不同的任务影响从节点算力值的因素及比例不同,第一确定模块可以根据不同任务的任务类型确定从节点的算力值,从而保证实时确定的从节点的算力值更加准确,使得整个服务器集群的运算效率较高。
在本申请的可选实施例中,所述任务分配装置还包括:第三接收模块,用于接收与所述第二任务对应的服务请求;其中,所述服务请求对应的服务包括多个任务;计算模块,用于根据所述服务请求的类型计算多个从节点的算力值并获取所述多个任务的难度系数;其中,所述多个从节点包括所述第一从节点;第五分配模块,用于根据所述难度系数与所述多个从节点的算力值的匹配关系分配所述多个任务,以使所述第一从节点接收待执行的所述第二任务。因此,第五分配模块可以根据任务的难度系数与多个从节点的算力值的匹配关系分配任务,难度系数大的任务分配给算力值高的从节点,难度系数小的任务分配给算力值低的从节点,从而使得整个服务器集群的运算效率较高。
第三方面,本申请实施例提供一种电子设备,包括:处理器、存储器和总线;所述处理器和所述存储器通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如第一方面中的任务分配方法。
第四方面,本申请实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面中的任务分配方法。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举本申请实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种服务器集群的结构框图;
图2为本申请实施例提供的一种任务分配方法的流程图;
图3为本申请实施例提供的一种步骤S201实施方式的流程图;
图4为本申请实施例提供的另一种步骤S201实施方式的流程图;
图5为本申请实施例提供的一种步骤S203实施方式的流程图;
图6为本申请实施例提供另一种任务分配方法的流程图;
图7为本申请实施例提供的一种任务分配装置的结构框图;
图8为本申请实施例提供的一种电子设备的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
随着大数据、云计算与移动互联网的接连兴起,网络中的数据量和流量也在飞速增长,处理海量数据和用户请求对服务器造成了非常大的压力。又因为服务器的性能和售价间的关系并不符合线性关系,当达到一定阈值后再为一台服务器投入大量资金也不会使其性能有很客观的提升,所以目前最常用的方案是使用多台服务器组合起来,形成服务器集群进行工作。
在一个服务器集群中,通常包括一个主节点(Master)以及多个从节点(Slave),请参照图1,图1为本申请实施例提供的一种服务器集群的结构框图。其中,主节点101用于承担整个服务器集群100中的重要工作,负责例如任务分配、结果收集等;从节点102用于承担服务器集群100中的常规工作,负责例如计算与数据分析等,并将结果发送给主节点101。需要说明的是,本申请实施例对从节点102的数量不作具体的限制,图1中的数量只是一种可选的实施方式,本领域技术人员可以根据实际情况进行合适的调整。
在一个服务器集群中,由于每个节点对应的每台机器的性能、每个节点处于的网络环境都可能都各不相同,因此,不同的节点即使处理相同的任务,所需要的时间也是不相同的。所以,为了使得整个服务器集群在处理任务时的效率最高,需要将不同的任务合理的分配给不同的节点进行处理。
基于上述分析,发明人经过研究,提供了一种任务分配方法,应用于服务器集群中的主节点。该任务分配方法在每次服务器集群中的机器配置发生变化、机器新增等情况下,都将不再需要人工估计当前节点的算力值。从而能在工作中节省人工估算的时间,而且由于算力值的计算是分时进行的,在服务器集群工作过程中由于中央处理器(CentralProcessing Unit,CPU)和内存的变动所带来的算力值变动也能实时反馈出来,由此使得整个服务器集群完成任务的能力得到最大利用。
请参照图2,图2为本申请实施例提供的一种任务分配方法的流程图,该任务分配方法包括如下步骤:
步骤S201:向第一从节点分配第一预设工作量的第一任务。
步骤S202:接收第一从节点完成第一任务后返回的第一结果数据。
步骤S203:根据第一结果数据确定第一从节点的第一当前算力值。
步骤S204:根据第一当前算力值向第一从节点分配第二预设工作量的第二任务。
示例性的,一个服务器集群中可能包括多个从节点,为了便于叙述,以服务器集群中的任意一个从节点为例进行说明,并将该从节点命名为第一从节点。其中,每个从节点处理任务的能力命名为算力值,从节点处理任务的能力越高,其算力值越大;从节点处理任务的能力越低,其算力值越小。为了保证整个服务器集群处理任务的效率最高,主节点一般将工作量较大的任务分配给算力值高的从节点进行处理;将工作量较小的任务分配给算力值低的从节点进行处理。
基于上述分析,主节点可以向第一从节点分配第一预设工作量的第一任务,其中,第一预设工作量可以通过多种方式确定。例如,第一种,可以根据第一从节点上一次执行任务时的实时算力值分配适当的第一预设工作量的第一任务给第一从节点进行处理,此时可能为服务器集群中的从节点已经开始处理任务了一段时间;第二种,可以根据事先确定的该第一从节点的算力值分配适当的第一预设工作量的第一任务给第一从节点进行处理,此时可能为服务器集群中的各个节点首次开始处理该类型任务或者第一从节点为新加入服务器集群中的从节点,且该第一从节点的算力值已知;第三种,第一预设工作量可以为一个较小的工作量,逐渐改变分配给第一从节点的任务的工作量,从而确定第一从节点的一个确定算力值,此时可能为服务器集群中的各个节点首次开始处理该类型任务或者第一从节点为新加入服务器集群中的从节点,且该第一从节点的算力值未知。
针对上述第一种情况,相当于重复执行了步骤S202-步骤S204,第一从节点完成了主节点分配的上一任务后,可以将第一结果数据发送给主节点,以使主节点可以根据接收到的第一结果数据确定第一从节点的当前算力值,并根据当前算力值分配适当的预设工作量的任务给第一从节点进行处理。其中,第一从节点发送的第一结果数据可以包括任务结果数据以及用于表征第一从节点任务完成情况的完成情况数据。作为一种实施方式,主节点中事先存储有任务自身的数据,包括工作量、任务难度等数据,第一从节点完成该任务后,可以仅将其完成该任务的时间发送给主节点作为完成情况数据;作为另一种实施方式,第一从节点完成任务后,将所有与完成任务相关的数据均发送给主节点作为完成情况数据。本申请实施例对此不作具体的限定,本领域技术人员可以根据实际情况进行合适的选择。
针对上述第二种情况,在该种情况下,请参照图3,图3为本申请实施例提供的一种步骤S201实施方式的流程图,步骤S201可以包括如下步骤:
步骤S301:获取第一从节点的初始算力值。
步骤S302:根据初始算力值向第一从节点分配第一任务。
其中,初始算力值可以为人工计算得到,也可以为该第一从节点以前处理任务时的算力值,主节点可以根据该初始算力值向第一从节点分配任务,之后再根据任务完成情况更新该第一从节点的算力值。
针对上述第三种情况,在该种情况下,请参照图4,图4为本申请实施例提供的另一种步骤S201实施方式的流程图,步骤S201可以包括如下步骤:
步骤S401:向第一从节点分配第一初始工作量的第五任务。
步骤S402:接收第一从节点完成第五任务后返回的第三结果数据。
步骤S403:根据第三结果数据确定第一从节点的第一待定算力值。
步骤S404:向第一从节点分配根据待定算力值确定的初始工作量的任务,直至确定第一从节点的确定算力值。
步骤S405:根据确定算力值向第一从节点分配第一任务。
其中,当第一从节点的算力值未知时,主节点无法直接向第一从节点分配合适工作量的任务,因此,可以先向第一从节点分配一个第一初始工作量的第五任务。该第五任务的工作量较小,可以保证大部分的从节点均可以以较快的速度完成该第五任务,当第一从节点完成该第五任务并返回第三结果数据后,主节点根据第三结果数据确定第一从节点的待定算力值并增加分配给第一从节点的任务的工作量。多次执行上述步骤,直至第一从节点当前的算力值与上一算力值的差值小于预设差值时,可以认为当前的算力值为第一从节点的确定算力值,之后根据该确定算力值向第一从节点分配任务并进行算力值的实时更新。
需要说明的是,可能存在第五任务的工作量仍然超过第一从节点可以正常处理的工作量,此时,可以逐渐减少分配给第一从节点的任务的工作量,其余步骤与上述类似,直至确定第一从节点的算力值。
主节点向第一从节点分配任务,第一从节点完成任务并向主节点发送第一结果数据,主节点根据第一结果数据确定第一从节点的算力值。其中,主节点确定第一从节点的方式有多种,例如:根据第一从节点完成第一任务的耗时、根据第一从节点对应机器的硬件配置、根据第一从节点的网络参数、根据第一从节点完成的任务类型等。需要说明的是,主节点在确定从节点算力值的过程中,不限于上述限定方式,也不限定确定算力值的参数的个数,本领域技术人员可以根据实际情况进行合适的调整。
举例来说,主节点可以同时根据第一从节点完成第一任务的耗时、第一从节点对应机器的硬件配置以及第一从节点的网络参数来确定第一从节点的算力值,具体可以表示为如下公式:
其中,cv为第一从节点的当前算力值,u为第一从节点的上传速度(单位:mb/s),d为第一从节点的下载速度(单位:mb/s),s为第一从节点上传上一文件时每百兆耗时(单位:秒,首次运算时默认值为20),n为第一从节点对应的机器的CPU逻辑核心数(单位:个),m为第一从节点对应的机器的CPU核心主频(单位:Mhz),x为第一从节点对应的机器的内存(单位:Mb)。
假设:将一个4核心2.8Ghz,4G内存,上传下载均为10mb/s,上次1.2G文件耗时24秒的节点带入公式计算:
其中,由于正常情况下的cv都会是一个比较小的数字,使用起来不太方便,可以商定一个n倍的ncv当作cv使用,例如每次都将cv乘上10万,上述的cv变成114.5,方便使用。
再例如,主节点还可以根据需要完成的任务对应的服务请求的类型确定第一从节点的算力值,此时,请参照图5,图5为本申请实施例提供的一种步骤S203实施方式的流程图,步骤S203可以包括如下步骤:
步骤S501:接收与第二任务对应的服务请求。
步骤S502:根据服务请求的类型计算多个从节点的算力值并获取多个任务的难度系数。
步骤S503:根据难度系数与多个从节点的算力值的匹配关系分配多个任务,以使第一从节点接收待执行的第二任务。
其中,主节点接收的服务请求对应的服务可以包括多个待完成的任务,不同类型的任务需求的节点性能也不相同,例如:有些任务需要节点的CPU逻辑核心数大,则增大CPU逻辑核心数在计算算力值时的比重;有些任务需要节点的内存大,则增大内存在计算算力值时的比重等。此外,主节点获取的多个任务的难度系数也不相同,主节点可以根据任务的难度系数与算力值的匹配关系分配任务。例如,将难度系数高的任务分配给算力值高的任务,将难度系数低的任务分配给算力值低的任务。
在本申请实施例中,主节点可以根据某个从节点完成上一任务的完成情况数据,确定该从节点当前实时的算力值,并根据当前实时的算力值向该从节点分配新的任务,从而可以根据从节点实时的性能向从节点分配任务,使得整个服务器集群的运算效率较高。
进一步的,当服务器集群中加入新的从节点时,请参照图6,图6为本申请实施例提供另一种任务分配方法的流程图,该任务分配方法在步骤S201-步骤S204的基础上,还包括如下步骤:
步骤S601:当接入新的第二从节点时,向第二从节点分配第三预设工作量的第三任务。
步骤S602:接收第二从节点完成第三任务后返回的第二结果数据。
步骤S603:根据第二结果数据确定第二从节点的第二当前算力值。
步骤S604:根据第二当前算力值向第二从节点分配第四预设工作量的第四任务。
示例性的,当接入新的第二从节点时,与步骤S201-步骤S204的执行过程类似,首先向第二从节点分配第三预设工作量的第三任务,其中,第三预设工作量可以小于预设工作量阈值,该预设工作量阈值可以为人为事先设定好的一个较小的工作量阈值,也可以为根据估算的第二从节点的算力值确定的工作量。然后,主节点根据第二从节点完成该第三任务的第二结果数据确定当前算力值,重复执行上述步骤,直至确定第二从节点的算力值,并可以对确定的算力值进行实时的更新。
在本申请实施例中,当服务器集群中接入新的从节点时,可以向新接入的从节点分配一定量的任务,以确定新加入的从节点实时的算力值,并根据确定的算力值向该从节点继续分配任务,从而使得即使有新的节点加入服务器集群中,也可以通过实时的确定每个节点的算力值,以使整个服务器集群的运算效率较高。
下面以“为用户提供文件加密的服务”为例,举例说明上述任务分配方法:
在为用户提供文件加密的服务中,用户上传文件到服务端,服务端由主节点控制文件的分配和结果的返回,从节点接收到文件后将其加密并将结果返回给主节点。其中,整体服务要求“尽快将用户发送过来的文件加密并返回”。
首先,假设有一个主节点机器负责上述工作,然后服务器集群中有如下5个节点,和按照既定算法得到的算力值:
节点A:1核心CPU配合1G内存(算力值:200);
节点B:1核心CPU配合2G内存(算力值:250);
节点C:2核心CPU配合4G内存(算力值:700);
节点D:4核心CPU配合4G内存(算力值:1200);
节点E:8核心CPU配合16G内存(算力值:3000)。
由于加密文件更消耗的是CPU,所以CPU更强的节点的算力值也就越高。下面模拟一下该服务器集群的工作流程:
第一步,主节点收到一个30M的文件,通过计算得知该任务难度较小,所以将其分配给节点A。
第二步,主节点收到一个1G的文件,通过计算得知该任务难度较高,所以将其分配给节点D。
第三步,主节点收到一个3G的文件,通过计算得知该任务难度较高,所以将其分配给节点E。
第四步,持续运行一段时间后,所有从节点都分配到了任务并均在加密文件。
第五步,服务器集群中接入了一个新节点F:16核心CPU配合32G内存。
第六步,主节点尝试分配一个100M的文件给节点F。
第七步,主节点得到节点F返回的结果,根据结果得知节点F算力较强,故尝试分配更大的文件。
第八步,循环第六步和第七步,最终得到节点F的算力值大约为7000。
第九步,主节点收到一个1G的文件,将其分给节点D。
第十步,主节点收到节点D的结果,计算得到节点D的算力值为100(可能是其他程序占用了内存或CPU)。
第十一步,主节点收到10M的文件,将其分配给节点D(因为节点D的算力值已经变成100了)。
请参照图7,图7为本申请实施例提供的一种任务分配装置的结构框图,该任务分配装置700应用于主节点,包括:第一分配模块701,用于向第一从节点分配第一预设工作量的第一任务;第一接收模块702,用于接收所述第一从节点完成所述第一任务后返回的第一结果数据;其中,所述第一结果数据包括任务结果数据及用于表征所述第一从节点任务完成情况的完成情况数据;第一确定模块703,用于根据所述第一结果数据确定所述第一从节点的第一当前算力值;第二分配模块704,用于根据所述第一当前算力值向所述第一从节点分配第二预设工作量的第二任务。
在本申请实施例中,主节点可以根据某个从节点完成上一任务的完成情况数据,利用第一确定模块703确定该从节点当前实时的算力值,并利用第二分配模块704根据当前实时的算力值向该从节点分配新的任务,从而可以根据从节点实时的性能向从节点分配任务,使得整个服务器集群的运算效率较高。
进一步的,所述任务分配装置700还包括:第三分配模块,用于当接入新的第二从节点时,向所述第二从节点分配第三预设工作量的第三任务;其中,所述第三预设工作量小于预设工作量阈值;第二接收模块,用于接收所述第二从节点完成所述第三任务后返回的第二结果数据;第二确定模块,用于根据所述第二结果数据确定所述第二从节点的第二当前算力值;第四分配模块,用于根据所述第二当前算力值向所述第二从节点分配第四预设工作量的第四任务。
在本申请实施例中,当服务器集群中接入新的从节点时,可以利用第三分配模块向新接入的从节点分配一定量的任务,以确定新加入的从节点实时的算力值,并根据确定的算力值利用第四分配模块向该从节点继续分配任务,从而使得即使有新的节点加入服务器集群中,也可以通过实时的确定每个节点的算力值,以使整个服务器集群的运算效率较高。
进一步的,所述第一分配模块701还用于:获取所述第一从节点的初始算力值;根据所述初始算力值向所述第一从节点分配所述第一任务。
在本申请实施例中,第一分配模块701可以根据预先获得的从节点的初始算力值向该从节点分配任务,然后根据该节点完成该任务的情况计算该节点实时的算力值,从而后续可以根据该从节点实时的性能向从节点分配任务,使得整个服务器集群的运算效率较高。
进一步的,所述第一分配模块701还用于:向所述第一从节点分配第一初始工作量的第五任务;接收所述第一从节点完成所述第五任务后返回的第三结果数据;根据所述第三结果数据确定所述第一从节点的第一待定算力值;向所述第一从节点分配根据待定算力值确定的初始工作量的任务,直至确定所述第一从节点的确定算力值;其中,当所述第一从节点当前的算力值与上一算力值的差值小于预设差值时,所述当前的算力值为所述确定算力值;根据所述确定算力值向所述第一从节点分配所述第一任务。
在本申请实施例中,第一分配模块701向从节点分配一定工作量的任务,并根据当前任务确定该从节点的算力值,然后改变分配给该从节点的任务的工作量,继续根据当任务确定该从节点的算力值,直到确定该从节点的算力值作为当前算力值,从而可以根据该从节点实时的性能向从节点分配任务,使得整个服务器集群的运算效率较高。
进一步的,所述第一确定模块703还用于:根据所述第一结果数据中所述第一从节点完成所述第一任务的任务耗时,计算所述第一当前算力值。
在本申请实施例中,第一确定模块703可以根据从节点完成任务的耗时确定其算力值,任务耗时越长说明该节点完成任务的能力越低。
进一步的,所述当前算力值为根据如下公式计算得到:
其中,cv为所述第一从节点的所述当前算力值,u为所述第一从节点的上传速度,d为所述第一从节点的下载速度,s为所述第一从节点上传上一文件时每百兆耗时,n为所述第一从节点对应的机器的CPU逻辑核心数,m为所述第一从节点对应的所述机器的CPU核心主频,x为所述第一从节点对应的所述机器的内存。
在本申请实施例中,第一确定模块703可以根据从节点对应的机器的硬件配置、从节点的网络参数以及从节点完成任务的耗时确定其算力值,硬件配置越差、网络参数越差、任务耗时越长说明该从节点完成任务的能力越低。
进一步的,所述第一确定模块703还用于:根据所述第一结果数据中所述第一从节点完成的所述第一任务的任务类型时,计算所述第一当前算力值。
在本申请实施例中,由于不同的任务影响从节点算力值的因素及比例不同,第一确定模块703可以根据不同任务的任务类型确定从节点的算力值,从而保证实时确定的从节点的算力值更加准确,使得整个服务器集群的运算效率较高。
进一步的,所述任务分配装置700还包括:第三接收模块,用于接收与所述第二任务对应的服务请求;其中,所述服务请求对应的服务包括多个任务;计算模块,用于根据所述服务请求的类型计算多个从节点的算力值并获取所述多个任务的难度系数;其中,所述多个从节点包括所述第一从节点;第五分配模块,用于根据所述难度系数与所述多个从节点的算力值的匹配关系分配所述多个任务,以使所述第一从节点接收待执行的所述第二任务。
在本申请实施例中,第五分配模块可以根据任务的难度系数与多个从节点的算力值的匹配关系分配任务,难度系数大的任务分配给算力值高的从节点,难度系数小的任务分配给算力值低的从节点,从而使得整个服务器集群的运算效率较高。
请参照图8,图8为本申请实施例提供的一种电子设备的结构框图,该电子设备包括:至少一个处理器801,至少一个通信接口802,至少一个存储器803和至少一个通信总线804。其中,通信总线804用于实现这些组件直接的连接通信,通信接口802用于与其他节点设备进行信令或数据的通信,存储器803存储有处理器801可执行的机器可读指令。当电子设备运行时,处理器801与存储器803之间通过通信总线804通信,机器可读指令被处理器801调用时执行上述任务分配方法。
处理器801可以是一种集成电路芯片,具有信号处理能力。上述处理器801可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本申请实施例中公开的各种方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器803可以包括但不限于随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
可以理解,图8所示的结构仅为示意,电子设备还可包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配置。图8中所示的各组件可以采用硬件、软件或其组合实现。于本申请实施例中,电子设备可以是,但不限于台式机、笔记本电脑、智能手机、智能穿戴设备、车载设备等实体设备,还可以是虚拟机等虚拟设备。另外,电子设备也不一定是单台设备,还可以是多台设备的组合,例如服务器集群,等等。于本申请实施例中,任务分配方法中的主节点从节点均可以采用图8示出的电子设备实现。
本申请实施例还提供一种计算机程序产品,包括存储在非暂态计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述实施例中任务分配方法的步骤,例如包括:向第一从节点分配第一预设工作量的第一任务;接收所述第一从节点完成所述第一任务后返回的第一结果数据;其中,所述第一结果数据包括任务结果数据及用于表征所述第一从节点任务完成情况的完成情况数据;根据所述第一结果数据确定所述第一从节点的第一当前算力值;根据所述第一当前算力值向所述第一从节点分配第二预设工作量的第二任务。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (7)
1.一种任务分配方法,其特征在于,应用于主节点,包括:
向第一从节点分配第一预设工作量的第一任务;
接收所述第一从节点完成所述第一任务后返回的第一结果数据;其中,所述第一结果数据包括任务结果数据及用于表征所述第一从节点任务完成情况的完成情况数据;
根据所述第一结果数据确定所述第一从节点的第一当前算力值;所述第一结果数据包括第一从节点完成第一任务的耗时、第一从节点对应机器的硬件配置、第一从节点的网络参数、第一从节点完成的任务类型;
接收与第二任务对应的服务请求;其中,所述服务请求对应的服务包括多个任务;
根据所述服务请求的类型计算多个从节点的算力值并获取所述多个任务的难度系数;其中,所述多个从节点包括所述第一从节点;
根据所述难度系数与所述多个从节点的算力值的匹配关系分配所述多个任务,以使所述第一从节点接收待执行的所述第二任务;
根据所述第一当前算力值向所述第一从节点分配第二预设工作量的第二任务;
当接入新的第二从节点时,向所述第二从节点分配第三预设工作量的第三任务;其中,所述第三预设工作量小于预设工作量阈值;
接收所述第二从节点完成所述第三任务后返回的第二结果数据;
根据所述第二结果数据确定所述第二从节点的第二当前算力值;
根据所述第二当前算力值向所述第二从节点分配第四预设工作量的第四任务。
2.根据权利要求1所述的任务分配方法,其特征在于,所述向第一从节点分配第一预设工作量的第一任务,包括:
获取所述第一从节点的初始算力值;
根据所述初始算力值向所述第一从节点分配所述第一任务。
3.根据权利要求1所述的任务分配方法,其特征在于,所述向第一从节点分配第一预设工作量的第一任务,包括:
向所述第一从节点分配第一初始工作量的第五任务;
接收所述第一从节点完成所述第五任务后返回的第三结果数据;
根据所述第三结果数据确定所述第一从节点的第一待定算力值;
向所述第一从节点分配根据待定算力值确定的初始工作量的任务,直至确定所述第一从节点的确定算力值;其中,当所述第一从节点当前的算力值与上一算力值的差值小于预设差值时,所述当前的算力值为所述确定算力值;
根据所述确定算力值向所述第一从节点分配所述第一任务。
4.根据权利要求1-3任一项所述的任务分配方法,其特征在于,所述根据所述第一结果数据确定所述第一从节点的第一当前算力值,包括:
根据所述第一结果数据中所述第一从节点完成所述第一任务的任务耗时,计算所述第一当前算力值。
5.根据权利要求1所述的任务分配方法,其特征在于,所述根据所述第一结果数据确定所述第一从节点的第一当前算力值,包括:
根据所述第一结果数据中所述第一从节点完成的所述第一任务的任务类型时,计算所述第一当前算力值。
6.一种任务分配装置,其特征在于,应用于主节点,包括:
第一分配模块,用于向第一从节点分配第一预设工作量的第一任务;
第一接收模块,用于接收所述第一从节点完成所述第一任务后返回的第一结果数据;其中,所述第一结果数据包括任务结果数据及用于表征所述第一从节点任务完成情况的完成情况数据;
第一确定模块,用于根据所述第一结果数据确定所述第一从节点的第一当前算力值;所述第一结果数据包括第一从节点完成第一任务的耗时、第一从节点对应机器的硬件配置、第一从节点的网络参数、第一从节点完成的任务类型;
第二分配模块,用于根据所述第一当前算力值向所述第一从节点分配第二预设工作量的第二任务;
第三分配模块,用于当接入新的第二从节点时,向所述第二从节点分配第三预设工作量的第三任务;其中,所述第三预设工作量小于预设工作量阈值;
第三接收模块,用于接收与第二任务对应的服务请求;其中,所述服务请求对应的服务包括多个任务;
计算模块,用于根据所述服务请求的类型计算多个从节点的算力值并获取所述多个任务的难度系数;其中,所述多个从节点包括所述第一从节点;
第二接收模块,用于接收所述第二从节点完成所述第三任务后返回的第二结果数据;
第二确定模块,用于根据所述第二结果数据确定所述第二从节点的第二当前算力值;
第四分配模块,用于根据所述第二当前算力值向所述第二从节点分配第四预设工作量的第四任务;
第五分配模块,用于根据所述难度系数与所述多个从节点的算力值的匹配关系分配所述多个任务,以使所述第一从节点接收待执行的所述第二任务。
7.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令被计算机运行时,使所述计算机执行如权利要求1-5任一项所述的任务分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911111740.1A CN110837421B (zh) | 2019-11-13 | 2019-11-13 | 一种任务分配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911111740.1A CN110837421B (zh) | 2019-11-13 | 2019-11-13 | 一种任务分配方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110837421A CN110837421A (zh) | 2020-02-25 |
CN110837421B true CN110837421B (zh) | 2022-09-20 |
Family
ID=69574917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911111740.1A Active CN110837421B (zh) | 2019-11-13 | 2019-11-13 | 一种任务分配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110837421B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111367680A (zh) * | 2020-03-31 | 2020-07-03 | 中国建设银行股份有限公司 | 一种作业任务分配方法、装置、服务器、系统及存储介质 |
CN115297014B (zh) * | 2022-09-29 | 2022-12-27 | 浪潮通信信息系统有限公司 | 零信任算网操作系统、管理方法、电子设备、存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2015227464A1 (en) * | 2012-01-20 | 2015-10-08 | Wise, Michelle | Data Management System and Method |
CN110351375A (zh) * | 2019-07-16 | 2019-10-18 | 深圳市网心科技有限公司 | 一种数据处理方法、装置及计算机装置、可读存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9602423B2 (en) * | 2013-06-28 | 2017-03-21 | Pepperdata, Inc. | Systems, methods, and devices for dynamic resource monitoring and allocation in a cluster system |
CN103716381B (zh) * | 2013-12-12 | 2017-04-12 | 华为技术有限公司 | 一种分布式系统的控制方法,及管理节点 |
CN104598318B (zh) * | 2014-12-30 | 2018-12-04 | 北京奇艺世纪科技有限公司 | 节点计算能力的汇报方法和计算节点 |
CN106095586A (zh) * | 2016-06-23 | 2016-11-09 | 东软集团股份有限公司 | 一种任务分配方法、装置及系统 |
CN109324901B (zh) * | 2018-09-20 | 2021-09-03 | 北京京东尚科信息技术有限公司 | 基于区块链的深度学习分布式计算方法、系统和节点 |
CN109783224B (zh) * | 2018-12-10 | 2022-10-14 | 平安科技(深圳)有限公司 | 基于负载调配的任务分配方法、装置及终端设备 |
CN110231987A (zh) * | 2019-06-21 | 2019-09-13 | 深圳市网心科技有限公司 | 一种数据处理方法及相关装置 |
-
2019
- 2019-11-13 CN CN201911111740.1A patent/CN110837421B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2015227464A1 (en) * | 2012-01-20 | 2015-10-08 | Wise, Michelle | Data Management System and Method |
CN110351375A (zh) * | 2019-07-16 | 2019-10-18 | 深圳市网心科技有限公司 | 一种数据处理方法、装置及计算机装置、可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110837421A (zh) | 2020-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108052615B (zh) | 访问请求的处理方法、装置、介质及电子设备 | |
CN110351375B (zh) | 一种数据处理方法、装置及计算机装置、可读存储介质 | |
CN106302780B (zh) | 集群设备批量传输数据的方法、装置及系统、服务器 | |
CN110837421B (zh) | 一种任务分配方法及装置 | |
CN113849312B (zh) | 数据处理任务的分配方法、装置、电子设备及存储介质 | |
CN115617511A (zh) | 资源数据处理的方法、装置、电子设备和存储介质 | |
CN113361913A (zh) | 一种通信业务编排方法、装置、计算机设备及存储介质 | |
CN109144846B (zh) | 用于测试服务器的测试方法和装置 | |
CN108259568B (zh) | 任务分配方法、装置、计算机可读存储介质及电子设备 | |
CN112905338A (zh) | 计算资源自动分配方法及装置 | |
CN112506584A (zh) | 资源文件加载方法、装置、设备、存储介质以及产品 | |
CN115640113A (zh) | 多平面弹性调度方法 | |
CN112003930A (zh) | 任务分配方法、装置、设备及存储介质 | |
CN110502343B (zh) | 一种资源分配方法、系统、装置及计算机可读存储介质 | |
CN116703071A (zh) | 资源共享方法、装置及设备和存储介质 | |
CN109842665B (zh) | 用于任务分配服务器的任务处理方法和装置 | |
CN114338690B (zh) | 服务器选择方法、装置及电子设备 | |
CN116185578A (zh) | 计算任务的调度方法和计算任务的执行方法 | |
CN114612037A (zh) | 一种仓库信息的管理方法和系统 | |
CN110362575B (zh) | 一种生成数据的全局索引的方法及装置 | |
CN113918344A (zh) | 一种资源需求分配方法、装置、设备及计算机可读介质 | |
CN115080220A (zh) | 云资源分配方法及设备 | |
CN111142661B (zh) | 信源识别方法、装置 | |
CN116743589B (zh) | 云主机迁移方法、装置及电子设备 | |
TWI785644B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |