CN114116228A - 一种任务分配方法、装置、设备及存储介质 - Google Patents
一种任务分配方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114116228A CN114116228A CN202111451264.5A CN202111451264A CN114116228A CN 114116228 A CN114116228 A CN 114116228A CN 202111451264 A CN202111451264 A CN 202111451264A CN 114116228 A CN114116228 A CN 114116228A
- Authority
- CN
- China
- Prior art keywords
- resource
- machine
- computing
- target
- demand
- 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 56
- 238000003860 storage Methods 0.000 title claims abstract description 17
- 230000004083 survival effect Effects 0.000 claims description 77
- 238000001514 detection method Methods 0.000 claims description 72
- 238000009826 distribution Methods 0.000 claims description 46
- 238000013468 resource allocation Methods 0.000 claims description 45
- 230000004044 response Effects 0.000 claims description 15
- 239000000523 sample Substances 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 230000000694 effects Effects 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 15
- 238000004891 communication Methods 0.000 description 41
- 238000010586 diagram Methods 0.000 description 22
- 238000004364 calculation method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013480 data collection Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
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/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供了一种任务分配方法、装置、设备及存储介质,涉及金融科技(Fintech)技术领域,该方法包括:获取多个计算机器各自对应的资源属性信息。再基于目标任务对至少一个机器资源的目标资源需求量,以及多个计算机器各自包含的至少一个机器资源的使用情况,确定多个计算机器各自对应的匹配分值。根据获得的各个匹配分值,确定与目标任务匹配的目标计算机器,并将目标任务分配至目标计算器。通过目标任务对至少一个机器资源的资源需求量,以及多个计算机器各自包含的至少一个机器资源的使用情况,进行综合考量,充分考虑到了每个计算机器的性能,提高了计算资源的利用率。
Description
技术领域
本申请实施例涉及金融科技(Fintech)技术领域,尤其涉及一种任务分配方法、装置、设备及存储介质。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。
网络技术的快速发展,促进了分布式***的广泛应用。任务分配是分布式***中的一项关键技术,直接影响到整个分布式***的计算性能。为了能更加充分的利用分布式***中每个计算机器,需要将各个任务合理地分配在各个计算机器中。
相关技术常采用静态分配算法(如平均分配算法)将各个任务分配到不同的计算机器中,然而,上述方法没有考虑不同计算机器的性能差异,使得部分计算机器负载过高,部分计算机器资源闲置,从而导致机器资源利用率较低。
发明内容
本申请实施例提供了一种任务分配方法、装置、设备及存储介质,用于提高计算资源利用率。
一方面,本申请实施例提供了一种任务分配方法,该方法包括:
获取多个计算机器各自对应的资源属性信息,所述资源属性信息包括至少一个机器资源的使用情况,所述多个计算机器处于活跃状态;
基于目标任务对所述至少一个机器资源的目标资源需求量,以及所述多个计算机器各自包含的所述至少一个机器资源的使用情况,确定所述多个计算机器各自对应的匹配分值;
根据获得的各个匹配分值,从所述多个计算机器中,确定与所述目标任务匹配的目标计算机器,并将所述目标任务分配至所述目标计算器。
可选地,所述机器资源的使用情况包括所述机器资源的资源配置量和资源消耗量;
所述基于目标任务对所述至少一个机器资源的目标资源需求量,以及所述多个计算机器各自包含的所述至少一个机器资源的使用情况,确定所述多个计算机器各自对应的匹配分值,包括:
从所述至少一个机器资源中选取待匹配机器资源;
针对各个计算机器,分别执行以下步骤:
将一个计算机器中所述待匹配机器资源的资源配置量和资源消耗量的差值,作为所述一个计算机器中所述待匹配机器资源的资源剩余量;
将所述资源剩余量和所述目标任务对所述待匹配机器资源的目标资源需求量的差值,作为所述一个计算机器对应的匹配分值。
可选地,所述机器资源的使用情况包括所述机器资源的资源配置量和资源消耗量;
所述基于目标任务对所述至少一个机器资源的目标资源需求量,以及所述多个计算机器各自包含的所述至少一个机器资源的使用情况,确定所述多个计算机器各自对应的匹配分值,包括:
针对各个计算机器,分别执行以下步骤:
基于一个计算机器中所述至少一个机器资源各自对应的资源配置量和相应的资源消耗量,确定所述至少一个机器资源各自对应的资源可用比例;
基于所述目标任务对所述至少一个机器资源中各个机器资源的目标资源需求量,以及所述至少一个机器资源各自对应的资源配置值,确定所述目标任务对所述各个机器资源的资源需求比例;
基于获得的各个资源可用比例和各个资源需求比例,获得所述一个计算机器的匹配分值。
可选地,所述基于一个计算机器中所述至少一个机器资源各自对应的资源配置量和相应的资源消耗量,确定所述至少一个机器资源各自对应的资源可用比例,包括:
将一个计算机器中所述至少一个机器资源各自对应的资源配置量,与相应的资源消耗量的差值,作为所述至少一个机器资源各自对应的资源剩余量;
将所述至少一个机器资源各自对应的资源剩余量,与相应的资源配置量的比值,作为所述至少一个机器资源各自对应的资源可用比例。
可选地,所述基于获得的各个资源可用比例和各个资源需求比例,获得所述一个计算机器的匹配分值,包括:
通过所述至少一个机器资源各自对应的资源可用比例,与相应的资源需求比例的差值,确定所述至少一个机器资源各自对应的资源分值;
将获得的各个资源分值之和,作为所述一个计算机器的匹配分值。
可选地,所述将获得的各个资源分值之和,作为所述一个计算机器的匹配分值,包括:
根据所述目标任务的任务类型,确定所述至少一个机器资源各自对应的权重;
按照所述至少一个机器资源各自对应的权重,对所述至少一个资源分值求和,获得所述一个计算机器的匹配分值。
可选地,所述基于目标任务对所述至少一个机器资源的目标资源需求量,以及所述多个计算机器各自包含的所述至少一个机器资源的使用情况,确定所述多个计算机器各自对应的匹配分值之前,包括:
针对所述至少一个机器资源,分别执行以下步骤:
获取所述目标任务在多个预设时段内,对一个机器资源的资源需求量分布;
针对每个预设时段,对资源需求量分布进行统计,获得资源需求统计量;
将所述多个预设时段内对应的资源需求统计量加权求和,获得所述目标任务对所述一个机器资源的目标资源需求量。
可选地,所述对每个资源需求量分布进行统计,获得资源需求统计量,包括:
去除每个资源需求量分布中低于第一资源预设值的资源需求量,以及高于第二资源预设值的资源需求量;
将每个资源需求量分布中保留的多个资源需求量的均值,作为每个资源需求量分布的资源需求统计量。
可选地,所述获取多个计算机器各自对应的资源属性信息之前,包括:
对所述多个计算机器进行存活状态探测,并确定所述多个计算机器的存活状态为活跃状态。
可选地,所述对所述多个计算机器进行存活状态探测,并确定所述多个计算机器的存活状态为活跃状态,包括:
若在活跃检测周期内接收到所述多个计算机器发送的心跳包,则确定所述多个计算机器的存活状态为活跃状态。
可选地,所述对所述多个计算机器进行存活状态探测,并确定所述多个计算机器的存活状态为活跃状态,包括:
针对所述多个计算机器,分别执行以下步骤:
若在活跃检测周期内未接收到一个计算机器发送的心跳包,则将所述一个计算机器的存活状态设置为待探测状态;
在等待保活时长后,发送一个存活探测包至所述一个计算机器;
若在等待答复时长内接收到所述一个计算机器返回的存活响应包,则确定所述一个计算机器的存活状态为活跃状态。
可选地,还包括:
若在所述等待答复时长内没有接收到所述一个计算机器返回的存活响应包,则将所述一个计算机器的存活状态设置为假死状态,并每间隔探测时长向所述一个计算机器发送一个存活探测包;
若在发送的存活探测包数量小于等于探测包预设数量阈值时,接收到所述一个计算机器返回的存活响应包,则确定所述一个计算机器的存活状态为活跃状态。
一方面,本申请实施例提供了一种任务分配装置,该装置包括:
获取模块,用于获取多个计算机器各自对应的资源属性信息,所述资源属性信息包括至少一个机器资源的使用情况,所述多个计算机器处于活跃状态;
匹配模块,用于基于目标任务对所述至少一个机器资源的目标资源需求量,以及所述多个计算机器各自包含的所述至少一个机器资源的使用情况,确定所述多个计算机器各自对应的匹配分值;
分配模块,还用于根据获得的各个匹配分值,从所述多个计算机器中,确定与所述目标任务匹配的目标计算机器,并将所述目标任务分配至所述目标计算器。
可选地,所述机器资源的使用情况包括所述机器资源的资源配置量和资源消耗量;
所述匹配模块具体用于:
从所述至少一个机器资源中选取待匹配机器资源;
针对各个计算机器,分别执行以下步骤:
将一个计算机器中所述待匹配机器资源的资源配置量和资源消耗量的差值,作为所述一个计算机器中所述待匹配机器资源的资源剩余量;
将所述资源剩余量和所述目标任务对所述待匹配机器资源的目标资源需求量的差值,作为所述一个计算机器对应的匹配分值。
可选地,所述机器资源的使用情况包括所述机器资源的资源配置量和资源消耗量;
所述匹配模块还用于:
针对各个计算机器,分别执行以下步骤:
基于一个计算机器中所述至少一个机器资源各自对应的资源配置量和相应的资源消耗量,确定所述至少一个机器资源各自对应的资源可用比例;
基于所述目标任务对所述至少一个机器资源中各个机器资源的目标资源需求量,以及所述至少一个机器资源各自对应的资源配置值,确定所述目标任务对所述各个机器资源的资源需求比例;
基于获得的各个资源可用比例和各个资源需求比例,获得所述一个计算机器的匹配分值。
可选地,所述匹配模块还用于:
将一个计算机器中所述至少一个机器资源各自对应的资源配置量,与相应的资源消耗量的差值,作为所述至少一个机器资源各自对应的资源剩余量;
将所述至少一个机器资源各自对应的资源剩余量,与相应的资源配置量的比值,作为所述至少一个机器资源各自对应的资源可用比例。
可选地,所述匹配模块还用于:
通过所述至少一个机器资源各自对应的资源可用比例,与相应的资源需求比例的差值,确定所述至少一个机器资源各自对应的资源分值;
将获得的各个资源分值之和,作为所述一个计算机器的匹配分值。
可选地,所述匹配模块还用于:
根据所述目标任务的任务类型,确定所述至少一个机器资源各自对应的权重;
按照所述至少一个机器资源各自对应的权重,对所述至少一个资源分值求和,获得所述一个计算机器的匹配分值。
可选地,还包括统计模块,所述统计模块具体用于:
基于目标任务对所述至少一个机器资源的目标资源需求量,以及所述多个计算机器各自包含的所述至少一个机器资源的使用情况,确定所述多个计算机器各自对应的匹配分值之前,针对所述至少一个机器资源,分别执行以下步骤:
获取所述目标任务在多个预设时段内,对一个机器资源的资源需求量分布;
针对每个预设时段,对资源需求量分布进行统计,获得资源需求统计量;
将所述多个预设时段内对应的资源需求统计量加权求和,获得所述目标任务对所述一个机器资源的目标资源需求量。
可选地,所述统计模块还用于:
去除每个资源需求量分布中低于第一资源预设值的资源需求量,以及高于第二资源预设值的资源需求量;
将每个资源需求量分布中保留的多个资源需求量的均值,作为每个资源需求量分布的资源需求统计量。
可选地,还包括探测模块,所述探测模块具体用于:
所述获取多个计算机器各自对应的资源属性信息之前,对所述多个计算机器进行存活状态探测,并确定所述多个计算机器的存活状态为活跃状态。
可选地,所述探测模块还用于:
若在活跃检测周期内接收到所述多个计算机器发送的心跳包,则确定所述多个计算机器的存活状态为活跃状态。
可选地,所述探测模块还用于:
针对所述多个计算机器,分别执行以下步骤:
若在活跃检测周期内未接收到一个计算机器发送的心跳包,则将所述一个计算机器的存活状态设置为待探测状态;
在等待保活时长后,发送一个存活探测包至所述一个计算机器;
若在等待答复时长内接收到所述一个计算机器返回的存活响应包,则确定所述一个计算机器的存活状态为活跃状态。
可选地,所述探测模块还用于:
若在所述等待答复时长内没有接收到所述一个计算机器返回的存活响应包,则将所述一个计算机器的存活状态设置为假死状态,并每间隔探测时长向所述一个计算机器发送一个存活探测包;
若在发送的存活探测包数量小于等于探测包预设数量阈值时,接收到所述一个计算机器返回的存活响应包,则确定所述一个计算机器的存活状态为活跃状态。
一方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任务分配方法的步骤。
一方面,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行上述任务分配方法的步骤。
在本申请实施例中,通过目标任务对至少一个机器资源的资源需求量,以及多个计算机器各自包含的至少一个机器资源的使用情况,进行综合考量,从多个计算机器中选出与目标任务最匹配的目标计算机器,充分考虑到了每个计算机器的性能,提高了计算资源的利用率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种***架构示意图;
图2为本申请实施例提供的一种任务分配方法的流程示意图;
图3为本申请实施例提供的一种确定计算机器匹配分值的流程示意图;
图4为本申请实施例提供的一种CPU资源需求量示意图;
图5为本申请实施例提供的一种CPU资源需求量分布示意图;
图6为本申请实施例提供的一种内存资源需求量示意图;
图7为本申请实施例提供的一种内存资源需求量分布示意图;
图8为本申请实施例提供的一种内存资源需求量分布示意图;
图9为本申请实施例提供的一种存活状态探测方法的流程示意图;
图10为本申请实施例提供的一种任务分配***的结构示意图;
图11为本申请实施例提供的一种任务分配***的结构示意图;
图12为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了方便理解,下面对本发明实施例中涉及的名词进行解释。
硬盘IO:硬盘的输入和输出。
网络IO:本质上是socket的读取,包括等待流数据准备和从内核向进程复制数据。
MSL:Maximum Segment Life,最大报文段生存时间。
TCP:面向连接的、可靠的、基于字节流的传输层控制协议。
UDP:无连接的传输协议,也叫做数据包协议。
SYN:同步序号编号。
参考图1,其为本申请实施例适用的一种***架构图,该***架构至少包括客户端101~1至客户端101~X,任务分配***102,以及计算机器103~1至计算机器103~Y,其中,X为大于0的整数,Y为大于1的整数。
各个客户端可以是智能手机、平板电脑、笔记本电脑、台式计算机等,也可以是独立的物理服务器,还可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网路(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
任务分配***102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网路(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
各个计算机器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网路(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
客户端101~1至客户端101~X分别与任务分配***102可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
计算机器103~1至计算机器103~Y分别与任务分配***102可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
任务分配***102从计算机器103~1至计算机器103~Y中,选取处于活跃状态的多个计算机器,获取多个计算机器各自对应的资源属性信息,其中,资源属性信息包括至少一个机器资源的使用情况。
任务分配***102接收客户端101~1至客户端101~X发送多个任务。针对其中一个目标任务,基于目标任务对至少一个机器资源的目标资源需求量,以及多个计算机器各自包含的所述至少一个机器资源的使用情况,确定多个计算机器各自对应的匹配分值。
最后,任务分配***102根据获得的各个匹配分值,从多个计算机器中,确定与目标任务匹配的目标计算机器,并将目标任务分配至目标计算器。
基于图1所述的***架构图,本申请实施例提供了一种任务分配方法的流程,如图2所示,该方法的流程由计算机设备执行,该计算机设备可以是图1所示的任务分配***102,包括以下步骤:
步骤S201,获取多个计算机器各自对应的资源属性信息。
具体地,多个计算机器可以通过计算机器的I P地址和端口号进行唯一标识,并且上述多个计算机器均处于活跃状态。
资源属性信息包括至少一个机器资源的使用情况。机器资源可以是以下任意一种:CPU(Central Processing Unit,中央处理器)、内存、硬盘IO、网络IO。
机器资源的使用情况包括机器资源的资源配置量和资源消耗量。当机器资源是CPU时,机器资源的使用情况包括CPU资源配置量和CPU资源消耗量。举例来说,CPU为单核时,对应的CPU资源配置量为100%;CPU为四核时,对应的CPU资源配置量为400%。CPU资源消耗量可以是260%。
当机器资源是内存时,机器资源的使用情况包括内存资源配置量和内存资源消耗量。举例来说,内存资源配置量为128GB,内存资源消耗量为25GB。
当机器资源是硬盘IO时,机器资源的使用情况包括硬盘IO资源配置量和硬盘IO资源消耗量。举例来说,硬盘IO资源配置量为100%,硬盘IO资源消耗量为28%。
当机器资源是网络IO时,机器资源的使用情况包括网络IO资源配置量和网络IO资源消耗量。举例来说,网络IO资源配置量为100%,网络IO资源消耗量为12%。
举例来说,表1为4个计算机器的资源属性信息表,每个计算机器的IP地址和端口号分别为192.169.1.0:80、192.169.1.1:81、192.169.1.2:80、192.169.1.3:81。计算机器192.169.1.0:80的CPU资源配置量为1600%,CPU资源消耗量为890%。内存资源配置量为64GB,内存资源消耗量为18GB。硬盘IO资源配置量为100%,硬盘IO资源消耗量为50%。网络IO资源配置量为100%,网络IO资源消耗量为89%。
计算机器192.169.1.1:80的CPU资源配置量为3200%,CPU资源消耗量为1723%。内存资源配置量为128GB,内存资源消耗量为42GB。硬盘IO资源配置量为100%,硬盘IO资源消耗量为76%。网络IO资源配置量为100%,网络IO资源消耗量为67%。
计算机器192.169.1.2:80的CPU资源配置量为6400%,CPU资源消耗量为3878%。内存资源配置量为256GB,内存资源消耗量为85GB。硬盘IO资源配置量为100%,硬盘IO资源消耗量为20%。网络IO资源配置量为100%,网络IO资源消耗量为34%。
计算机器192.169.1.3:81的CPU资源配置量为6400%,CPU资源消耗量为3214%。内存资源配置量为256GB,内存资源消耗量为74GB。硬盘IO资源配置量为100%,硬盘IO资源消耗量为23%。网络IO资源配置量为100%,网络IO资源消耗量为29%。
表1.
步骤S202,基于目标任务对至少一个机器资源的目标资源需求量,以及多个计算机器各自包含的至少一个机器资源的使用情况,确定多个计算机器各自对应的匹配分值。
具体地,目标任务对至少一个机器资源的资源需求量,可以是CPU资源需求量、内存资源需求量、硬盘IO资源需求量、网络IO资源需求量中的任意一个,还可以是CPU资源需求量、内存资源需求量、硬盘IO资源需求量、网络IO资源需求量的任意组合。
举例来说,表2为目标任务T001的资源需求量表,目标任务T001,对各个机器资源的资源需求量分别为:CPU资源需求量为20%,内存资源需求量为0.2GB,硬盘IO资源需求量为1.5%,网络IO资源需求量为0.1%。
表2.
步骤S203,根据获得的各个匹配分值,从多个计算机器中,确定与目标任务匹配的目标计算机器,并将目标任务分配至目标计算器。
具体地,根据每个计算机器对应的匹配分值进行判断,若计算机器的匹配分值小于0,表示该计算机器的机器资源无法满足目标任务的资源需求量,则将该计算机器直接滤除。
针对匹配分值大于等于0的各个计算机器,本申请提供以下两种方式选择与目标任务匹配的目标计算机器:
一种可能的实施方式,根据各个计算机器对应的匹配分值,选取匹配分值最大的计算机器,作为目标计算机器,并且将目标任务分配至目标计算机器。对于目标任务来讲,匹配分值最大的计算机器是计算性能最好的计算机器,因此,可以完全满足目标任务的资源需求。
另一种可能的实施方式,根据各个计算机器对应的匹配分值,选取匹配分值最小的计算机器,作为目标计算机器,并且将目标任务分配至目标计算机器。由于每次选取匹配分值最小的计算机器作为目标计算机器,可以减少各个计算机器中机器资源的碎片化。同时目标计算机器也能够满足目标任务的计算需求。
本申请实施例中,通过目标任务对至少一个机器资源的资源需求量,以及多个计算机器各自包含的至少一个机器资源的使用情况,进行综合考量,从多个计算机器中选出与目标任务最匹配的目标计算机器,充分考虑到了每个计算机器的性能,提高了计算资源的利用率。
可选地,在上述步骤S202中,本申请实施例至少提供以下几种实施方式确定多个计算机器各自对应的匹配分值:
一种可能的实施方式,先从至少一个机器资源中选取待匹配机器资源;再针对各个计算机器,分别执行以下步骤:
将一个计算机器中待匹配机器资源的资源配置量和资源消耗量的差值,作为一个计算机器中待匹配机器资源的资源剩余量;再将资源剩余量和目标任务对待匹配机器资源的资源需求量的差值,作为一个计算机器对应的匹配分值。
举例来说,至少一个机器资源包括CPU、内存、硬盘IO、网络IO。从以上4个机器资源中选取内存作为待匹配机器资源。设定目标任务T002的内存资源需求量为5GB。
表3为3个计算机器的资源属性信息表,3个计算机器对应的IP地址和端口号分别为192.169.10.0:80、192.169.10.1:80、192.169.10.2:80。计算机器192.169.10.0:80的内存资源配置量为10GB,内存资源消耗量为8GB。计算机器192.169.10.1:80的内存资源配置量为64GB,内存资源消耗量为30GB。计算机器192.169.10.2:80的内存资源配置量为12GB,内存资源消耗量为6GB。
表3.
确定每个计算机器的内存资源剩余量,计算机器192.169.10.0:80的内存资源剩余量为2GB,计算机器192.169.10.1:80的内存资源剩余量为34GB,计算机器192.169.10.2:80的内存资源剩余量为6GB。
设定目标任务T002的内存资源需求量为5GB,将目标任务T002的内存资源需求量与各个计算机器的内存资源剩余量的差值,作为各个计算机器的匹配分值,则计算机器192.169.10.0:80的匹配分值为-3,计算机器192.169.10.1:80的匹配分值为29,计算机器192.169.10.2:80的匹配分值为1。
由于计算机器192.169.10.0:80的匹配分值为-3,小于0,表示该计算机器的内存资源剩余量不足,因此计算机器192.169.10.0:80不作考虑。
计算机器192.169.10.1:80的匹配分值29大于计算机器192.169.10.2:80的匹配分值1,因此,选择计算机器192.169.10.1:80作为目标计算机器。
另一种可能的实施方式,针对各个计算机器,分别执行以下步骤,如图3所示:
步骤S301,基于一个计算机器中至少一个机器资源各自对应的资源配置量和相应的资源消耗量,确定至少一个机器资源各自对应的资源可用比例。
具体地,将一个计算机器中至少一个机器资源各自对应的资源配置量,与相应的资源消耗量的差值,作为至少一个机器资源各自对应的资源剩余量。再将至少一个机器资源各自对应的资源剩余量,与相应的资源配置量的比值,作为至少一个机器资源各自对应的资源可用比例。
步骤S302,基于目标任务对至少一个机器资源中各个机器资源的资源需求量,以及至少一个机器资源各自对应的资源配置量,确定目标任务对各个机器资源的资源需求比例。
具体地,将目标任务对至少一个机器资源中各个机器资源的资源需求量,与相应的资源配置量的比值,作为目标任务对各个机器资源的资源需求比例。
步骤S303,基于获得的各个资源可用比例和各个资源需求比例,获得一个计算机器的匹配分值。
具体地,将至少一个机器资源各自对应的资源可用比例,与相应的资源需求比例的差值,作为至少一个机器资源各自对应的资源分值。
针对每个机器对应的至少一个机器资源,若存在至少一个机器资源的资源分值小于0,表示该计算机器的机器资源无法满足目标任务的资源需求量,将该计算机器直接滤除,不作考虑。
针对所有机器资源的资源分值均大于0的计算机器,本申请至少提供以下几种实施方式,基于一个计算机器中至少一个机器资源各自对应的资源分值,获得一个计算机器的匹配分值:
一种可能的实施方式,将一个计算机器中至少一个机器资源各自对应的资源分值之和,作为一个计算机器的匹配分值。
另一种可能的实施方式,根据目标任务的任务类型,确定至少一个机器资源各自对应的权重。再按照至少一个机器资源各自对应的权重,对至少一个资源分值求和,获得一个计算机器的匹配分值。
具体地,目标任务的任务类型可以是根据目标任务对至少一个机器资源中各个机器资源的资源需求量确定的,也可以是在任务提交时由用户确定的。
常见的任务类型包括:计算消耗型任务、内存消耗型任务、计算和内存消耗型任务、硬盘IO型任务、网络IO型任务等。
计算消耗型任务,即任务对CPU资源的需求量比较大,因此,相对于内存权重、硬盘IO权重、网络IO权重来说,计算消耗型任务对应的CPU权重比较大。
内存消耗型任务,即任务对内存资源的需求量比较大,因此,相对于CPU权重、硬盘IO权重、网络IO权重来说,内存消耗型任务对应的内存权重比较大。
计算和内存消耗型任务,即任务对CPU资源和内存资源的需求量比较大,因此,相对于硬盘IO权重、网络IO权重来说,计算和内存消耗型任务对应的CPU权重和内存权重比较大。
硬盘IO型任务,即任务对硬盘IO资源的需求量比较大,因此,相对于CPU权重、内存权重、网络IO权重来说,硬盘IO型任务对应的硬盘IO权重比较大。
网络IO型任务,即任务对网络IO资源的需求量比较大,因此,相对于CPU权重、内存权重、硬盘IO权重来说,网络IO型任务对应的网络IO权重比较大。
针对不同的任务类型,各个机器资源各自对应的权重的具体取值如表4所示。
表4.
针对不同的场景需求,可以对各个机器资源设置不同的权重,在此不做限定。
举例来说,设定目标任务T003的CPU资源需求量为100%,内存资源需求量为6.4GB。
表5为2个计算机器的资源属性信息表,设定一个计算机器中包括2个机器资源,分别为CPU、内存。2个计算机器对应的IP和端口号分别为192.169.100.0:80和192.169.100.1:80。计算机器192.169.100.0:80对应的CPU资源配置量为800%,CPU资源消耗量为400%,内存资源配置量为64GB,内存资源消耗量为48GB。计算机器192.169.100.1:80对应的CPU资源配置量为800%,CPU资源消耗量为600%,内存资源配置量为32GB,内存资源消耗量为8GB。
表5.
针对计算机器192.169.100.0:80中的CPU资源,将CPU资源配置量800%和CPU资源消耗量400%的差值,作为计算机器192.169.100.0:80的CPU资源剩余量,即CPU资源剩余量为400%。将CPU资源剩余量400%与CPU资源配置量800%的比值,作为计算机器192.169.100.0:80的CPU资源可用比例,即CPU资源可用比例为50%。
将目标任务T003的CPU资源需求量100%与CPU资源配置量800%的比值,作为目标任务T003的CPU资源需求比例,即CPU资源需求比例为12.5%。
CPU资源可用比例50%和CPU资源需求比例12.5%的差值为37.5%,因此,计算机器192.169.100.0:80的CPU资源分值为37.5分。
针对计算机器192.169.100.0:80中的内存资源,将内存资源配置量64GB与内存资源消耗量48GB的差值,作为计算机器192.169.100.0:80的内存资源剩余量,即内存资源剩余量为16GB。将内存资源剩余量16GB,与内存资源配置量64GB的比值,作为计算机器192.169.100.0:80的内存资源可用比例,即内存资源可用比例为25%。
将目标任务T003的内存资源需求量6.4GB与内存资源配置量64GB的比值,作为目标任务T003的内存资源需求比例,即内存资源需求比例为10%。
内存资源可用比例25%和内存资源需求比例10%的差值为15%,因此,计算机器192.169.100.0:80的内存资源分值为15分。
针对计算机器192.169.100.1:80中的CPU资源,将CPU资源配置量800%与CPU资源消耗量600%的差值,作为计算机器192.169.100.1:80的CPU资源剩余量,即CPU资源剩余量为200%。将CPU资源剩余量200%,与CPU资源配置量800%的比值,作为计算机器192.169.100.1:80的CPU资源可用比例,即CPU资源可用比例为25%。
将目标任务T003的CPU资源需求量100%与CPU资源配置量800%的比值,作为目标任务T003的CPU资源需求比例,即CPU资源需求比例为12.5%。
CPU资源可用比例25%和CPU资源需求比例12.5%的差值为12.5%,因此,计算机器192.169.100.1:80的CPU资源分值为12.5分。
针对计算机器192.169.100.1:80中的内存资源,将内存资源配置量32GB与内存资源消耗量8GB的差值,作为计算机器192.169.100.1:80的内存资源剩余量,内存资源剩余量为24GB。将内存资源剩余量24GB,与内存资源配置量32GB的比值,作为计算机器192.169.100.1:80的内存资源可用比例,即内存资源可用比例为75%。
将目标任务T003的内存资源需求量6.4GB与内存资源配置量32GB的比值,作为目标任务T003的内存资源需求比例,即内存资源需求比例为20%。
内存资源可用比例75%和内存资源需求比例20%的差值为55%,因此,计算机器192.169.100.1:80的内存资源分值为55分。
实施方式一,计算机器192.169.100.0:80的CPU资源分值与内存资源分值之和,获得计算机器192.169.100.0:80的匹配分值为52.5分。
计算机器192.169.100.1:80的CPU资源分值与内存资源分值之和,获得计算机器192.169.100.1:80的匹配分值为67.5分。
由于计算机器192.169.100.0:80的匹配分值为52.5分,计算机器192.169.100.1:80的匹配分值为67.5分,67.5分大于52.5分。因此,选择计算机器192.169.100.1:80作为目标计算机器,将任务T003分配至计算机器192.169.100.1:80。
在本申请实施例中,根据计算机器包含的各个机器资源对应的资源可用比例,与目标任务对于各个机器资源的资源需求比例,确定出每个计算机器的匹配分值,有效地避免了不同计算机器的配置差异,所对应资源剩余量不同的问题,确定的计算机器的匹配分值更加准确。
实施方式二,设定目标任务T003为内存消耗型任务,那么对应的CPU权重为3,内存权重为4。
计算机器192.169.100.0:80的CPU资源分值为37.5分,内存资源分值为15分,基于CPU权重和内存权重,对CPU资源分值和内存资源分值进行加权求和,即37.5*3+15*4=172.5分,获得计算机器192.169.100.1:80的匹配分值为172.5分。
计算机器192.169.100.1:80的CPU资源分值为12.5分,内存资源分值为55分,基于CPU权重和内存权重,对CPU资源分值和内存资源分值进行加权求和,即12.5*3+55*4=257.5分,获得计算机器192.169.100.1:80的匹配分值为257.5分。
由于计算机器192.169.100.0:80的匹配分值为172.5分,计算机器192.169.100.1:80的匹配分值为257.5分,172.5分大于257.5分。因此,选择计算机器192.169.100.1:80作为目标计算机器,将任务T003分配至计算机器192.169.100.1:80。
在本申请实施例中,由于考虑到每个任务对不同机器资源需求的紧急程度不同,因此,对不同的机器资源设置不同的权重,按照各个机器资源的权重,对各个资源分值加权求和,可以更加精准的确定出符合目标任务的计算机器。
可选地,在上述步骤S202之前,还包括:
针对至少一个机器资源,分别执行以下步骤:
步骤S401,获取目标任务在多个预设时段内,对一个机器资源的资源需求量分布。
具体地,针对每个预设时段,确定各个资源需求量的采集次数。
不同的预设时段,对同一种机器资源的资源需求量的采集次数相同。
每个预设时段内,对不同机器资源的资源需求量的采集次数,可以相同,也可以不同。
举例来说,如图4所示,目标任务在不同的时间对应不同的CPU资源需求量。设置10:00:00至10:05:00为第一预设时段,10:05:05至10:10:00为第二预设时段。在第一预设时段内,设置对目标任务的CPU资源需求量采集3次。同样,在第二预设时段内,设置对目标任务的CPU资源需求量采集3次。在第一预设时段和第二预设时段内,目标任务的CPU资源需求量分布如图5所示。
举例来说,如图6所示,目标任务在不同的时间对应不同的内存资源需求量。设置10:00:00至10:05:00为第一预设时段,10:05:05至10:10:00为第二预设时段。在第一预设时段内,设置对目标任务的内存资源需求量采集5次。同样,在第二预设时段内,设置对目标任务的内存资源需求量采集5次。在第一预设时段和第二预设时段内,目标任务的内存资源需求量分布如图7所示。
步骤S402,针对每个预设时段,对资源需求量分布进行统计,获得资源需求统计量。
具体地,针对每个预设时段,去除每个资源需求量分布中低于第一资源预设值的资源需求量,以及高于第二资源预设值的资源需求量。再将每个资源需求量分布中保留的多个资源需求量的均值,作为每个资源需求量分布的资源需求统计量。
第一资源预设值可以是静态设定的阈值,也可以是根据资源需求量分布中多个资源需求量动态调整的阈值。如,将资源需求量分布中多个资源需求量进行从小到大排序,按照排序结果从多个资源需求量中选取一个资源需求量确定为第一资源预设值。
同理,第二资源预设值可以是静态设定的阈值,也可以是根据资源需求量分布中多个资源需求量动态调整的阈值。如,将资源需求量分布中多个资源需求量进行从小到大排序,按照排序结果从多个资源需求量中选取一个资源需求量确定为第二资源预设值。
举例来说,根据如图8所示的内存资源需求量分布图,第一预设时段10:00:00至10:05:00内由5个内存资源需求量,分别为10GB、11GB、12GB、9GB、8GB,将这5个内存资源需求量进行从小到大排序,确定序列中位于前40%的资源需求量为8GB和9GB,将9GB确定为第一资源预设值,序列中位于前60%的资源需求量为8GB、9GB和11GB,将11GB确定为第二资源预设值。去除5个内存资源需求量中低于9GB的资源需求量,以及高于11GB的资源需求量,保留的各个资源需求量分别为9GB、10GB和11GB。将这3个资源需求量进行平均值计算,得到第一预设时段的内存资源需求统计量为10GB。
步骤S403,将多个预设时段内对应的资源需求统计量加权求和,获得目标任务对一个机器资源的目标资源需求量。
具体地,每个预设时段对应的权重可以相同,也可以不同。
举例来说,第一预设时段的内存资源需求统计量为10GB,第二预设时段的内存资源需求统计量为11GB,第三预设时段的内存资源需求统计量为12GB,那么该目标任务对内存的资源需求量为1/3*10+1/3*11+1/3*12=11GB。
在本申请实施例中,针对每个预设时段的资源需求量分布进行统计,获得对应的资源需求统计量,基于多个预设时段的资源需求统计量,确定目标任务的目标资源需求量。由于目标资源需求量是由实时采集的资源需求量确定的,因此,所获得的目标任务的目标资源需求量更加精准,有利于计算出每个计算机器更加精准的匹配分值,提高任务分配准确性。
在上述步骤S201之前,对多个计算机器进行存活状态探测,并确定多个计算机器的存活状态为活跃状态。
具体地,针对一个计算机器进行存活状态探测的方法,如图9所示,包括以下执行步骤:
步骤S901,判断在活跃检测周期内是否收到计算机器发送的心跳包,若是,则执行步骤S914;否则,执行步骤S902。
步骤S902,将计算机器的存活状态设置为待探测状态。
步骤S903,判断在等待保活时长内是否收到计算机器发送的心跳包,若是,则执行步骤S904,否则,执行步骤S914。
步骤S904,将计算机器的存活状态设置为存活探测状态。
步骤S905,发送存活探测包至计算机器。
步骤S906,判断在等待答复时长内是否收到计算机器返回的存活响应包,若是,则执行步骤S914;否则,执行步骤S907。
步骤S907,将计算机器的存活状态设置为假死状态。
步骤S908,设置变量i=0。
步骤S909,判断i是否小于等于探测包预设数量阈值,若是,则执行步骤S910;否则,执行步骤S913。
步骤S910,每隔探测时长向计算机器发送第i个存活探测包。
步骤S911,判断是否收到计算机器返回的存活响应包,若是,则执行步骤S914;否则,执行步骤S912。
步骤S912,设置i=i+1,并跳转至步骤S909。
步骤S913,将计算机器的存活状态设置为下线状态。对计算机器进行下线处理,并进行故障维修。
步骤S914,将计算机器的存活状态设置为活跃状态。
采用上述步骤对计算机器192.169.100.0:80进行存活状态探测时,所获得的探测结果会记录在计算机器注册表中,如表6所示。
表6.
计算机器192.169.100.0:80与任务分配***上一次建立连接的时间为2021-09-12-18:05:10,存活状态是活跃状态,距离上次心跳时间是40s,存活探测次数是0次,距离上次存活探测时间是0s。
针对不同的网络通信环境,设置不同的计算机器存活状态探测技术,包括基于TCP的探测技术、基于UDP的探测技术和基于SYN的探测技术。
每个存活探测技术对应的等待保活时长、等待答复时长、探测时长、探测包预设数量阈值,如表7所示。
基于TCP的探测技术对应的等待保活时长为1800s,等待答复时长为2MSL,探测时长为20~30s,探测包预设数量阈值为5~10个。
基于UDP的探测技术对应的等待保活时长为2400s,等待答复时长为3MSL或者4MSL,探测时长为30~45s,探测包预设数量阈值为10~20个。
基于SYN的探测技术对应的等待保活时长为3600s,等待答复时长为5MSL或者6MSL,探测时长为45~60s,探测包预设数量阈值为20~30个。
表7.
针对各个计算机器的网络通信环境,选择对应的存活状态探测技术。一般来说,网络通信环境包括强网络通信环境、弱网络通信环境和差网络通信环境。
第一,对于强网络通信环境的计算机器,当出现短时间故障时,可以在短时间内自行恢复,因此,等待保活时长、等待答复时长、探测时长、探测包预设数量阈值应尽可能的小,所以选择基于TCP的探测技术。
第二,对于弱网络通信环境的计算机器,为了解决不可靠通信技术本身引起的网络丢包问题,增加容错性。将等待保活时长、等待答复时长、探测时长、探测包预设数量阈值设置的相对较大,所以选择基于UDP的探测技术。
第三,对于差网络通信环境的计算机器,为了能访问到计算机器,将等待保活时长、等待答复时长、探测时长、探测包预设数量阈值设置的更大,所以选择基于SYN的探测技术。再基于SYN的探测技术确定计算机器可以访问到以后,再结合基于TCP的探测技术或者基于UDP的探测技术进行计算机器存活状态的探测。
针对强网络通信环境、弱网络通信环境和差网络通信环境,还可以进行网络通信环境的分级。针对不同级别的网络通信环境,设置不同的等待保活时长、等待答复时长、探测时长、探测包预设数量阈值。
举例来说,将弱网络通信环境划分为两个级别,分别是A级弱网络通信环境和B级弱网络通信环境。
如表8所示,A级弱网络通信环境对应的等待保活时长为2400s,等待答复时长为3MSL,探测时长为30s,探测包预设数量阈值为10个。B级弱网络通信环境对应的等待保活时长为2400s,等待答复时长为4MSL,探测时长为40s,探测包预设数量阈值为15个。
表8.
网络通信环境的确定方法,可以根据计算机器的网络通信数据进行判断。网络通信数据包括计算机器的发包数量、丢包率、时延分布(如平均时延、最大时延、最小时延、95%请求平均时延、99%请求平均时延)、数据包大小与时延关系等,确定计算机器的网络通信状态。
举例来说,当丢包率小于等于10%时,该网络通信环境为强网络通信环境。当丢包率大于10%并且小于20%时,该网络通信环境为弱网络通信环境。当丢包率大于等于20%时,该网络通信环境为差网络通信环境。
在本申请实施例中,基于动态采集的计算机器的网络通信数据,对网络通信环境进行划分,可以基于不同的网络通信环境选择对应的存活状态探测技术,提高了探测的准确性。同时,对各个网络通信环境进行分级,根据不同级别的网络通信环境,设置更加详细的探测参数(等待保活时长、等待答复时长、探测时长、探测包预设数量阈值),进一步提高存活状态探测的准确性。
为了更好的解释本申请实施例,下面结合具体的实施场景描述本申请实施例提供的一种任务分配方法,该方法由图1中的任务分配***102执行。如图10所示,任务分配***1000的***架构图包括机器路由维护模块1001、任务上传模块1002、数据采集模块1003、数据计算模块1004、任务分配模块1005。
当新计算机器加入计算机器集群后,新计算机器主动向机器路由维护模块1001发起服务注册,机器路由维护模块1001将新计算机器的信息记录在计算机器注册表中,包括该计算机器的IP地址和端口号、本次建立连接的时间,并将该计算机器对应的存活状态设置为活跃状态,距离上次心跳时间、存活探测次数、距离上次存活探测时间皆设置为0。
机器路由维护模块1001根据计算机器注册表,获取每个计算机器的存活状态。同时,可以对每个计算机器进行存活状态探测。
任务上传模块1002接收客户端发送的各个目标任务,并将各个目标任务持久化到任务队列中,等待后续的任务分配。
数据采集模块1003从任务队列中取出各个目标任务,获取各个目标任务对至少一个机器资源的资源需求分布,并将上述资源需求分布发送至数据计算模块1004。同时,数据采集模块1003获取多个活跃状态的计算机器各自对应的资源属性信息,其中,资源属性信息包括至少一个机器资源的使用情况。最后,根据每个计算机器对应的资源属性信息,确定计算机器资源属性信息表,并将资源属性信息表存储在任务分配***中。
数据计算模块1004根据每个目标任务对每个机器资源的资源需求分布,确定每个目标任务对每个机器资源的目标资源需求量,最后,根据目标任务对每个机器资源的目标资源需求量,确定任务资源需求量表,并将任务资源需求量表存储在任务分配***中。
任务分配模块1005基于计算机器资源属性信息表、任务资源需求量表、计算机器注册表,确定每个计算机器各自对应的匹配分值,根据获得的各个匹配分值,从多个计算机器中,确定与目标任务匹配的目标计算机器,并将目标任务分配至目标计算器。
在本申请实施例中,通过目标任务对至少一个机器资源的资源需求量,以及多个计算机器各自包含的至少一个机器资源的使用情况,进行综合考量,从多个计算机器中选出与目标任务最匹配的目标计算机器,充分考虑到了每个计算机器的性能,提高了计算资源的利用率。
基于相同的技术构思,本申请实施例提供了一种任务分配装置,如图11所示,该装置1100包括:
获取模块1101,用于获取多个计算机器各自对应的资源属性信息,所述资源属性信息包括至少一个机器资源的使用情况,所述多个计算机器处于活跃状态;
匹配模块1102,用于基于目标任务对所述至少一个机器资源的目标资源需求量,以及所述多个计算机器各自包含的所述至少一个机器资源的使用情况,确定所述多个计算机器各自对应的匹配分值;
分配模块1103,还用于根据获得的各个匹配分值,从所述多个计算机器中,确定与所述目标任务匹配的目标计算机器,并将所述目标任务分配至所述目标计算器。
可选地,所述机器资源的使用情况包括所述机器资源的资源配置量和资源消耗量;
所述匹配模块1102具体用于:
从所述至少一个机器资源中选取待匹配机器资源;
针对各个计算机器,分别执行以下步骤:
将一个计算机器中所述待匹配机器资源的资源配置量和资源消耗量的差值,作为所述一个计算机器中所述待匹配机器资源的资源剩余量;
将所述资源剩余量和所述目标任务对所述待匹配机器资源的目标资源需求量的差值,作为所述一个计算机器对应的匹配分值。
可选地,所述机器资源的使用情况包括所述机器资源的资源配置量和资源消耗量;
所述匹配模块1102还用于:
针对各个计算机器,分别执行以下步骤:
基于一个计算机器中所述至少一个机器资源各自对应的资源配置量和相应的资源消耗量,确定所述至少一个机器资源各自对应的资源可用比例;
基于所述目标任务对所述至少一个机器资源中各个机器资源的目标资源需求量,以及所述至少一个机器资源各自对应的资源配置值,确定所述目标任务对所述各个机器资源的资源需求比例;
基于获得的各个资源可用比例和各个资源需求比例,获得所述一个计算机器的匹配分值。
可选地,所述匹配模块1102还用于:
将一个计算机器中所述至少一个机器资源各自对应的资源配置量,与相应的资源消耗量的差值,作为所述至少一个机器资源各自对应的资源剩余量;
将所述至少一个机器资源各自对应的资源剩余量,与相应的资源配置量的比值,作为所述至少一个机器资源各自对应的资源可用比例。
可选地,所述匹配模块1102还用于:
通过所述至少一个机器资源各自对应的资源可用比例,与相应的资源需求比例的差值,确定所述至少一个机器资源各自对应的资源分值;
将获得的各个资源分值之和,作为所述一个计算机器的匹配分值。
可选地,所述匹配模块1102还用于:
根据所述目标任务的任务类型,确定所述至少一个机器资源各自对应的权重;
按照所述至少一个机器资源各自对应的权重,对所述至少一个资源分值求和,获得所述一个计算机器的匹配分值。
可选地,还包括统计模块1104,所述统计模块1104具体用于:
基于目标任务对所述至少一个机器资源的目标资源需求量,以及所述多个计算机器各自包含的所述至少一个机器资源的使用情况,确定所述多个计算机器各自对应的匹配分值之前,针对所述至少一个机器资源,分别执行以下步骤:
获取所述目标任务在多个预设时段内,对一个机器资源的资源需求量分布;
针对每个预设时段,对资源需求量分布进行统计,获得资源需求统计量;
将所述多个预设时段内对应的资源需求统计量加权求和,获得所述目标任务对所述一个机器资源的目标资源需求量。
可选地,所述统计模块1104还用于:
去除每个资源需求量分布中低于第一资源预设值的资源需求量,以及高于第二资源预设值的资源需求量;
将每个资源需求量分布中保留的多个资源需求量的均值,作为每个资源需求量分布的资源需求统计量。
可选地,还包括探测模块1105,所述探测模块1105具体用于:
所述获取多个计算机器各自对应的资源属性信息之前,对所述多个计算机器进行存活状态探测,并确定所述多个计算机器的存活状态为活跃状态。
可选地,所述探测模块1105还用于:
若在活跃检测周期内接收到所述多个计算机器发送的心跳包,则确定所述多个计算机器的存活状态为活跃状态。
可选地,所述探测模块1105还用于:
针对所述多个计算机器,分别执行以下步骤:
若在活跃检测周期内未接收到一个计算机器发送的心跳包,则将所述一个计算机器的存活状态设置为待探测状态;
在等待保活时长后,发送一个存活探测包至所述一个计算机器;
若在等待答复时长内接收到所述一个计算机器返回的存活响应包,则确定所述一个计算机器的存活状态为活跃状态。
可选地,所述探测模块1105还用于:
若在所述等待答复时长内没有接收到所述一个计算机器返回的存活响应包,则将所述一个计算机器的存活状态设置为假死状态,并每间隔探测时长向所述一个计算机器发送一个存活探测包;
若在发送的存活探测包数量小于等于探测包预设数量阈值时,接收到所述一个计算机器返回的存活响应包,则确定所述一个计算机器的存活状态为活跃状态。
基于相同的技术构思,本申请实施例提供了一种计算机设备,计算机设备可以是终端或服务器,如图12所示,包括至少一个处理器1201,以及与至少一个处理器连接的存储器1202,本申请实施例中不限定处理器1201与存储器1202之间的具体连接介质,图12中处理器1201和存储器1202之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本申请实施例中,存储器1202存储有可被至少一个处理器1201执行的指令,至少一个处理器1201通过执行存储器1202存储的指令,可以执行上述任务分配方法中所包括的步骤。
其中,处理器1201是计算机设备的控制中心,可以利用各种接口和线路连接计算机设备的各个部分,通过运行或执行存储在存储器1202内的指令以及调用存储在存储器1202内的数据,从而进行任务分配。可选的,处理器1201可包括一个或多个处理单元,处理器1201可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1201中。在一些实施例中,处理器1201和存储器1202可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器1201可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器1202作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器1202可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器1202是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器1202还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于同一发明构思,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当程序在计算机设备上运行时,使得计算机设备执行上述任务分配方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (15)
1.一种任务分配方法,其特征在于,包括:
获取多个计算机器各自对应的资源属性信息,所述资源属性信息包括至少一个机器资源的使用情况,所述多个计算机器处于活跃状态;
基于目标任务对所述至少一个机器资源的目标资源需求量,以及所述多个计算机器各自包含的所述至少一个机器资源的使用情况,确定所述多个计算机器各自对应的匹配分值;
根据获得的各个匹配分值,从所述多个计算机器中,确定与所述目标任务匹配的目标计算机器,并将所述目标任务分配至所述目标计算器。
2.如权利要求1所述的方法,其特征在于,所述机器资源的使用情况包括所述机器资源的资源配置量和资源消耗量;
所述基于目标任务对所述至少一个机器资源的目标资源需求量,以及所述多个计算机器各自包含的所述至少一个机器资源的使用情况,确定所述多个计算机器各自对应的匹配分值,包括:
从所述至少一个机器资源中选取待匹配机器资源;
针对各个计算机器,分别执行以下步骤:
将一个计算机器中所述待匹配机器资源的资源配置量和资源消耗量的差值,作为所述一个计算机器中所述待匹配机器资源的资源剩余量;
将所述资源剩余量和所述目标任务对所述待匹配机器资源的目标资源需求量的差值,作为所述一个计算机器对应的匹配分值。
3.如权利要求1所述的方法,其特征在于,所述机器资源的使用情况包括所述机器资源的资源配置量和资源消耗量;
所述基于目标任务对所述至少一个机器资源的目标资源需求量,以及所述多个计算机器各自包含的所述至少一个机器资源的使用情况,确定所述多个计算机器各自对应的匹配分值,包括:
针对各个计算机器,分别执行以下步骤:
基于一个计算机器中所述至少一个机器资源各自对应的资源配置量和相应的资源消耗量,确定所述至少一个机器资源各自对应的资源可用比例;
基于所述目标任务对所述至少一个机器资源中各个机器资源的目标资源需求量,以及所述至少一个机器资源各自对应的资源配置值,确定所述目标任务对所述各个机器资源的资源需求比例;
基于获得的各个资源可用比例和各个资源需求比例,获得所述一个计算机器的匹配分值。
4.如权利要求3所述的方法,其特征在于,所述基于一个计算机器中所述至少一个机器资源各自对应的资源配置量和相应的资源消耗量,确定所述至少一个机器资源各自对应的资源可用比例,包括:
将一个计算机器中所述至少一个机器资源各自对应的资源配置量,与相应的资源消耗量的差值,作为所述至少一个机器资源各自对应的资源剩余量;
将所述至少一个机器资源各自对应的资源剩余量,与相应的资源配置量的比值,作为所述至少一个机器资源各自对应的资源可用比例。
5.如权利要求3所述的方法,其特征在于,所述基于获得的各个资源可用比例和各个资源需求比例,获得所述一个计算机器的匹配分值,包括:
通过所述至少一个机器资源各自对应的资源可用比例,与相应的资源需求比例的差值,确定所述至少一个机器资源各自对应的资源分值;
将获得的各个资源分值之和,作为所述一个计算机器的匹配分值。
6.如权利要求5所述的方法,其特征在于,所述将获得的各个资源分值之和,作为所述一个计算机器的匹配分值,包括:
根据所述目标任务的任务类型,确定所述至少一个机器资源各自对应的权重;
按照所述至少一个机器资源各自对应的权重,对所述至少一个资源分值求和,获得所述一个计算机器的匹配分值。
7.如权利要求1所述的方法,其特征在于,所述基于目标任务对所述至少一个机器资源的目标资源需求量,以及所述多个计算机器各自包含的所述至少一个机器资源的使用情况,确定所述多个计算机器各自对应的匹配分值之前,包括:
针对所述至少一个机器资源,分别执行以下步骤:
获取所述目标任务在多个预设时段内,对一个机器资源的资源需求量分布;
针对每个预设时段,对资源需求量分布进行统计,获得资源需求统计量;
将所述多个预设时段内对应的资源需求统计量加权求和,获得所述目标任务对所述一个机器资源的目标资源需求量。
8.如权利要求7所述的方法,其特征在于,所述对每个资源需求量分布进行统计,获得资源需求统计量,包括:
去除每个资源需求量分布中低于第一资源预设值的资源需求量,以及高于第二资源预设值的资源需求量;
将每个资源需求量分布中保留的多个资源需求量的均值,作为每个资源需求量分布的资源需求统计量。
9.如权利要求1至8任一所述的方法,其特征在于,所述获取多个计算机器各自对应的资源属性信息之前,包括:
对所述多个计算机器进行存活状态探测,并确定所述多个计算机器的存活状态为活跃状态。
10.如权利要求9所述的方法,其特征在于,所述对所述多个计算机器进行存活状态探测,并确定所述多个计算机器的存活状态为活跃状态,包括:
若在活跃检测周期内接收到所述多个计算机器发送的心跳包,则确定所述多个计算机器的存活状态为活跃状态。
11.如权利要求9所述的方法,其特征在于,所述对所述多个计算机器进行存活状态探测,并确定所述多个计算机器的存活状态为活跃状态,包括:
针对所述多个计算机器,分别执行以下步骤:
若在活跃检测周期内未接收到一个计算机器发送的心跳包,则将所述一个计算机器的存活状态设置为待探测状态;
在等待保活时长后,发送一个存活探测包至所述一个计算机器;
若在等待答复时长内接收到所述一个计算机器返回的存活响应包,则确定所述一个计算机器的存活状态为活跃状态。
12.如权利要求11所述的方法,其特征在于,还包括:
若在所述等待答复时长内没有接收到所述一个计算机器返回的存活响应包,则将所述一个计算机器的存活状态设置为假死状态,并每间隔探测时长向所述一个计算机器发送一个存活探测包;
若在发送的存活探测包数量小于等于探测包预设数量阈值时,接收到所述一个计算机器返回的存活响应包,则确定所述一个计算机器的存活状态为活跃状态。
13.一种任务分配装置,其特征在于,包括:
获取模块,用于获取多个计算机器各自对应的资源属性信息,所述资源属性信息包括至少一个机器资源的使用情况,所述多个计算机器处于活跃状态;
匹配模块,用于基于目标任务对所述至少一个机器资源的目标资源需求量,以及所述多个计算机器各自包含的所述至少一个机器资源的使用情况,确定所述多个计算机器各自对应的匹配分值;
分配模块,还用于根据获得的各个匹配分值,从所述多个计算机器中,确定与所述目标任务匹配的目标计算机器,并将所述目标任务分配至所述目标计算器。
14.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1~12任一权利要求所述方法的步骤。
15.一种计算机可读存储介质,其特征在于,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行权利要求1~12任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111451264.5A CN114116228A (zh) | 2021-12-01 | 2021-12-01 | 一种任务分配方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111451264.5A CN114116228A (zh) | 2021-12-01 | 2021-12-01 | 一种任务分配方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114116228A true CN114116228A (zh) | 2022-03-01 |
Family
ID=80369072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111451264.5A Pending CN114116228A (zh) | 2021-12-01 | 2021-12-01 | 一种任务分配方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114116228A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023128869A3 (en) * | 2021-12-27 | 2023-08-24 | Grabtaxi Holdings Pte. Ltd. | Method and device for task allocation in parallel streams based on dynamic resource state |
-
2021
- 2021-12-01 CN CN202111451264.5A patent/CN114116228A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023128869A3 (en) * | 2021-12-27 | 2023-08-24 | Grabtaxi Holdings Pte. Ltd. | Method and device for task allocation in parallel streams based on dynamic resource state |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783224B (zh) | 基于负载调配的任务分配方法、装置及终端设备 | |
CN109218355B (zh) | 负载均衡引擎,客户端,分布式计算***以及负载均衡方法 | |
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
US20180278532A1 (en) | Dynamic advertisement routing | |
CN106095572B (zh) | 一种大数据处理的分布式调度***及方法 | |
CN104102543B (zh) | 一种云计算环境中负载调整的方法和装置 | |
CN106878415B (zh) | 数据消费的负载均衡方法及装置 | |
CN110457128B (zh) | 任务分配方法、装置和*** | |
CN108933829A (zh) | 一种负载均衡方法及装置 | |
CN110708369B (zh) | 设备节点的文件部署方法、装置、调度服务器及存储介质 | |
CN111506434B (zh) | 一种任务处理方法、装置及计算机可读存储介质 | |
CN107707612B (zh) | 一种负载均衡集群的资源利用率的评估方法及装置 | |
CN106991070B (zh) | 实时计算方法及装置 | |
CN115033340A (zh) | 一种宿主机的选择方法及相关装置 | |
CN113361913A (zh) | 一种通信业务编排方法、装置、计算机设备及存储介质 | |
CN113821340A (zh) | 分布式***的动态均衡方法、***、终端及存储介质 | |
CN114116228A (zh) | 一种任务分配方法、装置、设备及存储介质 | |
CN111949681A (zh) | 数据的聚合处理装置、方法和存储介质 | |
CN111538572A (zh) | 任务处理方法、装置、调度服务器及介质 | |
CN111338750A (zh) | 执行节点的压力调节方法、装置、服务器及存储介质 | |
CN109285015B (zh) | 一种虚拟资源的分配方法及*** | |
CN110471761A (zh) | 服务器的控制方法、用户设备、存储介质及装置 | |
CN107896196B (zh) | 一种分配报文的方法和装置 | |
CN113626173A (zh) | 调度方法、装置及存储介质 | |
CN112615795A (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 |