CN108259568A - 任务分配方法、装置、计算机可读存储介质及电子设备 - Google Patents
任务分配方法、装置、计算机可读存储介质及电子设备 Download PDFInfo
- Publication number
- CN108259568A CN108259568A CN201711408966.9A CN201711408966A CN108259568A CN 108259568 A CN108259568 A CN 108259568A CN 201711408966 A CN201711408966 A CN 201711408966A CN 108259568 A CN108259568 A CN 108259568A
- Authority
- CN
- China
- Prior art keywords
- machines
- throughput
- target assignment
- pending task
- functional relation
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开涉及一种任务分配方法、装置、计算机可读存储介质及电子设备。该方法应用于分布式***,该方法包括:当存在多个待执行任务时,获取所述分布式***中各空闲机器的***吞吐量和网络吞吐量;根据所述待执行任务的数量、所述各空闲机器的所述***吞吐量和所述网络吞吐量,确定目标分配机器数S,其中,所述目标分配机器数S小于或等于所述分布式***中的空闲机器数;从所述分布式***的所有空闲机器中,确定出S台用于执行所述多个待执行任务的目标空闲机器;将所述多个待执行任务分配给所述S台目标空闲机器执行。由此,可在保证多个待执行任务有效执行的同时,尽可能降低分布式***的整体损耗,进而提升了该分布式***的服务效率和用户体验。
Description
技术领域
本公开涉及任务调度领域,具体地,涉及一种任务分配方法、装置、计算机可读存储介质及电子设备。
背景技术
客户智能分析平台作为一款大数据分析产品,一直致力于让用户获得快速构建数据服务、共享数据分析带来的价值。对于海量用户共享大数据分析产品这一模式,会存在很多诸如数据共享、数据安全、任务优化调度、用户等待任务时间等问题,这些问题直接影响到了用户体验,因此,亟待进行优化、改进客户智能分析平台。针对目前通用的先进先出等待模式,处于队尾的用户将处于长期等待的状态,导致产品服务效率低下、用户体验差。
发明内容
为了解决相关技术中存在的问题,本公开提供一种任务分配方法、装置、计算机可读存储介质及电子设备。
为了实现上述目的,本公开提供一种任务分配方法,所述方法应用于分布式***,所述方法包括:
当存在多个待执行任务时,获取所述分布式***中各空闲机器的***吞吐量和网络吞吐量;
根据所述待执行任务的数量、所述各空闲机器的所述***吞吐量和所述网络吞吐量,确定目标分配机器数S,其中,所述目标分配机器数S小于或等于所述分布式***中的空闲机器数;
从所述分布式***的所有空闲机器中,确定出S台用于执行所述多个待执行任务的目标空闲机器;
将所述多个待执行任务分配给所述S台目标空闲机器执行。
可选地,所述根据所述待执行任务的数量、所述各空闲机器的所述***吞吐量和所述网络吞吐量,确定目标分配机器数S,包括:
根据所述待执行任务的数量、所述各空闲机器的所述***吞吐量和所述网络吞吐量,获得所述多个待执行任务的实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述多个待执行任务的实际执行总时间与所述目标分配机器数S之间的函数关系;
根据所述实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述实际执行总时间与所述目标分配机器数S之间的函数关系,确定目标分配机器数S。
可选地,所述根据所述待执行任务的数量、所述各空闲机器的所述***吞吐量和所述网络吞吐量,获得所述多个待执行任务的实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述多个待执行任务的实际执行总时间与所述目标分配机器数S之间的函数关系,包括:
根据所述各空闲机器的所述***吞吐量和所述网络吞吐量,确定所述分布式***中所有空闲机器的平均***吞吐量和平均网络吞吐量;
针对每个待执行任务,根据所述平均***吞吐量和所述平均网络吞吐量,预估该待执行任务的运行时间;
根据所述待执行任务的数量、所述平均***吞吐量、所述平均网络吞吐量以及每个待执行任务的运行时间,获得所述多个待执行任务的实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述多个待执行任务的实际执行总时间与所述目标分配机器数S之间的函数关系。
可选地,所述根据所述待执行任务的数量、所述平均***吞吐量、所述平均网络吞吐量以及每个待执行任务的运行时间,获得的所述多个待执行任务的实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述多个待执行任务的实际执行总时间与所述目标分配机器数S之间的函数关系如下:
其中,JT为所述实际执行总时间;JC为所述实际内存总消耗;VCavg为所述平均***吞吐量;DCavg为所述平均网络吞吐量;TSi为所述第i个待执行任务的运行时间;M为所述待执行任务的数量;B为总线位宽。
可选地,所述根据所述实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述实际执行总时间与所述目标分配机器数S之间的函数关系,确定目标分配机器数S,包括:
根据所述实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述实际执行总时间与所述目标分配机器数S之间的函数关系,获取使得所述实际内存总消耗和所述实际执行总时间的乘积取得最小值时的参数值;
将所述参数值向上取整,以作为所述目标分配机器数S。
本公开还提供一种任务分配装置,所述装置应用于分布式***,所述装置包括:
获取模块,用于当存在多个待执行任务时,获取所述分布式***中各空闲机器的***吞吐量和网络吞吐量;
第一确定模块,用于根据所述待执行任务的数量、所述获取模块获取到的所述各空闲机器的所述***吞吐量和所述网络吞吐量,确定目标分配机器数S,其中,所述目标分配机器数S小于或等于所述分布式***中的空闲机器数;
第二确定模块,用于从所述分布式***的所有空闲机器中,确定出S台用于执行所述多个待执行任务的目标空闲机器;
分配模块,用于将所述多个待执行任务分配给所述第二确定模块确定出的所述S台目标空闲机器执行。
可选地,所述第一确定模块包括:
第一确定子模块,用于根据所述待执行任务的数量、所述获取模块获取到的所述各空闲机器的所述***吞吐量和所述网络吞吐量,获得所述多个待执行任务的实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述多个待执行任务的实际执行总时间与所述目标分配机器数S之间的函数关系;
第二确定子模块,用于根据所述第一确定子模块确定出的所述实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述实际执行总时间与所述目标分配机器数S之间的函数关系,确定目标分配机器数S。
可选地,所述第一确定子模块包括:
吞吐量确定子模块,用于根据所述获取模块获取到的所述各空闲机器的所述***吞吐量和所述网络吞吐量,确定所述分布式***中所有空闲机器的平均***吞吐量和平均网络吞吐量;
运行时间预估子模块,用于针对每个待执行任务,根据所述吞吐量确定子模块确定出的所述平均***吞吐量和所述平均网络吞吐量,预估该待执行任务的运行时间;
函数关系确定子模块,用于根据所述待执行任务的数量、所述吞吐量确定子模块确定出的所述平均***吞吐量、所述平均网络吞吐量以及所述运行时间预估子模块估计出的每个待执行任务的运行时间,获得所述多个待执行任务的实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述多个待执行任务的实际执行总时间与所述目标分配机器数S之间的函数关系。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开提供的所述任务分配方法的步骤。
本公开还提供一种电子设备,包括:
本公开提供的所述计算机可读存储介质;以及
一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。
在上述技术方案中,根据待执行任务的数量、以及获取到的分布式***中各空闲机器的***吞吐量和网络吞吐量来确定用于执行多个待执行任务的目标分配机器数,这样,可以在保证多个待执行任务有效执行的同时,尽可能降低分布式***的整体损耗,进而提升了该分布式***的服务效率和用户体验。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种分布式***的结构框图。
图2是根据一示例性实施例示出的一种任务分配方法的流程图。
图3是根据一示例性实施例示出的一种确定目标分配机器数的方法的流程图。
图4A是根据一示例性实施例示出的一种确定函数关系的方法的流程图。
图4B是根据另一示例性实施例示出的一种确定目标分配机器数的方法的流程图。
图5是根据一示例性实施例示出的一种任务分配装置的框图。
图6是根据另一示例性实施例示出的一种任务分配装置的框图。
图7是根据另一示例性实施例示出的一种任务分配装置的框图。
图8是根据另一示例性实施例示出的一种任务分配装置的框图。
图9是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
图1是根据一示例性实施例示出的一种分布式***的结构框图。如图1所示,该分布式***可以包括至少一个客户端、主节点和多个分节点(包括多个空闲机器和多个非空闲机器)。其中,主节点与每个客户端、每个分节点分别连接。当客户端将任务提交至主节点后,主节点可以将接收到任务添加到待执行任务队列中,并将待执行任务队列中的任务分配给各分节点,以在各分节点上执行相应的任务。此外,该分布式***中的客户端和分节点可以随时增减,即分布式***中的各分节点、客户端是动态变化的。
具体来说,如图1所示,上述的分布式***包括:第一客户端110、第二客户端111、主节点120以及第一分节点121、第二分节点122、……、第八分节点128和第九分节点129。其中,第一客户端110和主节点120之间、第二客户端111与主节点120之间、以及主节点120与各分节点(第一分节点121、第二分节点122、……、第八分节点128和第九分节点129)之间可以经由网络来进行通信。并且,第一客户端110和第二客户端111可以例如是笔记本电脑、台式电脑等等,图1中以第一客户端110是平板电脑、第二客户端111是台式电脑来示意。另外,主节点120和各分节点(第一分节点121、第二分节点122、……、第八分节点128和第九分节点129)可以例如是平板电脑、笔记本电脑、服务器等等,图1中以主节点120、各分节点(第一分节点121、第二分节点122、……、第八分节点128和第九分节点129)均是服务器来示意。
图2是根据一示例性实施例示出的一种任务分配方法的流程图,其中,该方法可以应用于分布式***,例如,图1中所示的分布式***。如图2所示,该任务分配方法可以包括以下步骤。
在步骤201中,当存在多个待执行任务时,获取分布式***中各空闲机器的***吞吐量和网络吞吐量。
在本公开中,该***吞吐量为单位时间内各空闲机器的中央处理器(CPU)从存储设备读取、处理、存储信息的量,即运行时的***吞吐量;网络吞吐量为各空闲机器能够接收并转发的最大数据速率,即运行时的网络吞吐量。并且,分布式***可以通过多种方式来获取到各空闲机器的***吞吐量和网络吞吐量,在一种实施方式中,可以在分布式***中的相应存储模块存储有各空闲机器的配置信息,其中,该配置信息可以包括各空闲机器的***吞吐量和网络吞吐量。这样,当存在多个待执行任务时,通过访问该分布式***中的相应存储模块即可获取到各空闲机器的***吞吐量和网络吞吐量。
在另一种实施方式,可以根据历史时段内的各空闲机器的***吞吐量的历史值和网络吞吐量的历史值来确定各空闲机器的***吞吐量和网络吞吐量。示例地,可以将上述历史时段内的各空闲机器的***吞吐量的历史值的平均值确定为相应空闲机器的***吞吐量,以及将上述历史时段内的各空闲机器的网络吞吐量的历史值的平均值确定为相应空闲机器的网络吞吐量。其中,上述历史时段可以是过去的任意时段,例如,最近的某个时段,在本公开中不作具体限定。
在又一种实施方式中,可以先获取分布式***中的各空闲机器空闲时的***吞吐量(例如,25.6GB/s)和空闲时的网络吞吐量(例如,1GB/s),并根据该空闲时的***吞吐量和空闲时的网络吞吐量来估算相应空闲机器的***吞吐量(即运行时的***吞吐量)和网络吞吐量(即运行时的网络吞吐量)。
在步骤202中,根据待执行任务的数量、各空闲机器的***吞吐量和网络吞吐量,确定目标分配机器数S。
在本公开中,该目标分配机器数S小于或等于分布式***中的空闲机器数。在确定出各空闲机器的***吞吐量和网络吞吐量后,可以根据各空闲机器的***吞吐量和网络吞吐量、以及待执行任务的数量来确定用于执行上述多个待执行任务的目标分配机器数S。具体来说,可以通过如图3中所示的步骤2021和步骤2022来确定该目标分配机器数S。
在步骤2021中,根据待执行任务的数量、各空闲机器的***吞吐量和网络吞吐量,获得多个待执行任务的实际内存总消耗与目标分配机器数S之间的函数关系、以及多个待执行任务的实际执行总时间与目标分配机器数S之间的函数关系。
在一种实施方式中,如图4A所示,可以通过以下步骤20211~20213来获取多个待执行任务的实际内存总消耗与目标分配机器数S之间的函数关系、以及多个待执行任务的实际执行总时间与目标分配机器数S之间的函数关系。
在步骤20211中,根据各空闲机器的***吞吐量和网络吞吐量,确定分布式***中所有空闲机器的平均***吞吐量和平均网络吞吐量。
在本公开中,在上述步骤201确定出各空闲机器的***吞吐量和网络吞吐量后,可以先确定出上述分布式***中所有空闲机器的平均***吞吐量和平均网络吞吐量。示例地,可以通过以下等式(1)来确定分布式***中所有空闲机器的平均***吞吐量:
其中,VCavg为所述平均***吞吐量;VCi为所述分布式***中第i个空闲机器的***吞吐量;N为所述分布式***中的空闲机器数,且N≥S。
示例地,可以通过以下等式(2)来确定分布式***中所有空闲机器的平均网络吞吐量:
其中,DCavg为所述平均网络吞吐量;DCi为所述分布式***中第i个空闲机器的网络吞吐量;N为所述分布式***中的空闲机器数,且N≥S。
在步骤20212中,针对每个待执行任务,根据平均***吞吐量和平均网络吞吐量,预估该待执行任务的运行时间。
在本公开中,针对每个待执行任务,该待执行任务的运行时间为从客户端发出任务请求到收到处理结果这段时间,也就是说,待执行任务的运行时间为发出请求的时间、处理时间、回传处理结果的时间的总和,即各待执行任务的运行时间=发出请求的时间+处理时间+回传处理结果的时间。
示例地,可以通过以下等式(3)来确定每个待执行任务的运行时间:
TSi=Ti1+Ti2+Ti3(3)
其中,TSi为第i个待执行任务的所述运行时间;Ti1为第i个待执行任务相对应的发出请求的时间,且(Di为第i个待执行任务所包含的字节数);Ti2为第i个待执行任务的处理时间,且Ti3为第i个待执行任务相应的回传处理结果的时间,且
在步骤20213中,根据待执行任务的数量、平均***吞吐量、平均网络吞吐量以及每个待执行任务的运行时间,获得多个待执行任务的实际内存总消耗与目标分配机器数S之间的函数关系、以及多个待执行任务的实际执行总时间与目标分配机器数S之间的函数关系。
在本公开中,可以根据上述步骤20211确定出的各空闲机器的平均***吞吐量和平均网络吞吐量、以及上述步骤20212确定出的每个待执行任务的运行时间,来确定多个待执行任务的实际内存总消耗与目标分配机器数S之间的函数关系、以及多个待执行任务的实际执行总时间与目标分配机器数S之间的函数关系。
示例地,可以通过以下等式(4)来确定多个待执行任务的实际内存总消耗与目标分配机器数S之间的函数关系:
其中,JC为所述实际内存总消耗;M为所述待执行任务的数量;B为总线位宽。
另外,可以通过请求到达率(即分布式***接收到任务请求的速率)和服务效率(即分布式***处理任务请求的速率),并结合待执行任务的数量、平均***吞吐量、平均网络吞吐量以及每个待执行任务的运行时间,来获得上述多个待执行任务的实际执行总时间与目标分配机器数S之间的函数关系。具体来说,请求到达率服务效率并且,当任务请求达到后,该任务立即被服务(即被处理)时,分布式***的任务分配效率和执行效率高,即,当λ=μ时,分布式***的任务分配效率和执行效率高。当λ=μ时,可以得到结合以上等式(4)可得实际执行总时间与目标分配机器数S之间的函数关系为(其中,JT为所述实际执行总时间)。
即,获得的多个待执行任务的实际内存总消耗与目标分配机器数S之间的函数关系、以及多个待执行任务的实际执行总时间与目标分配机器数S之间的函数关系如以下等式(5)所示:
在步骤2022中,根据实际内存总消耗与目标分配机器数S之间的函数关系、以及实际执行总时间与目标分配机器数S之间的函数关系,确定目标分配机器数S。
在本公开中,可以根据上述步骤2021确定出的实际内存总消耗与目标分配机器数S之间的函数关系、以及实际执行总时间与目标分配机器数S之间的函数关系来确定目标分配机器数S。具体来说,可以通过如图4B中所示的步骤20221和步骤20222来确定目标分配机器数S。
在步骤20221中,根据实际内存总消耗与目标分配机器数S之间的函数关系、以及实际执行总时间与目标分配机器数S之间的函数关系,获取使得实际内存总消耗和实际执行总时间的乘积取得最小值时的参数值。
在步骤20222中,将参数值向上取整,以作为目标分配机器数S。
在本公开中,实际内存总消耗和实际执行总时间的乘积越小,表明分布式***的任务执行效率越高,因此,通过将获取到的使得实际内存总消耗和实际执行总时间的乘积取得最小值时的参数值向上取整后得到的目标分配机器数S能够保证分布式***中各待执行任务的高效率执行。
示例地,实际内存总消耗和实际执行总时间的乘积如以下等式(6)所示:
令并对其求导,可得到使得实际内存总消耗和实际执行总时间的乘积取得最小值时的参数值则目标分配机器数
返回图2,在步骤203中,从分布式***的所有空闲机器中,确定出S台用于执行多个待执行任务的目标空闲机器。
在本公开中,在确定出目标分配机器数S后,可以从分布式***的所有空闲机器中随机选取S台用于执行多个待执行任务的目标空闲机器,也可以从分布式***的所有机器中选取***吞吐量或网络吞吐量排名在前S位的S台用于执行多个待执行任务的目标空闲机器。
在步骤204中,将多个待执行任务分配给S台目标空闲机器执行。
在一种实施方式中,在确定出S台用于执行多个待执行任务的目标空闲机器后,可以按照以下几种方式来将多个待执行任务分配给该S台目标空闲机器执行:(1)当S=M时,可以按照一对一的方式将M个待执行任务分配给S台目标空闲机器执行,其中,M为所述待执行任务的数量;(2)当S>M时,可以将M个待执行任务分配给S台目标空闲机器中的前M台目标空闲机器执行,或者从S台目标空闲机器中的随机确定出M台目标空闲机器,以分配给M个待执行任务;(3)当S<M时,可以将前S个待执行任务分配给S台目标空闲机器执行,之后,再根据上述(1)~(3)中所述的方式来将剩余的M-S个待执行任务分配给S台目标空闲机器执行。
示例地,分布式***中有15个待执行任务和10台目标空闲机,即M=15,S=10,可见,S<M,此时,可以将前10个待执行任务分配给10台目标空闲机器执行,由于M-S=5<S,此时,可以根据上述(2)中所述的方式来将剩余的5个待执行任务分配给10台目标空闲机器执行,即将剩余的5个待执行任务分配给10台目标空闲机器中的前5台目标空闲机器执行,或者从10台目标空闲机器中的随机确定出5台目标空闲机器,以分配给剩余的5个待执行任务。
在上述技术方案中,根据待执行任务的数量、以及获取到的分布式***中各空闲机器的***吞吐量和网络吞吐量来确定用于执行多个待执行任务的目标分配机器数,这样,可以在保证多个待执行任务有效执行的同时,尽可能降低分布式***的整体损耗,进而提升了该分布式***的服务效率和用户体验。
图5是根据一示例性实施例示出的一种任务分配装置,所述装置应用于分布式***。参照图5,该装置500可以包括:获取模块501,用于当存在多个待执行任务时,获取所述分布式***中各空闲机器的***吞吐量和网络吞吐量;第一确定模块502,用于根据所述待执行任务的数量、所述获取模块501获取到的所述各空闲机器的所述***吞吐量和所述网络吞吐量,确定目标分配机器数S,其中,所述目标分配机器数S小于或等于所述分布式***中的空闲机器数;第二确定模块503,用于从所述分布式***的所有空闲机器中,确定出S台用于执行所述多个待执行任务的目标空闲机器;分配模块504,用于将所述多个待执行任务分配给所述第二确定模块503确定出的所述S台目标空闲机器执行。
图6是根据另一示例性实施例示出的一种任务分配装置,所述装置应用于分布式***。参照图6,上述第一确定模块502可以包括:第一确定子模块5021,用于根据所述待执行任务的数量、所述获取模块501获取到的所述各空闲机器的所述***吞吐量和所述网络吞吐量,获得所述多个待执行任务的实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述多个待执行任务的实际执行总时间与所述目标分配机器数S之间的函数关系;第二确定子模块5022,用于根据所述第一确定子模块5021确定出的所述实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述实际执行总时间与所述目标分配机器数S之间的函数关系,确定目标分配机器数S。
图7是根据另一示例性实施例示出的一种任务分配装置,所述装置应用于分布式***。参照图7,上述第一确定子模块5021可以包括:吞吐量确定子模块50211,用于根据所述获取模块501获取到的所述各空闲机器的所述***吞吐量和所述网络吞吐量,确定所述分布式***中所有空闲机器的平均***吞吐量和平均网络吞吐量;运行时间预估子模块50212,用于针对每个待执行任务,根据所述吞吐量确定子模块50211确定出的所述平均***吞吐量和所述平均网络吞吐量,预估该待执行任务的运行时间;函数关系确定子模块50213,用于根据所述待执行任务的数量、所述吞吐量确定子模块50211确定出的所述平均***吞吐量、所述平均网络吞吐量以及所述运行时间预估子模块50212估计出的每个待执行任务的运行时间,获得所述多个待执行任务的实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述多个待执行任务的实际执行总时间与所述目标分配机器数S之间的函数关系。
可选地,所述函数关系确定子模块50213根据所述待执行任务的数量、所述平均***吞吐量、所述平均网络吞吐量以及每个待执行任务的运行时间,获得的所述多个待执行任务的实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述多个待执行任务的实际执行总时间与所述目标分配机器数S之间的函数关系如以上等式(5)所示。
图8是根据另一示例性实施例示出的一种任务分配装置,所述装置应用于分布式***。参照图8,上述第二确定子模块5022可以包括:参数值获取子模块50221,用于根据所述第一确定子模块5021确定出的所述实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述实际执行总时间与所述目标分配机器数S之间的函数关系,获取使得所述实际内存总消耗和所述实际执行总时间的乘积取得最小值时的参数值;目标分配机器数确定子模块50222,用于将所述参数值获取子模块50221获取到的所述参数值向上取整,以作为所述目标分配机器数S。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图9是根据一示例性实施例示出的一种电子设备900的框图。例如,电子设备900可以被提供为一服务器。参照图9,电子设备900包括处理器922,其数量可以为一个或多个,以及存储器932,用于存储可由处理器922执行的计算机程序。存储器932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器922可以被配置为执行该计算机程序,以执行上述的任务分配方法。
另外,电子设备900还可以包括电源组件926和通信组件950,该电源组件926可以被配置为执行电子设备900的电源管理,该通信组件950可以被配置为实现电子设备900的通信,例如,有线或无线通信。此外,该电子设备900还可以包括输入/输出(I/O)接口958。电子设备900可以操作基于存储在存储器932的操作***,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,例如包括程序指令的存储器932,上述程序指令可由电子设备900的处理器922执行以完成上述的任务分配方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (10)
1.一种任务分配方法,所述方法应用于分布式***,其特征在于,所述方法包括:
当存在多个待执行任务时,获取所述分布式***中各空闲机器的***吞吐量和网络吞吐量;
根据所述待执行任务的数量、所述各空闲机器的所述***吞吐量和所述网络吞吐量,确定目标分配机器数S,其中,所述目标分配机器数S小于或等于所述分布式***中的空闲机器数;
从所述分布式***的所有空闲机器中,确定出S台用于执行所述多个待执行任务的目标空闲机器;
将所述多个待执行任务分配给所述S台目标空闲机器执行。
2.根据权利要求1所述的方法,其特征在于,所述根据所述待执行任务的数量、所述各空闲机器的所述***吞吐量和所述网络吞吐量,确定目标分配机器数S,包括:
根据所述待执行任务的数量、所述各空闲机器的所述***吞吐量和所述网络吞吐量,获得所述多个待执行任务的实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述多个待执行任务的实际执行总时间与所述目标分配机器数S之间的函数关系;
根据所述实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述实际执行总时间与所述目标分配机器数S之间的函数关系,确定目标分配机器数S。
3.根据权利要求2所述的方法,其特征在于,所述根据所述待执行任务的数量、所述各空闲机器的所述***吞吐量和所述网络吞吐量,获得所述多个待执行任务的实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述多个待执行任务的实际执行总时间与所述目标分配机器数S之间的函数关系,包括:
根据所述各空闲机器的所述***吞吐量和所述网络吞吐量,确定所述分布式***中所有空闲机器的平均***吞吐量和平均网络吞吐量;
针对每个待执行任务,根据所述平均***吞吐量和所述平均网络吞吐量,预估该待执行任务的运行时间;
根据所述待执行任务的数量、所述平均***吞吐量、所述平均网络吞吐量以及每个待执行任务的运行时间,获得所述多个待执行任务的实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述多个待执行任务的实际执行总时间与所述目标分配机器数S之间的函数关系。
4.根据权利要求3所述的方法,其特征在于,所述根据所述待执行任务的数量、所述平均***吞吐量、所述平均网络吞吐量以及每个待执行任务的运行时间,获得的所述多个待执行任务的实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述多个待执行任务的实际执行总时间与所述目标分配机器数S之间的函数关系如下:
其中,JT为所述实际执行总时间;JC为所述实际内存总消耗;VCavg为所述平均***吞吐量;DCavg为所述平均网络吞吐量;TSi为所述第i个待执行任务的运行时间;M为所述待执行任务的数量;B为总线位宽。
5.根据权利要求2-4中任一项所述的方法,其特征在于,所述根据所述实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述实际执行总时间与所述目标分配机器数S之间的函数关系,确定目标分配机器数S,包括:
根据所述实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述实际执行总时间与所述目标分配机器数S之间的函数关系,获取使得所述实际内存总消耗和所述实际执行总时间的乘积取得最小值时的参数值;
将所述参数值向上取整,以作为所述目标分配机器数S。
6.一种任务分配装置,所述装置应用于分布式***,其特征在于,所述装置包括:
获取模块,用于当存在多个待执行任务时,获取所述分布式***中各空闲机器的***吞吐量和网络吞吐量;
第一确定模块,用于根据所述待执行任务的数量、所述获取模块获取到的所述各空闲机器的所述***吞吐量和所述网络吞吐量,确定目标分配机器数S,其中,所述目标分配机器数S小于或等于所述分布式***中的空闲机器数;
第二确定模块,用于从所述分布式***的所有空闲机器中,确定出S台用于执行所述多个待执行任务的目标空闲机器;
分配模块,用于将所述多个待执行任务分配给所述第二确定模块确定出的所述S台目标空闲机器执行。
7.根据权利要求6所述的装置,其特征在于,所述第一确定模块包括:
第一确定子模块,用于根据所述待执行任务的数量、所述获取模块获取到的所述各空闲机器的所述***吞吐量和所述网络吞吐量,获得所述多个待执行任务的实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述多个待执行任务的实际执行总时间与所述目标分配机器数S之间的函数关系;
第二确定子模块,用于根据所述第一确定子模块确定出的所述实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述实际执行总时间与所述目标分配机器数S之间的函数关系,确定目标分配机器数S。
8.根据权利要求7所述的装置,其特征在于,所述第一确定子模块包括:
吞吐量确定子模块,用于根据所述获取模块获取到的所述各空闲机器的所述***吞吐量和所述网络吞吐量,确定所述分布式***中所有空闲机器的平均***吞吐量和平均网络吞吐量;
运行时间预估子模块,用于针对每个待执行任务,根据所述吞吐量确定子模块确定出的所述平均***吞吐量和所述平均网络吞吐量,预估该待执行任务的运行时间;
函数关系确定子模块,用于根据所述待执行任务的数量、所述吞吐量确定子模块确定出的所述平均***吞吐量、所述平均网络吞吐量以及所述运行时间预估子模块估计出的每个待执行任务的运行时间,获得所述多个待执行任务的实际内存总消耗与所述目标分配机器数S之间的函数关系、以及所述多个待执行任务的实际执行总时间与所述目标分配机器数S之间的函数关系。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
权利要求9中所述的计算机可读存储介质;以及
一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711408966.9A CN108259568B (zh) | 2017-12-22 | 2017-12-22 | 任务分配方法、装置、计算机可读存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711408966.9A CN108259568B (zh) | 2017-12-22 | 2017-12-22 | 任务分配方法、装置、计算机可读存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108259568A true CN108259568A (zh) | 2018-07-06 |
CN108259568B CN108259568B (zh) | 2021-05-04 |
Family
ID=62723617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711408966.9A Active CN108259568B (zh) | 2017-12-22 | 2017-12-22 | 任务分配方法、装置、计算机可读存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108259568B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109120679A (zh) * | 2018-07-27 | 2019-01-01 | 平安科技(深圳)有限公司 | 任务分配方法及装置 |
CN111552569A (zh) * | 2020-04-28 | 2020-08-18 | 咪咕文化科技有限公司 | ***资源调度方法、装置及存储介质 |
CN111901206A (zh) * | 2020-08-28 | 2020-11-06 | 杭州安恒信息技术股份有限公司 | 一种网卡测试方法、装置及相关设备 |
CN113760472A (zh) * | 2020-06-03 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 推数任务调度的方法和装置 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100100886A1 (en) * | 2007-03-02 | 2010-04-22 | Masamichi Takagi | Task group allocating method, task group allocating device, task group allocating program, processor and computer |
CN102521056A (zh) * | 2011-12-28 | 2012-06-27 | 用友软件股份有限公司 | 任务分配装置和任务分配方法 |
US20120204176A1 (en) * | 2010-10-29 | 2012-08-09 | Huawei Technologies Co., Ltd. | Method and device for implementing load balance of data center resources |
CN103051620A (zh) * | 2012-12-20 | 2013-04-17 | 中国科学院深圳先进技术研究院 | 端口扫描方法 |
US20130282846A1 (en) * | 2011-03-03 | 2013-10-24 | Tencent Technology (Shenzhen) Company Limited | System and method for processing similar emails |
US20140012890A1 (en) * | 2012-07-06 | 2014-01-09 | Fujitsu Limited | Information processing system and control method thereof |
CN103617086A (zh) * | 2013-11-20 | 2014-03-05 | 东软集团股份有限公司 | 一种并行计算方法及*** |
CN104636197A (zh) * | 2015-01-29 | 2015-05-20 | 东北大学 | 一种数据中心虚拟机迁移调度策略的评价方法 |
CN105069530A (zh) * | 2015-08-13 | 2015-11-18 | 肇庆学院 | 一种基于多目标优化的多机器人任务分配方法 |
CN105072182A (zh) * | 2015-08-10 | 2015-11-18 | 北京佳讯飞鸿电气股份有限公司 | 一种负载均衡方法、负载均衡器和用户终端 |
CN105183540A (zh) * | 2015-07-29 | 2015-12-23 | 青岛海尔智能家电科技有限公司 | 一种实时数据流处理的任务分配方法及*** |
CN105718318A (zh) * | 2016-01-27 | 2016-06-29 | 上海戴西实业有限公司 | 一种基于辅助工程设计软件的集合式调度优化方法 |
-
2017
- 2017-12-22 CN CN201711408966.9A patent/CN108259568B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100100886A1 (en) * | 2007-03-02 | 2010-04-22 | Masamichi Takagi | Task group allocating method, task group allocating device, task group allocating program, processor and computer |
US20120204176A1 (en) * | 2010-10-29 | 2012-08-09 | Huawei Technologies Co., Ltd. | Method and device for implementing load balance of data center resources |
US20130282846A1 (en) * | 2011-03-03 | 2013-10-24 | Tencent Technology (Shenzhen) Company Limited | System and method for processing similar emails |
CN102521056A (zh) * | 2011-12-28 | 2012-06-27 | 用友软件股份有限公司 | 任务分配装置和任务分配方法 |
US20140012890A1 (en) * | 2012-07-06 | 2014-01-09 | Fujitsu Limited | Information processing system and control method thereof |
CN103051620A (zh) * | 2012-12-20 | 2013-04-17 | 中国科学院深圳先进技术研究院 | 端口扫描方法 |
CN103617086A (zh) * | 2013-11-20 | 2014-03-05 | 东软集团股份有限公司 | 一种并行计算方法及*** |
CN104636197A (zh) * | 2015-01-29 | 2015-05-20 | 东北大学 | 一种数据中心虚拟机迁移调度策略的评价方法 |
CN105183540A (zh) * | 2015-07-29 | 2015-12-23 | 青岛海尔智能家电科技有限公司 | 一种实时数据流处理的任务分配方法及*** |
CN105072182A (zh) * | 2015-08-10 | 2015-11-18 | 北京佳讯飞鸿电气股份有限公司 | 一种负载均衡方法、负载均衡器和用户终端 |
CN105069530A (zh) * | 2015-08-13 | 2015-11-18 | 肇庆学院 | 一种基于多目标优化的多机器人任务分配方法 |
CN105718318A (zh) * | 2016-01-27 | 2016-06-29 | 上海戴西实业有限公司 | 一种基于辅助工程设计软件的集合式调度优化方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109120679A (zh) * | 2018-07-27 | 2019-01-01 | 平安科技(深圳)有限公司 | 任务分配方法及装置 |
CN109120679B (zh) * | 2018-07-27 | 2021-09-28 | 平安科技(深圳)有限公司 | 任务分配方法及装置 |
CN111552569A (zh) * | 2020-04-28 | 2020-08-18 | 咪咕文化科技有限公司 | ***资源调度方法、装置及存储介质 |
CN111552569B (zh) * | 2020-04-28 | 2023-10-20 | 咪咕文化科技有限公司 | ***资源调度方法、装置及存储介质 |
CN113760472A (zh) * | 2020-06-03 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 推数任务调度的方法和装置 |
CN111901206A (zh) * | 2020-08-28 | 2020-11-06 | 杭州安恒信息技术股份有限公司 | 一种网卡测试方法、装置及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108259568B (zh) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108259568A (zh) | 任务分配方法、装置、计算机可读存储介质及电子设备 | |
CN105159782B (zh) | 基于云主机为订单分配资源的方法和装置 | |
CN104714851B (zh) | 一种实现资源分配的方法及装置 | |
CN107590002A (zh) | 任务分配方法、装置、存储介质、设备及分布式任务*** | |
CN107688492B (zh) | 资源的控制方法、装置和集群资源管理*** | |
CN107124472A (zh) | 负载均衡方法及装置、计算机可读存储介质 | |
Page et al. | Framework for task scheduling in heterogeneous distributed computing using genetic algorithms | |
CN106209682A (zh) | 业务调度方法、装置和*** | |
US9178763B2 (en) | Weight-based collocation management | |
CN110099384A (zh) | 基于边-端协同的多用户多mec任务卸载资源调度方法 | |
KR101201904B1 (ko) | 클라우드 컴퓨팅에서의 리소스 분배 장치 및 그 방법 | |
CN104901989B (zh) | 一种现场服务提供***及方法 | |
CN100362806C (zh) | 一种实现分布式***中负载分担的方法 | |
CN105718317A (zh) | 一种任务调度方法及装置 | |
CN107003706A (zh) | 用于在对分布式计算机***的功率分配有变化时管理能够和不能够被挂起的作业的方法和设备 | |
CN104426694B (zh) | 一种调整虚拟机资源的方法和装置 | |
CN108337275A (zh) | 用于分发服务器的任务分发方法、装置以及设备 | |
WO2019072162A1 (zh) | 虚拟网络映射方法、设备和存储介质 | |
CN111176840B (zh) | 分布式任务的分配优化方法和装置、存储介质及电子装置 | |
CN105791371B (zh) | 一种云存储服务***及方法 | |
CN108933829A (zh) | 一种负载均衡方法及装置 | |
US20200348977A1 (en) | Resource scheduling methods, device and system, and central server | |
CN109726005A (zh) | 用于管理资源的方法、服务器***和计算机程序产品 | |
CN107682391A (zh) | 电子装置、服务器分配控制方法和计算机可读存储介质 | |
CN105007336B (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 |