CN115391023A - 多任务容器集群的计算资源优化方法及装置 - Google Patents
多任务容器集群的计算资源优化方法及装置 Download PDFInfo
- Publication number
- CN115391023A CN115391023A CN202110574006.XA CN202110574006A CN115391023A CN 115391023 A CN115391023 A CN 115391023A CN 202110574006 A CN202110574006 A CN 202110574006A CN 115391023 A CN115391023 A CN 115391023A
- Authority
- CN
- China
- Prior art keywords
- target
- container
- resource
- node
- target node
- 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
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/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种多任务容器集群的计算资源优化方法及装置,所述方法包括:获取目标节点的资源使用率;基于所述目标节点的资源使用率获取所述目标节点上的第一目标容器;基于所述目标节点的资源比例与所述第一目标容器的资源比例筛选所述第一目标容器,得到第二目标容器;基于所述第二目标容器内的所有任务资源需求量将所述第二目标容器按照预设顺序进行排序;基于排序结果将所述第二目标容器调度给第一目标节点,所述第一目标节点为目标节点中已部署了容器的一个节点;基于匈牙利算法对所述第二目标容器进行迁移。本发明能够提高资源利用率的同时,减少容器迁移次数,保证集群负载更加均衡,提升系统整体运行效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种多任务容器集群的计算资源优化方法及装置。
背景技术
随着云计算和大数据的快速发展,容器技术作为云原生技术的最底层基石,逐渐兴起。在实际搭建Docker容器的云计算环境下,由于容器会搭载多个任务在节点上运行,以及集群工作负载的动态变化特征,导致负载不均衡。
现有的技术方案对于单一任务的工作负载不稳定和容器大小变化幅度较大进行处理,能够有效减少资源碎片,提高资源利用率,或者,采用传统的容器迁移策略减少容器迁移次数,但缺少两者兼顾且同时最优的方法,另外,目前缺少对于多个任务出现负载不均衡的情况进行处理的方法。
综上,相关技术中对于至少一个任务出现负载不均衡进行处理时能够同时提高资源利用率和减少容器迁移次数亟待解决。
发明内容
本发明提供一种多任务容器集群的计算资源优化方法及装置,用以解决相关技术中对于至少一个任务出现负载不均衡进行处理时能够同时提高资源利用率和减少容器迁移次数的技术问题。
第一方面,本发明提供一种多任务容器集群的计算资源优化方法,包括:
获取目标节点的资源使用率,所述目标节点为集群内的至少一个节点;
基于所述目标节点的资源使用率获取所述目标节点上的第一目标容器,第一目标容器为目标节点上的至少一个容器;
分别获取所述目标节点和所述第一目标容器的资源比例;
基于所述目标节点的资源比例与所述第一目标容器的资源比例筛选所述第一目标容器,得到第二目标容器;
基于所述第二目标容器内的所有任务资源需求量将所述第二目标容器按照预设顺序进行排序;
基于排序结果将所述第二目标容器调度给第一目标节点,所述第一目标节点为目标节点中已部署了容器的一个节点;
基于匈牙利算法对所述第二目标容器进行迁移。
在一个实施例中,所述目标节点的资源使用率包括所述目标节点的中央处理器CPU资源使用率和所述目标节点的内存资源使用率中的至少一项;
所述基于所述目标节点的资源使用率获取所述目标节点上的第一目标容器,具体包括:
在所述目标节点的CPU资源使用率小于第一预设阈值,或所述目标节点的内存资源使用率小于第一预设阈值的情况下,获取所述目标节点上的第一目标容器。
在一个实施例中,所述基于所述目标节点的资源比例与所述第一目标容器的资源比例筛选所述第一目标容器,得到第二目标容器,具体包括:
在所述目标节点的资源比例与所述第一目标容器的资源比例满足预设条件的情况下,对所述第一目标容器进行筛选,得到第二目标容器;
其中,所述预设条件为:|Ic1/Ir1-Ic2/Ir2|>Δk,Ic1/Ir1表示所述目标节点的资源比例,Ic2/Ir2表示所述第一目标容器的资源比例,Ic1表示所述目标节点的CPU资源需求量,Ir1表示所述目标节点的内存资源需求量,Ic2表示所述第一目标容器的CPU资源需求量,Ir2表示所述第一目标容器的内存资源需求量,Δk为第二预设阈值。
在一个实施例中,所述基于排序结果将所述第二目标容器调度给第一目标节点,具体包括:
将排序后的所述第二目标容器分别部署给目标节点中已部署了容器的每一个节点;
计算所述每一个节点的CPU资源与内存资源的偏差比;
选择所述偏差比最小的节点作为第一目标节点;
将所述第二目标容器调度给所述第一目标节点。
在一个实施例中,所述基于匈牙利算法对所述第二目标容器进行迁移,具体包括:
基于所述第二目标容器获取第一容器和第二容器,所述第一容器和所述第二容器为所述第二目标容器中的任意两个不同的容器;
基于匈牙利算法将所述第一容器和所述第二容器进行匹配,得到目标匹配结果;
基于目标匹配结果将所述第一容器内的计算任务与所述第二容器内的计算任务相互迁移。
在一个实施例中,所述基于匈牙利算法将所述第一容器和所述第二容器进行匹配,得到目标匹配结果,具体包括:
获取所述第一容器内的第一目标计算任务,所述第一目标计算任务为所述第一容器内的任一计算任务;
基于深度优先搜索DFS算法从所述第二容器中获取与所述第一目标计算任务相连的第二目标计算任务;
基于所述第一目标计算任务与所述第二目标计算任务,得到目标匹配结果。
在一个实施例中,所述多任务容器集群的计算资源优化方法,还包括:
获取所述第二目标容器配置的更新信息;
基于所述更新信息更新所述第二目标容器的本地配置信息。
第二方面,本发明提供一种多任务容器集群的计算资源优化装置,包括:
第一获取单元,用于获取目标节点的资源使用率,所述目标节点为集群内的至少一个节点;
第二获取单元,用于基于所述目标节点的资源使用率获取所述目标节点上的第一目标容器,第一目标容器为目标节点上的至少一个容器;
第三获取单元,用于分别获取所述目标节点和所述第一目标容器的资源比例;
筛选单元,用于基于所述目标节点的资源比例与所述第一目标容器的资源比例筛选所述第一目标容器,得到第二目标容器;
排序单元,用于基于所述第二目标容器内的所有任务资源需求量将所述第二目标容器按照预设顺序进行排序;
调度单元,用于基于排序结果将所述第二目标容器调度给第一目标节点,所述第一目标节点为目标节点中已部署了容器的一个节点;
迁移单元,用于基于匈牙利算法对所述第二目标容器进行迁移。
第三方面,本发明提供一种电子设备,包括存储器和存储有计算机程序的存储器,所述处理器执行所述程序时实现第一方面所述多任务容器集群的计算资源优化方法的步骤。
第四方面,本发明提供一种处理器可读存储介质,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使所述处理器执行第一方面所述多任务容器集群的计算资源优化方法的步骤。
本发明提供的多任务容器集群的计算资源优化方法及装置,通过目标节点的资源使用率获取目标节点上的第一目标容器,基于所述目标节点的资源比例与第一目标容器的资源比例筛选第一目标容器,得到第二目标容器,基于第二目标容器内的所有任务资源需求量将第二目标容器按照预设顺序进行排序,基于排序结果将第二目标容器调度给第一目标节点,基于匈牙利算法对第二目标容器进行迁移,能够提高资源利用率的同时,减少容器迁移次数,保证集群负载更加均衡,提升系统整体运行效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的多任务容器集群的计算资源优化方法的流程示意图;
图2是本发明提供的基于匈牙利算法对第二目标容器进行迁移的流程示意图;
图3是本发明提供的基于深度优先搜索(Depth-First-Search,DFS)算法寻找增广路径的场景示意图;
图4是本发明提供的多任务容器集群的计算资源优化装置的结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由于容器内待处理任务的多样性,集群运行一段时间后,会出现各个计算节点的中央处理器(central processing unit,CPU)使用率与内存使用率不均衡的情况,导致计算资源出现倾斜的问题。
例如,某个计算节点上某个待处理任务的CPU资源的使用率很高,但内存资源的使用率很低,导致该计算节点产生较多的资源碎片,进而导致该计算节点的剩余资源无法进行分配,造成了计算节点的计算资源出现极大浪费,降低资源的利用率。
现有的解决方案主要是针对单个待处理任务出现的负载不均衡的问题进行处理,可以有效减少资源碎片,提高资源利用率,或者,采用传统的容器迁移策略减少容器迁移次数,缺少能够提高资源利用率的同时减少容器迁移策略的方法。
另外,在以分布式框架为基础的云计算环境下,不同容器搭载的待处理任务之间是相互联系或相互合作的,现有的技术方案主要是对于单个任务出现负载不均衡的情形进行处理,对于多个任务出现负载不均衡的情形亟待解决。
为了解决相关技术中对于至少一个任务出现负载不均衡进行处理时能够同时提高资源利用率和减少容器迁移次数的技术问题,本发明实施例提供一种多任务容器集群的计算资源优化方法,图1是本发明实施例提供的多任务容器集群的计算资源优化方法的流程示意图。如图1所示,本发明提供的多任务容器集群的计算资源优化方法,该方法包括:
步骤100、获取目标节点的资源使用率,所述目标节点为集群内的至少一个节点。
集群用于指示物理集中且统一管理的至少一个主机,各主机相互独立,但使用单一系统进行管理。
节点用于指示数据终端设备,例如集群内的任一主机。节点上部署了至少一个容器。
资源使用率用于指示目标节点已使用的资源量与资源总量的占比。
可选地,资源使用率包括CPU资源使用率和内存资源使用率中的至少一项。
CPU资源使用率用于指示目标节点已使用的CPU资源量与CPU资源总量的占比。
内存资源使用率用于指示目标节点已使用的内存资源量与内存资源总量的占比。
一种实施方式中,某个节点的CPU资源总量为R1,内存资源总量为R2,已经使用的CPU资源量为C1,已经使用的内存资源量为P1,某个容器的CPU资源需求量为C2,内存资源需求量为P2,对于该节点而言,将该容器部署到该节点上之后,当前节点的CPU资源使用率为内存资源使用率为
步骤101、基于所述目标节点的资源使用率获取所述目标节点上的第一目标容器,第一目标容器为目标节点上的至少一个容器。
可选地,所述目标节点的资源使用率包括所述目标节点的中央处理器CPU资源使用率和所述目标节点的内存资源使用率中的至少一项;
所述基于所述目标节点的资源使用率获取所述目标节点上的第一目标容器,具体包括:
在所述目标节点的CPU资源使用率小于第一预设阈值,或所述目标节点的内存资源使用率小于第一预设阈值的情况下,获取所述目标节点上的第一目标容器。
容器用于指示将操作系统层虚拟化,是镜像的运行实例。
镜像是用于创建容器的模板。
可选地,第一预设阈值为30%。
需要说明的是,第一目标容器为在目标节点满足目标节点的CPU资源使用率小于第一预设阈值或内存资源使用率小于第一预设阈值的情况下,该目标节点上的所有容器。
一种实施方式中,在目标节点的CPU资源使用率小于30%或内存资源使用率小于30%的情况下,获取目标节点上的第一目标容器。
步骤102、分别获取所述目标节点和所述第一目标容器的资源比例。
资源比例为CPU资源量和内存资源量的比值。
一种实施方式中,获取目标节点的资源比例和第一目标容器的资源比例。
步骤103、基于所述目标节点的资源比例与所述第一目标容器的资源比例筛选所述第一目标容器,得到第二目标容器。
可选地,所述基于所述目标节点的资源比例与所述第一目标容器的资源比例筛选所述第一目标容器,得到第二目标容器,具体包括:
在所述目标节点的资源比例与所述第一目标容器的资源比例满足预设条件的情况下,对所述第一目标容器进行筛选,得到第二目标容器;
其中,所述预设条件为:|Ic1/Ir1-Ic2/Ir2|>Δk,Ic1/Ir1表示所述目标节点的资源比例,Ic2/Ir2表示所述第一目标容器的资源比例,Ic1表示所述目标节点的CPU资源需求量,Ir1表示所述目标节点的内存资源需求量,Ic2表示所述第一目标容器的CPU资源需求量,Ir2表示所述第一目标容器的内存资源需求量,Δk为第二预设阈值。
第二目标容器为第一目标容器中的至少一个容器。
需要说明的是,第二目标容器用于调度到已部署了容器的目标节点上。
一种实施方式中,在目标节点的资源比例与第一目标容器的资源比例满足预设条件的情况下,对第一目标容器进行筛选,得到第二目标容器。
进一步地,从目标节点上取出第二目标容器,将第二目标容器调度到目标节点内已部署了容器的其他节点上。
步骤104、基于所述第二目标容器内的所有任务资源需求量将所述第二目标容器按照预设顺序进行排序。
任务资源需求量为待处理任务需要的资源量,例如CPU资源量和内存资源量。
所有任务资源需求量为每个待处理任务需要的资源量的总和。
需要说明的是,每个第二目标容器包含多个待处理任务。
一种实施方式中,预设顺序为从大到小的顺序。
一种实施方式中,根据每个第二目标容器内的所有任务资源需求量将所有第二目标容器按照从大到小的顺序进行排序。
步骤105、基于排序结果将所述第二目标容器调度给第一目标节点,所述第一目标节点为目标节点中已部署了容器的一个节点。
可选地,所述基于排序结果将所述第二目标容器调度给第一目标节点,具体包括:
将排序后的所述第二目标容器分别部署给目标节点中已部署了容器的每一个节点;
计算所述每一个节点的CPU资源与内存资源的偏差比;
选择所述偏差比最小的节点作为第一目标节点;
将所述第二目标容器调度给所述第一目标节点。
需要说明的是,将排序后的所有第二目标容器按从大到小的顺序全部调度给目标容器中已部署了容器的每一个节点时,每一个节点可以部署所有第二目标容器,或,至少一个节点只能部署排序靠前的部分第二目标容器。
一种实施方式中,每一个节点的CPU资源与内存资源的偏差比表示每一个节点的CPU资源使用率与内存使用率的方差。
进一步地,利用公式(1)-(4)计算每一个节点的CPU资源使用率与内存使用率的方差:
ψ=(x-avg)2+(y-avg)2 (1)
avg=(x+y)/2 (2)
其中,ψ表示一个节点的CPU资源使用率与内存使用率的方差,avg表示一个节点的资源平均使用率,x表示一个节点的CPU资源使用率,y表示一个节点的内存资源使用率,C1表示一个节点已使用的CPU资源量,R1表示一个节点的CPU资源总量,C2表示一个节点已使用的内存资源量,R2表示一个节点的内存资源总量。
一种实施方式中,将排序后的第二目标容器尽可能部署给目标节点中已部署了容器的一个节点上,计算该节点的CPU资源与内存资源的偏差比,对于目标节点中已部署了容器的每一个节点都重复上述步骤,计算得到每一个节点的CPU资源与内存资源的偏差比,将每一个节点的CPU资源与内存资源的偏差比按照从小到大的顺序进行排序。
进一步地,排序第一位的节点为偏差比最小的节点,作为第一目标节点,将第二目标容器全部调度给第一目标节点。
一种实施方式中,若第二目标容器不能全部调度给第二目标节点,基于每一个节点的排序结果,将未调度的第二目标容器调度给排序第二位的节点,直至第二目标容器被全部被调度完成。
步骤106、基于匈牙利算法对所述第二目标容器进行迁移。
为了进一步减小节点的CPU资源与内存资源的偏差比,减少资源碎片,引入匈牙利算法,确定容器迁移策略,得到容器迁移的最优匹配。
匈牙利算法是二部图匹配中常见的算法,核心思想是寻找增广路径,进而求解二分图的最优匹配方法。该算法的基本原则是在按照优先顺序匹配的基础上重新分配,进而添加新的匹配。
其中,二分图包括两个顶点集合与边集,顶点集内包含至少一个顶点,边集包含分别将两个顶点集合内任一顶点进行匹配得到的边的集合。
匹配用于指示边集中任意两条边都不依附于同一个顶点。
本发明实施例提供的多任务容器集群的计算资源优化方法,通过目标节点的资源使用率获取目标节点上的第一目标容器,基于所述目标节点的资源比例与第一目标容器的资源比例筛选第一目标容器,得到第二目标容器,基于第二目标容器内的所有任务资源需求量将第二目标容器按照预设顺序进行排序,基于排序结果将第二目标容器调度给第一目标节点,基于匈牙利算法对第二目标容器进行迁移,能够提高资源利用率的同时,减少容器迁移次数,保证集群负载更加均衡,提升系统整体运行效率。
图2是本发明实施例提供的基于匈牙利算法对第二目标容器进行迁移的流程示意图。如图2所示,基于上述任一实施例,所述基于匈牙利算法对所述第二目标容器进行迁移,具体包括:
步骤200、基于所述第二目标容器获取第一容器和第二容器,所述第一容器和所述第二容器为所述第二目标容器中的任意两个不同的容器。
需要说明的是,基于匈牙利算法对第二目标容器内的任意两个不同的容器进行匹配,得到多个匹配结果,在满足节点执行任务效率最高、资源碎片最少、容器迁移次数最少以及主机CPU内存偏差比最小的情况下,从多个匹配结果中筛选出目标匹配结果。
步骤201、基于匈牙利算法将所述第一容器和所述第二容器进行匹配,得到目标匹配结果。
可选地,所述基于匈牙利算法将所述第一容器和所述第二容器进行匹配,得到目标匹配结果,具体包括:
获取所述第一容器内的第一目标计算任务,所述第一目标计算任务为所述第一容器内的任一计算任务;
基于深度优先搜索DFS算法从所述第二容器中获取与所述第一目标计算任务相连的第二目标计算任务;
基于所述第一目标计算任务与所述第二目标计算任务,得到目标匹配结果。
结合图3具体说明基于DFS算法寻找增广路径的基本原理。图3是本发明实施例提供的基于深度优先搜索(Depth-First-Search,DFS)算法寻找增广路径的场景示意图。
如图3所示,集合X包括X1、X2、X3和X4共4个顶点,集合Y包括Y1、Y2、Y3和Y4共4个顶点,集合X中的顶点与集合Y中的顶点相连的线表示一条增广路径,表示这两个顶点相匹配。
基于DFS算法寻找增广路径的过程为:
步骤300、获取集合X中一个未匹配的顶点Xi,在集合Y中寻找与顶点Xi相匹配的顶点Yj。
步骤301、若Yj未匹配,则顶点Xi与顶点Yj相连接,作为一条增广路径,表示顶点Xi与顶点Yj相匹配。
步骤302、若Yj已匹配,则从集合X中获取与顶点Yj相匹配的顶点Xm,得到边(Xm,Yj),将(Xm,Yj)改为未匹配,(Xi,Yj)设为匹配,则顶点Xi与顶点Yj相连接为重新找到的增广路径。
步骤303、获取集合X中下一个未匹配的顶点Xi+1,重复执行步骤300。
步骤304、寻找集合X与集合Y内的所有增广路径,确定集合X与集合Y的最终匹配结果。
需要说明的是,第一目标计算任务与第二目标计算任务相连的条件是第一目标计算任务与第二目标计算任务均没有被占用,且第二目标计算任务的配置信息和资源使用率等均满足第一目标计算任务的要求。
目标匹配结果用于指示在满足节点执行任务效率最高、资源碎片最少、容器迁移次数最少以及主机CPU内存偏差比最小的情况下,第一容器与第二容器相匹配。
一种实施方式中,第一容器与第二容器的匹配过程为:获取第一容器内未匹配的第一目标计算任务,结合DFS算法寻找增广路径的基本原理,在满足目标计算任务相连条件的情况下从第二容器中获取与第一目标计算任务相连的第二目标计算任务,进而得到第一容器与第二容器内多个目标计算任务相连,作为第一容器与第二容器的匹配结果。
进一步地,基于上述匹配过程对第二目标容器内的每两个不同的容器进行匹配,得到多个匹配结果,在满足节点执行任务效率最高、资源碎片最少、容器迁移次数最少以及主机CPU内存偏差比最小的情况下,从多个匹配结果中筛选出第一容器与第二容器相匹配,作为目标匹配结果。
步骤202、基于目标匹配结果将所述第一容器内的计算任务与所述第二容器内的计算任务相互迁移。
需要说明的是,第一容器内的计算任务与第二容器的计算任务相互迁移表示第一容器与第二容器内相连的计算任务能够被互相调度。
例如,第一容器内的第一目标计算任务与第二容器内的第二目标计算任务相互迁移时,第二目标计算任务可以被调度至第一容器内的第一目标计算任务位置,同样地,第一目标计算任务可以被调度至第二容器内的第二目标计算任务处。
本发明实施例提供的多任务容器集群的计算资源优化方法,基于第二目标容器获取第一容器和第二容器,基于匈牙利算法将第一容器和第二容器进行匹配,得到目标匹配结果,基于目标匹配结果将第一容器内的计算任务与所述第二容器内的计算任务相互迁移,进一步减少资源碎片,提高资源利用率,减少容器迁移次数,保证集群负载更加均衡,提升系统整体运行效率。
基于上述任一实施例,所述基于排序结果将所述第二目标容器调度给第一目标节点之前,还包括:
获取所述第二目标容器配置的更新信息;
基于所述更新信息更新所述第二目标容器的本地配置信息。
为了实现容器调度给节点,达到资源进一步分配的目的,需要根据第二目标容器配置的更新信息来更新第二目标容器的本地配置信息。
更新信息用于指示第二目标容器的规格。
本地配置信息存储在存储于第二目标容器对应的节点中。
一种实施方式中,通过扩缩容模块监听第二目标容器配置的更新信息,基于更新信息更新第二目标容器对应的节点中的本地配置信息,更新结束后,基于排序结果将第二目标容器调度给第一目标节点。
本发明实施例提供的多任务容器集群的计算资源优化方法,获取第二目标容器配置的更新信息,基于更新信息更新第二目标容器的本地配置信息,进而实现资源的进一步分配,达到有效减少资源碎片,提高资源利用率,减少容器迁移次数,保证集群负载更加均衡,提升系统整体运行效率的目的。
下面对本发明提供的多任务容器集群的计算资源优化装置进行描述,下文描述的多任务容器集群的计算资源优化装置与上文描述的多任务容器集群的计算资源优化方法可相互对应参照。
图4是本发明实施例提供的多任务容器集群的计算资源优化装置的结构示意图,如图4所示,该多任务容器集群的计算资源优化装置包括:第一获取单元400、第二获取单元401、第三获取单元402、筛选单元403、排序单元404、调度单元405和迁移单元406,其中,
第一获取单元400,用于获取目标节点的资源使用率,所述目标节点为集群内的至少一个节点;
第二获取单元401,用于基于所述目标节点的资源使用率获取所述目标节点上的第一目标容器,第一目标容器为目标节点上的至少一个容器;
第三获取单元402,用于分别获取所述目标节点和所述第一目标容器的资源比例;
筛选单元403,用于基于所述目标节点的资源比例与所述第一目标容器的资源比例筛选所述第一目标容器,得到第二目标容器;
排序单元404,用于基于所述第二目标容器内的所有任务资源需求量将所述第二目标容器按照预设顺序进行排序;
调度单元405,用于基于排序结果将所述第二目标容器调度给第一目标节点,所述第一目标节点为目标节点中已部署了容器的一个节点;
迁移单元406,用于基于匈牙利算法对所述第二目标容器进行迁移。
本发明实施例提供的多任务容器集群的计算资源优化装置,通过目标节点的资源使用率获取目标节点上的第一目标容器,基于所述目标节点的资源比例与第一目标容器的资源比例筛选第一目标容器,得到第二目标容器,基于第二目标容器内的所有任务资源需求量将第二目标容器按照预设顺序进行排序,基于排序结果将第二目标容器调度给第一目标节点,基于匈牙利算法对第二目标容器进行迁移,能够提高资源利用率的同时,减少容器迁移次数,保证集群负载更加均衡,提升系统整体运行效率。
可选地,第二获取单元401,还用于:
所述目标节点的资源使用率包括所述目标节点的中央处理器CPU资源使用率和所述目标节点的内存资源使用率中的至少一项;
所述基于所述目标节点的资源使用率获取所述目标节点上的第一目标容器,具体包括:
在所述目标节点的CPU资源使用率小于第一预设阈值,或所述目标节点的内存资源使用率小于第一预设阈值的情况下,获取所述目标节点上的第一目标容器。
可选地,筛选单元403,还用于:
在所述目标节点的资源比例与所述第一目标容器的资源比例满足预设条件的情况下,对所述第一目标容器进行筛选,得到第二目标容器;
其中,所述预设条件为:|Ic1/Ir1-Ic2/Ir2|>Δk,Ic1/Ir1表示所述目标节点的资源比例,Ic2/Ir2表示所述第一目标容器的资源比例,Ic1表示所述目标节点的CPU资源需求量,Ir1表示所述目标节点的内存资源需求量,Ic2表示所述第一目标容器的CPU资源需求量,Ir2表示所述第一目标容器的内存资源需求量,Δk为第二预设阈值。
可选地,调度单元405,还用于:
将排序后的所述第二目标容器分别部署给目标节点中已部署了容器的每一个节点;
计算所述每一个节点的CPU资源与内存资源的偏差比;
选择所述偏差比最小的节点作为第一目标节点;
将所述第二目标容器调度给所述第一目标节点。
可选地,迁移单元406,还用于:
基于所述第二目标容器获取第一容器和第二容器,所述第一容器和所述第二容器为所述第二目标容器中的任意两个不同的容器;
基于匈牙利算法将所述第一容器和所述第二容器进行匹配,得到目标匹配结果;
基于目标匹配结果将所述第一容器内的计算任务与所述第二容器内的计算任务相互迁移。
可选地,所述基于匈牙利算法将所述第一容器和所述第二容器进行匹配,得到目标匹配结果,具体包括:
获取所述第一容器内的第一目标计算任务,所述第一目标计算任务为所述第一容器内的任一计算任务;
基于深度优先搜索DFS算法从所述第二容器中获取与所述第一目标计算任务相连的第二目标计算任务;
基于所述第一目标计算任务与所述第二目标计算任务,得到目标匹配结果。
可选地,该多任务容器集群的计算资源优化装置,还包括:
更新单元,用于获取所述第二目标容器配置的更新信息;
基于所述更新信息更新所述第二目标容器的本地配置信息。
本发明提供的多任务容器集群的计算资源优化装置能够实现图1至图2的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communication Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的计算机程序,以执行多任务容器集群的计算资源优化方法的步骤,例如包括:
获取目标节点的资源使用率,所述目标节点为集群内的至少一个节点;
基于所述目标节点的资源使用率获取所述目标节点上的第一目标容器,第一目标容器为目标节点上的至少一个容器;
分别获取所述目标节点和所述第一目标容器的资源比例;
基于所述目标节点的资源比例与所述第一目标容器的资源比例筛选所述第一目标容器,得到第二目标容器;
基于所述第二目标容器内的所有任务资源需求量将所述第二目标容器按照预设顺序进行排序;
基于排序结果将所述第二目标容器调度给第一目标节点,所述第一目标节点为目标节点中已部署了容器的一个节点;
基于匈牙利算法对所述第二目标容器进行迁移。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的多任务容器集群的计算资源优化方法,该方法包括:
获取目标节点的资源使用率,所述目标节点为集群内的至少一个节点;
基于所述目标节点的资源使用率获取所述目标节点上的第一目标容器,第一目标容器为目标节点上的至少一个容器;
分别获取所述目标节点和所述第一目标容器的资源比例;
基于所述目标节点的资源比例与所述第一目标容器的资源比例筛选所述第一目标容器,得到第二目标容器;
基于所述第二目标容器内的所有任务资源需求量将所述第二目标容器按照预设顺序进行排序;
基于排序结果将所述第二目标容器调度给第一目标节点,所述第一目标节点为目标节点中已部署了容器的一个节点;
基于匈牙利算法对所述第二目标容器进行迁移。
另一方面,本申请实施例还提供一种处理器可读存储介质,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使所述处理器执行上述各实施例提供的方法,例如包括:
获取目标节点的资源使用率,所述目标节点为集群内的至少一个节点;
基于所述目标节点的资源使用率获取所述目标节点上的第一目标容器,第一目标容器为目标节点上的至少一个容器;
分别获取所述目标节点和所述第一目标容器的资源比例;
基于所述目标节点的资源比例与所述第一目标容器的资源比例筛选所述第一目标容器,得到第二目标容器;
基于所述第二目标容器内的所有任务资源需求量将所述第二目标容器按照预设顺序进行排序;
基于排序结果将所述第二目标容器调度给第一目标节点,所述第一目标节点为目标节点中已部署了容器的一个节点;
基于匈牙利算法对所述第二目标容器进行迁移。
所述处理器可读存储介质可以是处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD))等。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种多任务容器集群的计算资源优化方法,其特征在于,包括:
获取目标节点的资源使用率,所述目标节点为集群内的至少一个节点;
基于所述目标节点的资源使用率获取所述目标节点上的第一目标容器,第一目标容器为目标节点上的至少一个容器;
分别获取所述目标节点和所述第一目标容器的资源比例;
基于所述目标节点的资源比例与所述第一目标容器的资源比例筛选所述第一目标容器,得到第二目标容器;
基于所述第二目标容器内的所有任务资源需求量将所述第二目标容器按照预设顺序进行排序;
基于排序结果将所述第二目标容器调度给第一目标节点,所述第一目标节点为目标节点中已部署了容器的一个节点;
基于匈牙利算法对所述第二目标容器进行迁移。
2.根据权利要求1所述的多任务容器集群的计算资源优化方法,其特征在于,所述目标节点的资源使用率包括所述目标节点的中央处理器CPU资源使用率和所述目标节点的内存资源使用率中的至少一项;
所述基于所述目标节点的资源使用率获取所述目标节点上的第一目标容器,具体包括:
在所述目标节点的CPU资源使用率小于第一预设阈值,或所述目标节点的内存资源使用率小于第一预设阈值的情况下,获取所述目标节点上的第一目标容器。
3.根据权利要求1所述的多任务容器集群的计算资源优化方法,其特征在于,所述基于所述目标节点的资源比例与所述第一目标容器的资源比例筛选所述第一目标容器,得到第二目标容器,具体包括:
在所述目标节点的资源比例与所述第一目标容器的资源比例满足预设条件的情况下,对所述第一目标容器进行筛选,得到第二目标容器;
其中,所述预设条件为:|Ic1/Ir1-Ic2/Ir2|>Δk,Ic1/Ir1表示所述目标节点的资源比例,Ic2/Ir2表示所述第一目标容器的资源比例,Ic1表示所述目标节点的CPU资源需求量,Ir1表示所述目标节点的内存资源需求量,Ic2表示所述第一目标容器的CPU资源需求量,Ir2表示所述第一目标容器的内存资源需求量,Δk为第二预设阈值。
4.根据权利要求1所述的多任务容器集群的计算资源优化方法,其特征在于,所述基于排序结果将所述第二目标容器调度给第一目标节点,具体包括:
将排序后的所述第二目标容器分别部署给目标节点中已部署了容器的每一个节点;
计算所述每一个节点的CPU资源与内存资源的偏差比;
选择所述偏差比最小的节点作为第一目标节点;
将所述第二目标容器调度给所述第一目标节点。
5.根据权利要求1所述的多任务容器集群的计算资源优化方法,其特征在于,所述基于匈牙利算法对所述第二目标容器进行迁移,具体包括:
基于所述第二目标容器获取第一容器和第二容器,所述第一容器和所述第二容器为所述第二目标容器中的任意两个不同的容器;
基于匈牙利算法将所述第一容器和所述第二容器进行匹配,得到目标匹配结果;
基于目标匹配结果将所述第一容器内的计算任务与所述第二容器内的计算任务相互迁移。
6.根据权利要求5所述的多任务容器集群的计算资源优化方法,其特征在于,所述基于匈牙利算法将所述第一容器和所述第二容器进行匹配,得到目标匹配结果,具体包括:
获取所述第一容器内的第一目标计算任务,所述第一目标计算任务为所述第一容器内的任一计算任务;
基于深度优先搜索DFS算法从所述第二容器中获取与所述第一目标计算任务相连的第二目标计算任务;
基于所述第一目标计算任务与所述第二目标计算任务,得到目标匹配结果。
7.根据权利要求1所述的多任务容器集群的计算资源优化方法,其特征在于,所述基于排序结果将所述第二目标容器调度给第一目标节点之前,还包括:
获取所述第二目标容器配置的更新信息;
基于所述更新信息更新所述第二目标容器的本地配置信息。
8.一种多任务容器集群的计算资源优化装置,其特征在于,包括:
第一获取单元,用于获取目标节点的资源使用率,所述目标节点为集群内的至少一个节点;
第二获取单元,用于基于所述目标节点的资源使用率获取所述目标节点上的第一目标容器,第一目标容器为目标节点上的至少一个容器;
第三获取单元,用于分别获取所述目标节点和所述第一目标容器的资源比例;
筛选单元,用于基于所述目标节点的资源比例与所述第一目标容器的资源比例筛选所述第一目标容器,得到第二目标容器;
排序单元,用于基于所述第二目标容器内的所有任务资源需求量将所述第二目标容器按照预设顺序进行排序;
调度单元,用于基于排序结果将所述第二目标容器调度给第一目标节点,所述第一目标节点为目标节点中已部署了容器的一个节点;
迁移单元,用于基于匈牙利算法对所述第二目标容器进行迁移。
9.一种电子设备,包括处理器和存储有计算机程序的存储器,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述多任务容器集群的计算资源优化方法的步骤。
10.一种处理器可读存储介质,其特征在于,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使所述处理器执行权利要求1至7任一项所述多任务容器集群的计算资源优化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110574006.XA CN115391023A (zh) | 2021-05-25 | 2021-05-25 | 多任务容器集群的计算资源优化方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110574006.XA CN115391023A (zh) | 2021-05-25 | 2021-05-25 | 多任务容器集群的计算资源优化方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115391023A true CN115391023A (zh) | 2022-11-25 |
Family
ID=84114748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110574006.XA Pending CN115391023A (zh) | 2021-05-25 | 2021-05-25 | 多任务容器集群的计算资源优化方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115391023A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115562843A (zh) * | 2022-12-06 | 2023-01-03 | 苏州浪潮智能科技有限公司 | 一种容器集群算力调度方法及相关装置 |
CN115952008A (zh) * | 2023-03-15 | 2023-04-11 | 之江实验室 | 一种服务器集群资源的统一调度方法和装置 |
CN116385071A (zh) * | 2023-06-05 | 2023-07-04 | 支付宝(杭州)信息技术有限公司 | 针对多个推荐场景的资源弹性调度方法和装置 |
-
2021
- 2021-05-25 CN CN202110574006.XA patent/CN115391023A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115562843A (zh) * | 2022-12-06 | 2023-01-03 | 苏州浪潮智能科技有限公司 | 一种容器集群算力调度方法及相关装置 |
CN115562843B (zh) * | 2022-12-06 | 2023-03-28 | 苏州浪潮智能科技有限公司 | 一种容器集群算力调度方法及相关装置 |
CN115952008A (zh) * | 2023-03-15 | 2023-04-11 | 之江实验室 | 一种服务器集群资源的统一调度方法和装置 |
CN115952008B (zh) * | 2023-03-15 | 2023-06-16 | 之江实验室 | 一种服务器集群资源的统一调度方法和装置 |
CN116385071A (zh) * | 2023-06-05 | 2023-07-04 | 支付宝(杭州)信息技术有限公司 | 针对多个推荐场景的资源弹性调度方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115391023A (zh) | 多任务容器集群的计算资源优化方法及装置 | |
CN111966500B (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN108549583B (zh) | 大数据处理方法、装置、服务器及可读存储介质 | |
US11755385B2 (en) | Cross-cluster load balancer | |
WO2021180092A1 (zh) | 任务调度方法和装置 | |
CN114356587B (zh) | 算力任务跨区域调度方法、系统及设备 | |
WO2024021489A1 (zh) | 一种任务调度方法、装置及Kubernetes调度器 | |
CN113157379A (zh) | 集群节点资源调度方法及装置 | |
CN112862098A (zh) | 一种集群训练任务处理的方法及系统 | |
CN115134371A (zh) | 包含边缘网络算力资源的调度方法、系统、设备及介质 | |
US20230037293A1 (en) | Systems and methods of hybrid centralized distributive scheduling on shared physical hosts | |
Mahmoud et al. | An efficient load balancing technique for task scheduling in heterogeneous cloud environment | |
CN114840304A (zh) | 一种容器调度方法、电子设备和存储介质 | |
CN114625500A (zh) | 云环境下拓扑感知的微服务应用调度的方法及应用 | |
CN115309544A (zh) | 一种集群资源规划方法、设备及装置 | |
Li et al. | Cost-efficient fault-tolerant workflow scheduling for deadline-constrained microservice-based applications in clouds | |
WO2022056312A1 (en) | Automatic node fungibility between compute and infrastructure nodes in edge zones | |
CN110958192B (zh) | 一种基于虚拟交换机的虚拟数据中心资源分配系统及方法 | |
CN107621980A (zh) | 一种虚拟机迁移方法、集群控制系统和控制装置 | |
CN109558214B (zh) | 异构环境下宿主机资源管理方法、装置和存储介质 | |
US20230283570A1 (en) | Resource allocation apparatus and allocating resource method | |
KR101916809B1 (ko) | 가상 클러스터 배치 방법 및 이를 제공하기 위한 장치 | |
CN115686802B (zh) | 云计算集群调度系统 | |
CN112019368B (zh) | 一种vnf迁移方法、装置及存储介质 | |
US20230418667A1 (en) | Computing device for handling tasks in a multi-core processor, and method for operating computing device |
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 |