CN112130997B - 一种资源分配方法及装置 - Google Patents
一种资源分配方法及装置 Download PDFInfo
- Publication number
- CN112130997B CN112130997B CN202011004507.6A CN202011004507A CN112130997B CN 112130997 B CN112130997 B CN 112130997B CN 202011004507 A CN202011004507 A CN 202011004507A CN 112130997 B CN112130997 B CN 112130997B
- Authority
- CN
- China
- Prior art keywords
- data processing
- processing process
- resource
- resource amount
- amount
- 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
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种资源分配方法及装置,涉及云服务技术领域,其中,上述方法包括:获得处于运行状态的各数据处理进程的已分配资源量及最大资源使用率。根据各数据处理进程的已分配资源量及最大资源使用率,确定各数据处理进程的消耗资源量。以各个数据处理进程的消耗资源量为基准,根据计算资源的总资源量,为各数据处理进程模拟分配计算资源,得到各数据处理进程的模拟资源量。根据各数据处理进程的模拟资源量,确定进行计算资源分配的资源量阈值。在存在新的数据处理进程的情况下,基于资源量阈值为新的数据处理进程分配计算资源。应用本发明实施例提供的方案分配资源,可以减小计算资源的浪费。
Description
技术领域
本发明涉及云服务技术领域,特别是涉及一种资源分配方法及装置。
背景技术
随着大数据技术的快速发展,云计算平台的应用越来越广泛,用户可以请求在云计算平台上进行数据处理,云计算平台为请求进行数据处理的用户创建数据处理进程,并为数据处理进程分配计算资源。
为防止为单一数据处理进程分配过多的计算资源,现有技术中,一般会预设固定的资源量阈值,并根据上述资源量阈值为数据处理进程分配计算资源,保证为每一数据处理进程分配的计算资源的资源量不超过上述资源量阈值。
由于不同数据处理进程所执行的数据处理任务可能不同,因此,不同数据处理进程需要的计算资源也可能不同。为保证大多数数据处理进程能够正常工作,一般将上述资源量阈值设置为较大的数值,而实际应用中,一些数据处理进程所需要的计算资源的资源量远小于上述资源量阈值。因此,基于上述固定的资源量阈值为各个数据处理进程分配计算资源,易导致计算资源浪费。
发明内容
本发明实施例的目的在于提供一种资源分配方法及装置,以减少计算资源的浪费。具体技术方案如下:
第一方面,本发明实施例提供了一种资源分配方法,所述方法包括:
获得处于运行状态的各数据处理进程的已分配资源量及最大资源使用率;
根据各数据处理进程的已分配资源量及最大资源使用率,确定各数据处理进程的消耗资源量;
以各个数据处理进程的消耗资源量为基准,根据计算资源的总资源量,为各数据处理进程模拟分配计算资源,得到各数据处理进程的模拟资源量,其中,每一数据处理进程的模拟资源量趋近于该数据处理进程的消耗资源量且大于等于该数据处理进程的消耗资源量;
根据各数据处理进程的模拟资源量,确定进行计算资源分配的资源量阈值;
在存在新的数据处理进程的情况下,为所述新的数据处理进程分配资源量为所述资源量阈值的计算资源。
本发明的一个实施例中,所述以各个数据处理进程的消耗资源量为基准,根据计算资源的总资源量,为各数据处理进程模拟分配计算资源,得到各数据处理进程的模拟资源量,包括:
根据计算资源的总资源量,获得将计算资源平均分配给各数据处理进程时各数据处理进程的资源量,作为模拟资源量;
存在第一进程时,计算第一进程中一个数据处理进程的模拟资源量超过消耗资源量的冗余资源量,并将所述一个数据处理进程的模拟资源量更新为该数据处理进程的消耗资源量,其中,所述第一进程为:模拟资源量大于消耗资源量的数据处理进程;
将冗余计算资源模拟分配给各第二进程,并根据分配结果更新各第二进程的模拟资源量,其中,所述冗余计算资源的资源量等于所述冗余资源量,所述第二进程为:模拟资源量小于消耗资源量的数据处理进程;
存在模拟资源量小于消耗资源量的数据处理进程时,返回所述存在第一进程时,计算第一进程中一个数据处理进程的模拟资源量超过消耗资源量的冗余资源量的步骤。
本发明的一个实施例中,所述计算第一进程中一个数据处理进程的模拟资源量超过消耗资源量的冗余资源量,包括:
确定第一进程中消耗资源量最小的一个数据处理进程;
计算所述一个数据处理进程的模拟资源量超过消耗资源量的冗余资源量。
本发明的一个实施例中,所述将冗余计算资源模拟分配给各第二进程,包括:
以资源均分的方式,将冗余计算资源模拟分配给各第二进程。
本发明的一个实施例中,所述根据各数据处理进程的已分配资源量及最大资源使用率,确定各数据处理进程的消耗资源量,包括:
计算各数据处理进程的已分配资源量与最大资源使用率的乘积,并将计算结果确定为各数据处理进程的消耗资源量。
本发明的一个实施例中,所述根据各数据处理进程的模拟资源量,确定进行计算资源分配的资源量阈值,包括:
对各数据处理进程的模拟资源量进行统计分析,得到各数据处理进程的模拟资源量的中位数,将所述中位数确定为进行计算资源分配的资源量阈值。
本发明的一个实施例中,所述根据各数据处理进程的模拟资源量,确定进行计算资源分配的资源量阈值,包括:
确定各数据处理进程的模拟资源量中的异常值;
根据各数据处理进程的模拟资源量中异常值之外的模拟资源量,确定进行计算资源分配的资源量阈值。
本发明的一个实施例中,所述数据处理进程运行于Kubernetes集群的Pod中,所述计算资源包括CPU资源和/或内存资源。
第二方面,本发明实施例提供了一种资源分配装置,所述装置包括:
数据获得模块,用于获得处于运行状态的各数据处理进程的已分配资源量及最大资源使用率;
消耗量确定模块,用于根据各数据处理进程的已分配资源量及最大资源使用率,确定各数据处理进程的消耗资源量;
资源量确定模块,用于以各个数据处理进程的消耗资源量为基准,根据计算资源的总资源量,为各数据处理进程模拟分配计算资源,得到各数据处理进程的模拟资源量,其中,每一数据处理进程的模拟资源量趋近于该数据处理进程的消耗资源量且大于等于该数据处理进程的消耗资源量;
阈值计算模块,用于根据各数据处理进程的模拟资源量,确定进行计算资源分配的资源量阈值;
资源分配模块,用于在存在新的数据处理进程的情况下,基于所述资源量阈值为所述新的数据处理进程分配计算资源。
本发明的一个实施例中,所述资源量确定模块,包括:
资源量获得子模块,用于根据计算资源的总资源量,获得将计算资源平均分配给各数据处理进程时各数据处理进程的资源量,作为模拟资源量;
冗余计算子模块,用于存在第一进程时,计算第一进程中一个数据处理进程的模拟资源量超过消耗资源量的冗余资源量,并将所述一个数据处理进程的模拟资源量更新为该数据处理进程的消耗资源量,其中,所述第一进程为:模拟资源量大于消耗资源量的数据处理进程;
冗余分配子模块,用于将冗余计算资源模拟分配给各第二进程,并根据分配结果更新各第二进程的模拟资源量,其中,所述冗余计算资源的资源量等于所述冗余资源量,所述第二进程为:模拟资源量小于消耗资源量的数据处理进程,存在模拟资源量小于消耗资源量的数据处理进程时,返回执行所述冗余计算子模块。
本发明的一个实施例中,所述冗余计算子模块,具体用于:
确定第一进程中消耗资源量最小的一个数据处理进程;
计算所述一个数据处理进程的模拟资源量超过消耗资源量的冗余资源量,并将所述一个数据处理进程的模拟资源量更新为该数据处理进程的消耗资源量。
本发明的一个实施例中,所述冗余分配子模块,具体用于:
以资源均分的方式,将冗余计算资源模拟分配给各第二进程,并根据分配结果更新各第二进程的模拟资源量。
本发明的一个实施例中,所述消耗量确定模块,具体用于:
计算各数据处理进程的已分配资源量与最大资源使用率的乘积,并将计算结果确定为各数据处理进程的消耗资源量。
本发明的一个实施例中,所述阈值计算模块,具体用于:
对各数据处理进程的模拟资源量进行统计分析,得到各数据处理进程的模拟资源量的中位数,将所述中位数确定为进行计算资源分配的资源量阈值。
本发明的一个实施例中,所述阈值计算模块,具体用于:
确定各数据处理进程的模拟资源量中的异常值;
根据各数据处理进程的模拟资源量中异常值之外的模拟资源量,确定进行计算资源分配的资源量阈值。
本发明的一个实施例中,所述数据处理进程运行于Kubernetes集群的Pod中,所述计算资源包括CPU资源和/或内存资源。
第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面任一所述的方法步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一所述的方法步骤。
第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一所述的方法步骤。
本发明实施例有益效果:
本发明实施例提供的方案中,根据处于运行状态的数据处理进程的已分配资源量与最大资源使用率,确定各个数据处理进程的消耗资源量。以各个数据处理进程的消耗资源量为基准,根据计算资源的总资源量,为各个数据处理进程模拟分配计算资源,使得各个数据处理进程的模拟资源量趋近于该数据处理进程的消耗资源量,且大于等于该数据处理进程的消耗资源量。这样可以使得各个数据处理进程被模拟分配的计算资源的计算资源量均能满足该数据处理进程对计算资源的需求。又由于所配置的资源量阈值是根据各个模拟资源量确定的,所以,应用本发明实施例提供的方案配置的资源量阈值能够反映处于运行状态的各个数据处理进程对计算资源的需求。在此基础上,根据上述资源量阈值为新的数据处理进程分配计算资源,能够使得所分配的计算资源的资源量接近于新的数据处理进程所需的计算资源的资源量,从而可以减少为数据处理进程分配的计算资源的浪费。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的第一种资源分配方法的流程示意图;
图2为本发明实施例提供的第二种资源分配方法的流程示意图;
图3为本发明实施例提供的一种CPU资源分配方法的流程示意图;
图4为本发明实施例提供的一种内存资源分配方法的流程示意图;
图5为本发明实施例提供的第一种资源分配装置的结构示意图;
图6为本发明实施例提供的第二种资源分配装置的结构示意图;
图7为本发明实施例中提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由于以固定的资源量阈值为各个数据处理进程分配计算资源,会导致计算资源浪费。为了降低为数据处理进程分配的计算资源的浪费,本发明实施例提供了一种资源分配方法及装置。
本发明的一个实施例中,提供了一种资源分配方法,上述方法包括:
获得处于运行状态的各数据处理进程的已分配资源量及最大资源使用率。
根据各数据处理进程的已分配资源量及最大资源使用率,确定各数据处理进程的消耗资源量。
以各个数据处理进程的消耗资源量为基准,根据计算资源的总资源量,为各数据处理进程模拟分配计算资源,得到各数据处理进程的模拟资源量,其中,每一数据处理进程的模拟资源量趋近于该数据处理进程的消耗资源量且大于等于该数据处理进程的消耗资源量。
根据各数据处理进程的模拟资源量,确定进行计算资源分配的资源量阈值。
在存在新的数据处理进程的情况下,基于上述资源量阈值为上述新的数据处理进程分配计算资源。
由以上可见,所配置的资源量阈值是根据各个数据处理进程的模拟资源量确定的,并且各个数据处理进程的模拟资源量能够满足该数据处理进程对计算资源的需求,因此,应用本发明实施例提供的方案配置的资源量阈值能够反映处于运行状态的各个数据处理进程对计算资源的需求。在此基础上,根据上述资源量阈值为新的数据处理进程分配计算资源,能够使得所分配的计算资源的资源量接近于新的数据处理进程所需的计算资源的资源量,从而可以减少为数据处理进程分配的计算资源的浪费。
下面通过具体的实施例对本发明实施例提供的资源分配方法及装置进行说明。
参见图1,本发明实施例提供了第一种资源分配方法的流程示意图。上述方法包括以下步骤S101-S105。
S101:获得处于运行状态的各数据处理进程的已分配资源量及最大资源使用率。
为保证处于运行状态的每一数据处理进程能够正常运行,在创建各个数据处理进程之后,需要为各个数据处理进程分配计算资源,这样每一上述数据处理进程均会对应已分配资源量。另外,对于每一数据处理进程而言,在运行过程中不同时刻实际消耗的资源是不同的,这样不同时刻消耗的资源相对于数据处理进程的已分配资源的占比不同。为便于描述可以将上述占比称为资源使用率。基于上述情况,可以统计每一数据处理进程在运行过程中的资源使用率,从而得到每一数据处理进程的最大资源使用率。
具体的,各个数据处理进程被分配的计算资源可以包括CPU(Central ProcessingUnit,中央处理器)资源、内存资源等资源中的至少一种。因此,获得的上述已分配资源量可以包括已分配CPU资源量和/或已分配内存资源量,上述最大资源使用率可以包括最大CPU资源使用率和/或最大内存资源使用率。
其中,上述数据处理进程可以是指:运行于云计算平台、且用于进行数据处理的进程。可以通过云计算平台的数据接口获得各个数据处理进程的已分配资源量及各个数据处理进程的最大资源使用率。
本发明的一个实施例中,上述云计算平台可以是基于Kubernetes集群构建的、用于提供云计算服务的平台。这种情况下,上述数据处理进程运行于Kubernetes集群的Pod中,上述Pod是Kubernetes集群创建或部署的最小单位,一个Pod代表集群上正在运行的一个进程。一个Pod可以封装一个或多个应用容器,可用于存储资源、对应一个独立的网络IP,并且包含管理控制容器运行方式的策略选项。
S102:根据各数据处理进程的已分配资源量及最大资源使用率,确定各数据处理进程的消耗资源量。
具体的,上述最大资源使用率表征了数据处理进程运行过程中消耗的资源相对于数据处理进程的已分配资源的最大占比,因此根据已分配资源量及最大资源使用率可以确定各数据处理进程的消耗资源量。
本发明的一个实施例中,可以计算各数据处理进程的已分配资源量与最大资源使用率的乘积,并将计算结果确定为各数据处理进程的消耗资源量。这种情况下,计算得到的消耗资源量为数据处理进程所使用的计算资源的最大量值。
例如,一个数据处理进程的已分配资源量为200M,最大资源使用率为80%,则上述消耗资源量可以为200M*80%=160M。
本发明的另一个实施例中,也可以在计算得到各数据处理进程的已分配资源量与最大资源使用率的乘积之后,再乘以预设系数,得到各数据处理进程的消耗资源量。
由于各数据处理进程的已分配资源量与最大资源使用率的乘积为数据处理进程所使用的计算资源的最大量值,但数据处理进程在运行过程中往往不会始终消耗最大量值的计算资源,因此,可以在上述最大量值的基础上再乘以预设系数,以确定数据处理进程在运行过程中的大部分情况下消耗的计算资源的资源量,作为上述消耗资源量。具体的,上述预设系数可以小于1。例如,上述预设系数可以为80%等,则消耗资源量为最大量值的80%。
S103:以各个数据处理进程的消耗资源量为基准,根据计算资源的总资源量,为各数据处理进程模拟分配计算资源,得到各数据处理进程的模拟资源量。
其中,每一数据处理进程的模拟资源量趋近于该数据处理进程的消耗资源量且大于等于该数据处理进程的消耗资源量。
本发明的一个实施例中,上述总资源量可以是云计算平台提供的计算资源的总量。
另外,由于云计算平台提供能够用于被数据处理进程调用的计算资源,以及用于维持云计算平台运行的计算资源。则上述总资源量可以为云计算平台中能够用于被数据处理进程调用的计算资源的资源量。例如,上述总资源量可以为云计算平台提供的所有计算资源的资源量的80%等。
由于数据处理进程的计算资源是在创建数据处理进程之后、数据处理进程运行之前分配的,在分配计算资源的过程中难以预知数据处理进程在运行过程中所需的消耗资源量的具体数值,因此数据处理进程的已分配资源量难以准确的反映数据处理进程的消耗资源量。所以需要为各个数据处理进程模拟分配计算资源,使得模拟资源量趋近于该数据处理进程的消耗资源量且大于等于该数据处理进程的消耗资源量。由于模拟资源量趋近于消耗资源量,因此模拟资源量能够反映数据处理进程对计算资源的需求,根据模拟资源量确定的资源量阈值接近于数据处理进程所需的计算资源的资源量。
另外,数据处理进程处于运行状态,数据处理进程的计算资源已被分配,上述模拟分配计算资源的过程并不会改变数据处理进程已被分配的计算资源,仅通过模拟分配确定各数据处理进程的模拟资源量,不会对数据处理进程的运行造成影响。
具体的,由于在为各个数据处理进程分配计算资源时,各个数据处理进程的已分配资源量的总和小于等于总资源量,而每一数据处理进程的消耗资源量小于等于已分配资源量,因此各数据处理进程的消耗资源量的总和小于等于总资源量。所以以各个数据处理进程的消耗资源量为基准为各个数据处理进程模拟分配计算资源,可以使得每一数据处理进程的模拟资源量大于等于该数据处理进程的消耗资源量。
为各数据处理进程模拟分配计算资源,并得到各数据处理进程的模拟资源量的具体实现方式,可以参见后续实施例,这里暂不详述。
S104:根据各数据处理进程的模拟资源量,确定进行计算资源分配的资源量阈值。
具体的,上述资源量阈值是为数据处理进程分配计算资源时,所能分配的计算资源的最大资源量。
本发明的一个实施例中,可以对各数据处理进程的模拟资源量进行统计分析,得到各数据处理进程的模拟资源量的中位数,将上述中位数确定为进行计算资源分配的资源量阈值。
也可以对各数据处理进程的模拟资源量进行统计分析,得到各数据处理进程的模拟资源量的平均值、最大值等,作为进行计算资源分配的资源量阈值。
本发明的另一个实施例中,可以通过以下步骤A-步骤B确定上述资源量阈值。
步骤A:确定各数据处理进程的模拟资源量中的异常值。
具体的,由于计算资源的总资源量大于等于各数据处理进程的消耗资源量的总和,因此将上述总资源量的计算资源全部或部分模拟分配给各数据处理进程,可能会造成部分数据处理进程的模拟资源量大于消耗资源量,若数据处理进程的模拟资源量超过消耗资源量的数值过多,则该数据处理进程的模拟资源量难以准确地反映该数据处理进程对计算资源的需求。因此若直接根据各数据处理进程的模拟资源量计算资源分配的资源量阈值,会使得计算得到的资源量阈值不准确。基于上述情况,上述异常值可以理解为各数据处理进程的模拟资源量中过大或过小的值。
本发明的一个实施例中,可以计算各个模拟资源量的平均值与标准差,将与平均值之间差值的绝对值大于预设倍数标准差的模拟资源量确定为异常值。
例如,上述预设倍数可以为2倍、3倍等。
另外,也可以计算各个模拟资源量的平均值,将与平均值之间差值的绝对值大于预设数值的模拟资源量确定为异常值。
步骤B:根据各数据处理进程的模拟资源量中异常值之外的模拟资源量,确定进行计算资源分配的资源量阈值。
由于上述异常值为模拟资源量中数值异常的值,因此若使用包含异常值的模拟资源量确定资源量阈值,会导致计算得到的资源量阈值受异常值影响,准确度较低。因此采用异常值之外的模拟资源量确定资源量阈值,可以使得所确定的资源量阈值更准确。
S105:在存在新的数据处理进程的情况下,基于上述资源量阈值为上述新的数据处理进程分配计算资源。
具体的,可以为新的数据处理进程分配资源量小于等于上述资源量阈值的计算资源。
可以从上述空闲计算资源中为新的数据处理进程分配计算资源,上述空闲计算资源为:未被处于运行状态的数据处理进程使用的计算资源。
由以上可见,所配置的资源量阈值是根据各个数据处理进程的模拟资源量确定的,并且各个数据处理进程的模拟资源量能够满足该数据处理进程对计算资源的需求,因此,应用本发明实施例提供的方案配置的资源量阈值能够反映处于运行状态的各个数据处理进程对计算资源的需求。在此基础上,根据上述资源量阈值为新的数据处理进程分配计算资源,能够使得所分配的计算资源的资源量接近于新的数据处理进程所需的计算资源的资源量,从而可以减少为数据处理进程分配的计算资源的浪费。
参见图2,本发明实施例提供了第二种资源分配方法的流程示意图。与前述图1所示的实施例相比,上述步骤S103可以通过步骤S103A-S103C实现。
S103A:根据计算资源的总资源量,获得将计算资源平均分配给各数据处理进程时各数据处理进程的资源量,作为模拟资源量。
本发明的一个实施例中,可以按照以下表达式计算得到各个数据处理进程的模拟资源量:
L=S1/N
其中,L表示各个数据处理进程的模拟资源量,S1表示上述总资源量,N表示数据处理进程的数量。
本发明的另一个实施例中,还可以按照以下表达式计算得到各个数据处理进程的模拟资源量:
L=S1*Y/N
其中,上述Y表示预设的系数,具体的,Y可以为大于0小于1的数值。
S103B:存在第一进程时,计算第一进程中一个数据处理进程的模拟资源量超过消耗资源量的冗余资源量,并将上述一个数据处理进程的模拟资源量更新为该数据处理进程的消耗资源量。
其中,上述第一进程为:模拟资源量大于消耗资源量的数据处理进程。
由于将计算资源模拟平均分配给各个数据处理进程之后,各个数据处理进程的模拟资源量相同,但各个数据处理进程的消耗资源量不同,因此可能存在部分数据处理进程的模拟资源量大于消耗资源量,部分数据处理进程的模拟资源量小于消耗资源量。而为了满足各数据处理进程的模拟资源量均大于等于消耗资源量的需求,可以将资源量为第一进程的冗余资源量的计算资源分配给模拟资源量小于消耗资源量的数据处理进程。由于冗余资源量的计算资源被分配,因此第一进程被模拟分配的计算资源的资源量由原本的模拟资源量变更为消耗资源量。
具体的,上述一个数据处理进程可以为第一进程中的任意进程。
另外,也可以通过以下步骤C-步骤D计算一个数据处理进程的冗余资源量。
步骤C:确定第一进程中消耗资源量最小的一个数据处理进程。
由于消耗资源量最小的一个数据处理进程的消耗资源量与模拟资源量的差距最大,为满足模拟资源量趋近于消耗资源量的要求,可以优先将消耗资源量最小的第一进程的冗余计算资源分配给第二进程,更新消耗资源量最小的第一进程的模拟资源量。
本发明的一个实施例中,可以将各个数据处理进程按消耗资源量由小到大的顺序排序,在第一次确定冗余资源量的过程中,上述一个数据处理进程为排列顺序值最小的数据处理进程,在第二次确定冗余资源量的过程中,上述一个数据处理进程为排列顺序值第二小的数据处理进程,以此类推。
步骤D:计算上述一个数据处理进程的模拟资源量超过消耗资源量的冗余资源量。
具体的,可以计算模拟资源量与消耗资源量的差值作为冗余资源量。
S103C:将冗余计算资源模拟分配给各第二进程,并根据分配结果更新各第二进程的模拟资源量。
其中,上述冗余计算资源的资源量等于上述冗余资源量,上述第二进程为:模拟资源量小于消耗资源量的数据处理进程。
具体的,可以分别确定各第二进程的消耗资源量与模拟资源量的差值,优先将上述冗余计算资源分配给模拟资源量与消耗资源量的差值最大的第二进程,若分配之后模拟资源量达到消耗资源量,则再将剩余的冗余计算资源分配给上述差值第二高的第二进程,以此类推。
例如,上述冗余资源量为200M,上述第二进程中消耗资源量与模拟计算资源量的差值的最大值为150M,第二高的差值为100M,则将150M的冗余计算资源分配给上述差值为150M的第二进程,再将剩余的50M冗余计算资源分配给差值为100M的第二进程。
另外,也可以分别确定各第二进程的模拟资源量与消耗资源量的差值,根据各个差值的比例,将冗余计算资源分配给各个第二进程。
例如,各第二进程的差值分别为100M、150M、200M,则上述差值的比例为2:3:4,若上述冗余资源量为180M,则分别为各个第二进程分配40M、60M、80M的冗余计算资源。
再者,还可以将以资源均分的方式,将冗余计算资源模拟分配给各第二进程。
例如,上述冗余资源量为300M,存在3个第二进程,则分别为各个第二进程分配100M的冗余计算资源。
由于不同第二进程的消耗资源量不同,因此不同第二进程的消耗资源量与模拟资源量之间的差值不同。以资源均分的方式,将冗余计算资源模拟分配给各第二进程,每一第二进程被模拟分配的计算资源的资源量相同,因此根据分配结果更新第二进程的模拟资源量之后,可能会存在部分第二进程的模拟资源量大于消耗资源量,则上述第二进程变为第一进程,另一部分第二进程的模拟资源量可能依旧小于消耗资源量。
存在模拟资源量小于消耗资源量的数据处理进程时,还无法满足每一数据处理进程的模拟资源量均大于等于该数据处理进程的消耗资源量的需求,则需要继续模拟分配计算资源,则返回上述S103B的步骤。直至不存在模拟资源量小于消耗资源量的数据处理进程。
由以上可见,本发明实施例提供的方案中将计算资源平均分配给各数据处理进程之后,再依次将模拟资源量大于消耗资源量的第一进程的冗余计算资源分配给各个模拟资源量小于消耗资源量的第二进程,使得第一进程的模拟资源量减小,从而趋近于消耗资源量,并使得第二进程的模拟资源量增加,从而趋近于消耗资源量。通过循环执行将冗余资源量分配给第二进程的过程,使得各个第二进程的模拟资源量均达到消耗资源量,从而使得每一数据处理进程的模拟资源量均大于等于消耗资源量。
本发明的另一个实施例中,除了可以通过前述步骤S103A获得各数据处理进程的模拟资源量之外,还可以根据各数据处理进程的消耗资源量的比值,按比值将计算资源模拟分配给各数据处理进程。
另外,本发明的一个实施例中,在通过前述图2所示的实施例得到各数据处理进程的模拟资源量之外,还可以通过以下步骤E-步骤H得到各数据处理进程的模拟资源量。
步骤E:根据计算资源的总资源量,为各数据处理进程模拟分配固定的模拟资源量的计算资源。
具体的,上述固定的模拟资源量的总和小于等于上述总资源量。使得被模拟分配给各数据处理进程的计算资源的资源量不会超过上述总资源量。
例如,存在10个数据处理进程,上述总资源量为2000M,固定的模拟资源量为100M,则固定的模拟资源量的总和小于总资源量。
步骤F:存在第一进程时,计算第一进程中一个数据处理进程的模拟资源量超过消耗资源量的冗余资源量,并将上述一个数据处理进程的模拟资源量更新为该数据处理进程的消耗资源量。
由于每一数据处理进程被模拟分配的资源量均为固定的模拟资源量,但各个数据处理进程的消耗资源量不同,因此可能存在模拟资源量大于消耗资源量的数据处理进程,也可能存在模拟资源量小于消耗资源量的数据处理进程。因此可以将模拟资源量大于消耗资源量的第一进程的冗余资源量的计算资源分配给模拟资源量小于消耗资源量的数据处理进程。
例如,上述固定的模拟资源量为100M,数据处理进程P的消耗资源量为50M,数据处理进程Q的消耗资源量为200M,则数据处理进程P的模拟资源量100M大于消耗资源量50M,数据处理进程Q的模拟资源量100M小于消耗资源量200M。则数据处理进程P是第一进程,在数据处理进程P是上述一个数据处理进程的情况下,上述冗余资源量为50M。
步骤G:将冗余计算资源模拟分配给各第二进程,并根据分配结果更新第二进程的模拟资源量。
若存在模拟资源量小于消耗资源量的数据处理进程,且存在模拟资源量大于消耗资源量的数据处理进程,则返回执行上述步骤F,重新确定第一进程中一个数据处理进程的冗余资源量,并将冗余计算资源模拟分配给各第二进程。
若存在模拟资源量小于消耗资源量的数据处理进程,但不存在冗余资源量大于消耗资源量的数据处理进程,则执行步骤H。
步骤H:将剩余资源量中的固定资源量的计算资源模拟分配给各第二进程,并根据分配结果更新第二进程的模拟资源量。
其中,上述剩余资源量为总资源量的计算资源中未被模拟分配的计算资源的资源量。
具体的,可以以资源均分的方式,将固定资源量的计算资源模拟分配给各第二进程。也可以按照各个第二进程的消耗资源量与模拟资源量的差值的比值,将固定资源量的计算资源模拟分配给各第二进程。
若存在模拟资源量小于消耗资源量的数据处理进程,则重新执行上述步骤H。
由于上述计算资源可以包括CPU资源和/或内存资源,因此可以分别配置CPU资源量与内存资源量。
在上述计算资源为CPU资源的情况下,参见图3,本发明实施例提供了一种CPU资源分配方法的流程示意图,可以通过以下步骤S301-S309为新的数据处理进程分配CPU资源。
S301:分别确定各数据处理进程的已分配CPU资源量与最大CPU资源使用率。
S302:根据各数据处理进程的已分配CPU资源量与最大CPU资源使用率,确定各数据处理进程的消耗CPU资源量。
具体的,可以计算已分配CPU资源量与最大CPU资源使用率的乘积作为消耗CPU资源量。
S303:以CPU资源均分的方式,将最大CPU资源量的计算资源模拟分配给各个数据处理进程,确定各数据处理进程的模拟CPU资源量。
S304:确定各个数据处理进程的消耗CPU资源量由小到大的CPU资源量排序。
S305:存在模拟CPU资源量大于消耗CPU资源量的第三进程时,确定第三进程中CPU资源量排序值最小的一个数据处理进程的模拟CPU资源量超过消耗CPU资源量的冗余CPU资源量,并将上述一个数据处理进程的模拟资源量更新为该数据处理进程的消耗CPU资源量。
S306:将冗余CPU计算资源模拟分配给模拟CPU资源量小于消耗CPU资源量的各第四进程,并根据分配结果更新各第四进程的模拟CPU资源量。
其中,上述冗余CPU计算资源的资源量等于上述冗余CPU资源量。
在存在模拟CPU资源量小于消耗CPU资源量的数据处理进程时,返回上述S305的步骤。
S307:计算各数据处理进程的模拟CPU资源量的平均值与标准差,根据计算得到的平均值与标准差,确定模拟CPU资源量中的异常值。
具体的,可以将模拟CPU资源量与平均值差值的绝对值小于2倍标准差的模拟CPU资源量确定为异常值。
S308:对上述异常值之外的模拟CPU资源量进行统计分析,得到各数据处理进程的异常值之外的模拟CPU资源量的中位数,将上述中位数确定为进行CPU资源分配的CPU资源量阈值。
S309:在存在新的数据处理进程的情况下,基于上述CPU资源量阈值为上述新的数据处理进程分配CPU资源。
在上述计算资源为内存资源的情况下,参见图4,本发明实施例提供了一种内存资源分配方法的流程示意图,可以通过以下步骤S401-S409为新的数据处理进程分配内存资源。
S401:分别确定各数据处理进程的已分配内存资源量与最大内存资源使用率。
S402:根据各数据处理进程的已分配内存资源量与最大内存资源使用率,确定各数据处理进程的消耗内存资源量。
具体的,可以计算已分配内存资源量与最大内存资源使用率的乘积作为消耗内存资源量。
S403:以内存资源均分的方式,将最大内存资源量的计算资源模拟分配给各个数据处理进程,确定各数据处理进程的模拟内存资源量。
S404:确定各个数据处理进程的消耗内存资源量由小到大的内存资源量排序。
S405:存在模拟内存资源量大于消耗内存资源量的第五进程时,确定第五进程中内存资源量排序值最小的一个数据处理进程的模拟内存资源量超过消耗内存资源量的冗余内存资源量,并将上述一个数据处理进程的模拟资源量更新为该数据处理进程的消耗内存资源量。
S406:将冗余内存计算资源模拟分配给模拟内存资源量小于消耗内存资源量的各第六进程,并根据分配结果更新各第六进程的模拟内存资源量。
其中,上述冗余内存计算资源的资源量等于上述冗余内存资源量。
在存在模拟内存资源量小于消耗内存资源量的数据处理进程时,返回上述S405的步骤。
S407:计算各数据处理进程的模拟内存资源量的平均值与标准差,根据计算得到的平均值与标准差,确定模拟内存资源量中的异常值。
具体的,可以将模拟内存资源量与平均值差值的绝对值小于2倍标准差的模拟内存资源量确定为异常值。
S408:对上述异常值之外的模拟内存资源量进行统计分析,得到各数据处理进程的异常值之外的模拟内存资源量的中位数,将上述中位数确定为进行内存资源分配的内存资源量阈值。
S409:在存在新的数据处理进程的情况下,基于上述内存资源量阈值为上述新的数据处理进程分配内存资源。
由于上述计算资源往往同时包含CPU资源与内存资源,因此可以同时执行上述图3与图4所示的实施例,从而为新的数据处理进程分配CPU资源与内存资源。
与前述资源分配方法相对应,本发明实施例还提供了一种资源分配装置。
参见图5,本发明实施例提供了第一种资源分配装置的结构示意图,上述装置包括:
数据获得模块501,用于获得处于运行状态的各数据处理进程的已分配资源量及最大资源使用率;
消耗量确定模块502,用于根据各数据处理进程的已分配资源量及最大资源使用率,确定各数据处理进程的消耗资源量;
资源量确定模块503,用于以各个数据处理进程的消耗资源量为基准,根据计算资源的总资源量,为各数据处理进程模拟分配计算资源,得到各数据处理进程的模拟资源量,其中,每一数据处理进程的模拟资源量趋近于该数据处理进程的消耗资源量且大于等于该数据处理进程的消耗资源量;
阈值计算模块504,用于根据各数据处理进程的模拟资源量,确定进行计算资源分配的资源量阈值;
资源分配模块505,用于在存在新的数据处理进程的情况下,基于所述资源量阈值为所述新的数据处理进程分配计算资源。
由以上可见,所配置的资源量阈值是根据各个数据处理进程的模拟资源量确定的,并且各个数据处理进程的模拟资源量能够满足该数据处理进程对计算资源的需求,因此,应用本发明实施例提供的方案配置的资源量阈值能够反映处于运行状态的各个数据处理进程对计算资源的需求。在此基础上,根据上述资源量阈值为新的数据处理进程分配计算资源,能够使得所分配的计算资源的资源量接近于新的数据处理进程所需的计算资源的资源量,从而可以减少为数据处理进程分配的计算资源的浪费。
参见图6,本发明实施例提供了第二种资源分配装置的结构示意图,与前述图5所示的实施例相比,上述资源量确定模块503,包括:
资源量获得子模块503A,用于根据计算资源的总资源量,获得将计算资源平均分配给各数据处理进程时各数据处理进程的资源量,作为模拟资源量;
冗余计算子模块503B,用于存在第一进程时,计算第一进程中一个数据处理进程的模拟资源量超过消耗资源量的冗余资源量,并将所述一个数据处理进程的模拟资源量更新为该数据处理进程的消耗资源量,其中,所述第一进程为:模拟资源量大于消耗资源量的数据处理进程;
冗余分配子模块503C,用于将冗余计算资源模拟分配给各第二进程,并根据分配结果更新各第二进程的模拟资源量,其中,所述冗余计算资源的资源量等于所述冗余资源量,所述第二进程为:模拟资源量小于消耗资源量的数据处理进程,存在模拟资源量小于消耗资源量的数据处理进程时,返回执行所述冗余计算子模块503B。
由以上可见,本发明实施例提供的方案中将计算资源平均分配给各数据处理进程之后,再依次将模拟资源量大于消耗资源量的第一进程的冗余计算资源分配给各个模拟资源量小于消耗资源量的第二进程,使得第一进程的模拟资源量减小,从而趋近于消耗资源量,并使得第二进程的模拟资源量增加,从而趋近于消耗资源量。通过循环执行将冗余资源量分配给第二进程的过程,使得各个第二进程的模拟资源量均达到消耗资源量,从而使得每一数据处理进程的模拟资源量均大于等于消耗资源量。
本发明的一个实施例中,上述冗余计算子模块503B,具体用于:
确定第一进程中消耗资源量最小的一个数据处理进程;
计算所述一个数据处理进程的模拟资源量超过消耗资源量的冗余资源量,并将所述一个数据处理进程的模拟资源量更新为该数据处理进程的消耗资源量。
由以上可见,由于消耗资源量最小的一个数据处理进程的消耗资源量与模拟资源量的差距最大,为满足模拟资源量趋近于消耗资源量的要求,可以优先将消耗资源量最小的第一进程的冗余计算资源分配给第二进程,更新消耗资源量最小的第一进程的模拟资源量。
本发明的一个实施例中,上述冗余分配子模块503C,具体用于:
以资源均分的方式,将冗余计算资源模拟分配给各第二进程,并根据分配结果更新各第二进程的模拟资源量。
本发明的一个实施例中,上述消耗量确定模块502,具体用于:
计算各数据处理进程的已分配资源量与最大资源使用率的乘积,并将计算结果确定为各数据处理进程的消耗资源量。
本发明的一个实施例中,上述阈值计算模块504,具体用于:
对各数据处理进程的模拟资源量进行统计分析,得到各数据处理进程的模拟资源量的中位数,将所述中位数确定为进行计算资源分配的资源量阈值。
本发明的一个实施例中,上述阈值计算模块504,具体用于:
确定各数据处理进程的模拟资源量中的异常值;
根据各数据处理进程的模拟资源量中异常值之外的模拟资源量,确定进行计算资源分配的资源量阈值。
由以上可见,由于上述异常值为模拟资源量中过大或过小的值,因此若使用包含异常值的模拟资源量确定资源量阈值,会导致计算得到的资源量阈值受异常值影响,准确度较低。因此采用异常值之外的模拟资源量确定资源量阈值,可以使得所确定的资源量阈值更准确。
本发明的一个实施例中,所述数据处理进程运行于Kubernetes集群的Pod中,所述计算资源包括CPU资源和/或内存资源。
本发明实施例还提供了一种电子设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,
存储器703,用于存放计算机程序;
处理器701,用于执行存储器703上所存放的程序时,实现上述资源分配方法任一所述的方法步骤。
应用本发明实施例提供的电子设备分配资源时,所配置的资源量阈值是根据各个数据处理进程的模拟资源量确定的,并且各个数据处理进程的模拟资源量能够满足该数据处理进程对计算资源的需求,因此,应用本发明实施例提供的方案配置的资源量阈值能够反映处于运行状态的各个数据处理进程对计算资源的需求。在此基础上,根据上述资源量阈值为新的数据处理进程分配计算资源,能够使得所分配的计算资源的资源量接近于新的数据处理进程所需的计算资源的资源量,从而可以减少为数据处理进程分配的计算资源的浪费。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述资源分配方法任一所述的方法步骤。
应用本实施例提供的计算机可读存储介质中存储的计算机程序分配资源时,所配置的资源量阈值是根据各个数据处理进程的模拟资源量确定的,并且各个数据处理进程的模拟资源量能够满足该数据处理进程对计算资源的需求,因此,应用本发明实施例提供的方案配置的资源量阈值能够反映处于运行状态的各个数据处理进程对计算资源的需求。在此基础上,根据上述资源量阈值为新的数据处理进程分配计算资源,能够使得所分配的计算资源的资源量接近于新的数据处理进程所需的计算资源的资源量,从而可以减少为数据处理进程分配的计算资源的浪费。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述资源分配方法任一所述的方法步骤。
执行本实施例提供的计算机程序产品分配资源时,所配置的资源量阈值是根据各个数据处理进程的模拟资源量确定的,并且各个数据处理进程的模拟资源量能够满足该数据处理进程对计算资源的需求,因此,应用本发明实施例提供的方案配置的资源量阈值能够反映处于运行状态的各个数据处理进程对计算资源的需求。在此基础上,根据上述资源量阈值为新的数据处理进程分配计算资源,能够使得所分配的计算资源的资源量接近于新的数据处理进程所需的计算资源的资源量,从而可以减少为数据处理进程分配的计算资源的浪费。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质和计算机程序产品而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (16)
1.一种资源分配方法,其特征在于,所述方法包括:
获得处于运行状态的各数据处理进程的已分配资源量及最大资源使用率,所述最大资源使用率表征了数据处理进程运行过程中消耗的资源相对于数据处理进程的已分配资源的最大占比;
根据各数据处理进程的已分配资源量及最大资源使用率,确定各数据处理进程的消耗资源量;
以各个数据处理进程的消耗资源量为基准,根据计算资源的总资源量,为各数据处理进程模拟分配计算资源,得到各数据处理进程的模拟资源量,其中,每一数据处理进程的模拟资源量趋近于该数据处理进程的消耗资源量且大于等于该数据处理进程的消耗资源量;
根据各数据处理进程的模拟资源量,确定进行计算资源分配的资源量阈值;
在存在新的数据处理进程的情况下,基于所述资源量阈值为所述新的数据处理进程分配计算资源;
以各个数据处理进程的消耗资源量为基准,根据计算资源的总资源量,为各数据处理进程模拟分配计算资源,得到各数据处理进程的模拟资源量,包括:根据计算资源的总资源量,获得将计算资源平均分配给各数据处理进程时各数据处理进程的资源量,作为模拟资源量;存在第一进程时,计算第一进程中一个数据处理进程的模拟资源量超过消耗资源量的冗余资源量,并将所述一个数据处理进程的模拟资源量更新为该数据处理进程的消耗资源量,其中,所述第一进程为:模拟资源量大于消耗资源量的数据处理进程;将冗余计算资源模拟分配给各第二进程,并根据分配结果更新各第二进程的模拟资源量,其中,所述冗余计算资源的资源量等于所述冗余资源量,所述第二进程为:模拟资源量小于消耗资源量的数据处理进程;存在模拟资源量小于消耗资源量的数据处理进程时,返回所述存在第一进程时,计算第一进程中一个数据处理进程的模拟资源量超过消耗资源量的冗余资源量的步骤。
2.根据权利要求1所述的方法,其特征在于,所述计算第一进程中一个数据处理进程的模拟资源量超过消耗资源量的冗余资源量,包括:
确定第一进程中消耗资源量最小的一个数据处理进程;
计算所述一个数据处理进程的模拟资源量超过消耗资源量的冗余资源量。
3.根据权利要求1或2所述的方法,其特征在于,所述将冗余计算资源模拟分配给各第二进程,包括:
以资源均分的方式,将冗余计算资源模拟分配给各第二进程。
4.根据权利要求1或2所述的方法,其特征在于,所述根据各数据处理进程的已分配资源量及最大资源使用率,确定各数据处理进程的消耗资源量,包括:
计算各数据处理进程的已分配资源量与最大资源使用率的乘积,并将计算结果确定为各数据处理进程的消耗资源量。
5.根据权利要求1或2所述的方法,其特征在于,所述根据各数据处理进程的模拟资源量,确定进行计算资源分配的资源量阈值,包括:
对各数据处理进程的模拟资源量进行统计分析,得到各数据处理进程的模拟资源量的中位数,将所述中位数确定为进行计算资源分配的资源量阈值。
6.根据权利要求1或2所述的方法,其特征在于,所述根据各数据处理进程的模拟资源量,确定进行计算资源分配的资源量阈值,包括:
确定各数据处理进程的模拟资源量中的异常值;
根据各数据处理进程的模拟资源量中异常值之外的模拟资源量,确定进行计算资源分配的资源量阈值。
7.根据权利要求1或2所述的方法,其特征在于,所述数据处理进程运行于Kubernetes集群的Pod中,所述计算资源包括CPU资源和/或内存资源。
8.一种资源分配装置,其特征在于,所述装置包括:
数据获得模块,用于获得处于运行状态的各数据处理进程的已分配资源量及最大资源使用率,所述最大资源使用率表征了数据处理进程运行过程中消耗的资源相对于数据处理进程的已分配资源的最大占比;
消耗量确定模块,用于根据各数据处理进程的已分配资源量及最大资源使用率,确定各数据处理进程的消耗资源量;
资源量确定模块,用于以各个数据处理进程的消耗资源量为基准,根据计算资源的总资源量,为各数据处理进程模拟分配计算资源,得到各数据处理进程的模拟资源量,其中,每一数据处理进程的模拟资源量趋近于该数据处理进程的消耗资源量且大于等于该数据处理进程的消耗资源量;
阈值计算模块,用于根据各数据处理进程的模拟资源量,确定进行计算资源分配的资源量阈值;
资源分配模块,用于在存在新的数据处理进程的情况下,基于所述资源量阈值为所述新的数据处理进程分配计算资源;
其中,所述资源量确定模块,包括:
资源量获得子模块,用于根据计算资源的总资源量,获得将计算资源平均分配给各数据处理进程时各数据处理进程的资源量,作为模拟资源量;
冗余计算子模块,用于存在第一进程时,计算第一进程中一个数据处理进程的模拟资源量超过消耗资源量的冗余资源量,并将所述一个数据处理进程的模拟资源量更新为该数据处理进程的消耗资源量,其中,所述第一进程为:模拟资源量大于消耗资源量的数据处理进程;
冗余分配子模块,用于将冗余计算资源模拟分配给各第二进程,并根据分配结果更新各第二进程的模拟资源量,其中,所述冗余计算资源的资源量等于所述冗余资源量,所述第二进程为:模拟资源量小于消耗资源量的数据处理进程,存在模拟资源量小于消耗资源量的数据处理进程时,返回执行所述冗余计算子模块。
9.根据权利要求8所述的装置,其特征在于,所述冗余计算子模块,具体用于:
确定第一进程中消耗资源量最小的一个数据处理进程;
计算所述一个数据处理进程的模拟资源量超过消耗资源量的冗余资源量,并将所述一个数据处理进程的模拟资源量更新为该数据处理进程的消耗资源量。
10.根据权利要求8或9所述的装置,其特征在于,所述冗余分配子模块,具体用于:
以资源均分的方式,将冗余计算资源模拟分配给各第二进程,并根据分配结果更新各第二进程的模拟资源量。
11.根据权利要求8或9所述的装置,其特征在于,所述消耗量确定模块,具体用于:
计算各数据处理进程的已分配资源量与最大资源使用率的乘积,并将计算结果确定为各数据处理进程的消耗资源量。
12.根据权利要求8或9所述的装置,其特征在于,所述阈值计算模块,具体用于:
对各数据处理进程的模拟资源量进行统计分析,得到各数据处理进程的模拟资源量的中位数,将所述中位数确定为进行计算资源分配的资源量阈值。
13.根据权利要求8或9所述的装置,其特征在于,所述阈值计算模块,具体用于:
确定各数据处理进程的模拟资源量中的异常值;
根据各数据处理进程的模拟资源量中异常值之外的模拟资源量,确定进行计算资源分配的资源量阈值。
14.根据权利要求8或9所述的装置,其特征在于,所述数据处理进程运行于Kubernetes集群的Pod中,所述计算资源包括CPU资源和/或内存资源。
15.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011004507.6A CN112130997B (zh) | 2020-09-22 | 2020-09-22 | 一种资源分配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011004507.6A CN112130997B (zh) | 2020-09-22 | 2020-09-22 | 一种资源分配方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112130997A CN112130997A (zh) | 2020-12-25 |
CN112130997B true CN112130997B (zh) | 2022-09-20 |
Family
ID=73842537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011004507.6A Active CN112130997B (zh) | 2020-09-22 | 2020-09-22 | 一种资源分配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112130997B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988380B (zh) * | 2021-02-25 | 2022-06-17 | 电子科技大学 | 一种基于Kubernetes的集群负载调节方法及存储介质 |
CN117472589B (zh) * | 2023-12-27 | 2024-03-12 | 山东合能科技有限责任公司 | 一种园区网络服务管理方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104881325A (zh) * | 2015-05-05 | 2015-09-02 | 中国联合网络通信集团有限公司 | 一种资源调度方法和资源调度系统 |
CN107292741A (zh) * | 2017-07-24 | 2017-10-24 | 中国银联股份有限公司 | 一种资源分配方法和装置 |
CN108845874A (zh) * | 2018-06-25 | 2018-11-20 | 腾讯科技(深圳)有限公司 | 资源的动态分配方法及服务器 |
US10237200B1 (en) * | 2013-10-18 | 2019-03-19 | Google Llc | Allocating resources |
-
2020
- 2020-09-22 CN CN202011004507.6A patent/CN112130997B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10237200B1 (en) * | 2013-10-18 | 2019-03-19 | Google Llc | Allocating resources |
CN104881325A (zh) * | 2015-05-05 | 2015-09-02 | 中国联合网络通信集团有限公司 | 一种资源调度方法和资源调度系统 |
CN107292741A (zh) * | 2017-07-24 | 2017-10-24 | 中国银联股份有限公司 | 一种资源分配方法和装置 |
CN108845874A (zh) * | 2018-06-25 | 2018-11-20 | 腾讯科技(深圳)有限公司 | 资源的动态分配方法及服务器 |
Non-Patent Citations (1)
Title |
---|
"云计算资源调度研究综述";林伟伟;《计算机科学》;20121031;第39卷(第10期);第1-6页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112130997A (zh) | 2020-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106528280B (zh) | 一种任务分配方法和系统 | |
CN109189563B (zh) | 资源调度方法、装置、计算设备及存储介质 | |
US8024737B2 (en) | Method and a system that enables the calculation of resource requirements for a composite application | |
CN108205469B (zh) | 一种基于MapReduce的资源分配方法及服务器 | |
IES20100757A2 (en) | A resource allocation system | |
CN112130997B (zh) | 一种资源分配方法及装置 | |
CN111752706B (zh) | 资源配置方法、装置及存储介质 | |
US20190212995A1 (en) | Risk Aware Application Placement Modeling and Optimization in High Turnover DevOps Environments | |
US10691378B1 (en) | Data replication priority management | |
CN113378498B (zh) | 一种任务分配方法及装置 | |
CN111324471A (zh) | 服务调整方法、装置、设备及存储介质 | |
CN112148468A (zh) | 一种资源调度方法、装置、电子设备及存储介质 | |
US11954419B2 (en) | Dynamic allocation of computing resources for electronic design automation operations | |
CN115098257A (zh) | 一种资源调度方法、装置、设备以及存储介质 | |
WO2022037472A1 (en) | Scalable operators for automatic management of workloads in hybrid cloud environments | |
CN116483546B (zh) | 分布式训练任务调度方法、装置、设备及存储介质 | |
CN108429704B (zh) | 一种节点资源分配方法及装置 | |
CN115098269A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN115878332A (zh) | 深度学习网络中的内存资源分配方法、装置、设备及介质 | |
CN112527482A (zh) | 基于移动边缘云平台的任务管理方法及系统 | |
CN110618855A (zh) | 一种任务分配方法、装置、电子设备及存储介质 | |
Rani et al. | Stochastic simulator for priority based task in grid environment | |
US20230266997A1 (en) | Distributed scheduling in container orchestration engines | |
CN112579281B (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN110868564B (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 |