CN112540844A - 集群内容器调度方法、装置、存储介质和电子设备 - Google Patents

集群内容器调度方法、装置、存储介质和电子设备 Download PDF

Info

Publication number
CN112540844A
CN112540844A CN201910895076.8A CN201910895076A CN112540844A CN 112540844 A CN112540844 A CN 112540844A CN 201910895076 A CN201910895076 A CN 201910895076A CN 112540844 A CN112540844 A CN 112540844A
Authority
CN
China
Prior art keywords
host
container
resource
containers
candidate
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
Application number
CN201910895076.8A
Other languages
English (en)
Inventor
陈源
单华松
李旻
刘海锋
樊建刚
刘风才
鲍光亚
彭安
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201910895076.8A priority Critical patent/CN112540844A/zh
Publication of CN112540844A publication Critical patent/CN112540844A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Abstract

本发明实施例提供了一种集群内容器调度方法、装置、计算机可读存储介质和电子设备,涉及计算机技术领域,所述方法包括:获取由候选宿主机组成的候选宿主机组;获取待迁移容器与所述候选宿主机的已有容器资源时序数据的关联性;选取所述关联性最小的候选宿主机作为所述待迁移容器的目标迁移宿主机。本发明实施例的技术方案通过选取与待迁移容器关联性最小的候选宿主机作为目标迁移宿主机,可以同时实现服务性能的满足和宿主机资源的高效利用。

Description

集群内容器调度方法、装置、存储介质和电子设备
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种集群内容器调度方法、装置、计算机可读存储介质和电子设备。
背景技术
互联网在线服务往往对应用的性能提出很高的要求,比如在电商服务中,通常要求对用户的请求进行秒级甚至毫秒级响应。此外,在电商服务中的秒杀、拼购或者促销等特殊的应用场景中,正常的用户请求数会突然剧增,对后端服务的资源需求也随之频繁变化。
为了应对如此复杂而多变的业务场景,在部署应用企业级数据中心时,可以使用多种数据中心或者集群级别的容器安置策略。
其中,考虑单个资源的容器安置策略根据经验和估计或对虚拟机或者容器的历史资源需求数据的分析,将容器安置在满足资源需求的宿主机上,其缺点是会导致宿主机上资源使用的不平衡。考虑多资源的容器安置策略引入多资源的乘积和矢量点集等方法在宿主机上安置容器,其缺点是没有考虑宿主机上容器之间性能的干扰等。基于高级算法的宿主机资源调优采用基因算法、蚁群算法或粒子群算法在可选的安置方案中找到较优的集群内宿主机的安置方案,其缺点是没有综合考虑资源需求和性能保障。
如何高效地利用宿主机资源,节省服务器成本,同时满足复杂多变的互联网在线应用场景的性能需要,是当前亟需解决的技术问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明实施例的目的在于提供一种集群内容器调度方法、装置、计算机可读存储介质和电子设备,进而至少在一定程度上实现满足服务性能需求同时高效利用宿主机资源。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明实施例的第一方面,提供了一种集群内容器调度方法,所述方法包括:获取由候选宿主机组成的候选宿主机组;获取待迁移容器与所述候选宿主机的已有容器资源时序数据的关联性;选取所述关联性最小的候选宿主机作为所述待迁移容器的目标迁移宿主机。
在一些实施例中,所述获取由候选宿主机组成的候选宿主机组之前,所述方法还包括:根据容器的资源时序数据的关联性将所述容器分组。
在一些实施例中,所述方法包括:所述根据容器的资源时序数据的关联性将所述容器分组,包括:获取各个容器的资源时序数据;获取两两组合的容器的资源时序数据的时序相关性;采用合成聚类的方法获取所述时序相关性处于设定数值范围内的容器分组。
在一些实施例中,根据以下任一种算法获取两两组合的容器的资源时序数据的时序相关性:皮尔逊相关距离、杰卡德距离、欧氏距离或夹角余弦距离。
在一些实施例中,所述获取由候选宿主机组成的候选宿主机组之前,所述方法还包括:在宿主机上容器间的资源相关系数大于第三设定阈值时,根据两两组合的容器的时间序列的时序相关性选取时序相关性最大的两个容器;将其中一个容器确定为待迁移容器。
在一些实施例中,所述根据两两组合的容器的时间序列的时序相关性选取时序相关性最大的两个容器之前,所述方法还包括:根据宿主机上的容器数量和容器分组数量获取所述宿主机上容器间的资源相关系数。
在一些实施例中,所述获取由候选宿主机组成的候选宿主机组,包括:根据宿主机的资源使用率从集群的全部宿主机中选取中间宿主机组成中间宿主机组;根据宿主机的多资源平衡性从所述中间宿主机组中选取候选宿主机组成候选宿主机组。
根据本发明实施例的第二方面,提供了一种集群内容器调度装置,所述装置包括:候选机组获取单元,用于获取由候选宿主机组成的候选宿主机组;关联性获取单元,用于获取待迁移容器与所述候选宿主机的已有容器资源时序数据的关联性;目标选取单元,用于选取所述关联性最小的候选宿主机作为所述待迁移容器的目标迁移宿主机。
根据本发明实施例的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中第一方面所述的集群内容器调度方法。
根据本发明实施例的第四方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中第一方面所述的集群内容器调度方法。
本发明实施例提供的技术方案可以包括以下有益效果:
在本发明的一些实施例所提供的技术方案中,通过选取与待迁移容器关联性最小的候选宿主机作为目标迁移宿主机,以将待迁移容器合理布局到目标迁移宿主机上,实现了在满足服务性能需求的同时高效利用宿主机资源。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出了根据本发明一种实施例的集群内容器调度方法的流程图;
图2示意性示出了根据本发明一种实施例的容器分组的流程图;
图3示意性示出了根据本发明一种实施例的CPU利用率时序数据的示意图;
图4示意性示出了根据本发明一种实施例的容器资源时序相关性的热力图;
图5示意性示出了根据本发明一种实施例的采用合成聚类生成聚类树的示意图;
图6示意性示出了根据本发明一种实施例的获取候选宿主机组的流程图;
图7示意性示出了根据本发明另一种实施例的集群内容器调度方法的流程图;
图8示意性示出了相关技术与本发明实施例中采用宿主机数目对比示意图;
图9示意性示出了相关技术与本发明实施例中性能冲突对比示意图;
图10示意性示出了根据本发明一种实施例集群内容器调度装置的方框图;
图11示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
在相关技术中,在部署企业级数据中心时,单独考虑集群内宿主机资源的分配,往往会出现宿主机资源严重浪费或者不能满足服务的性能需求的两难问题,很难同时兼顾服务性能的满足和宿主机资源的高效利用。
为解决以上问题,本发明实施例提出一种集群内容器调度方法,通过选取与待迁移容器关联性最小的候选宿主机作为目标迁移宿主机,将待迁移容器合理布局到目标迁移宿主机上,以在满足服务性能的情况下高效利用宿主机资源。
图1示意性示出了本公开的示例性实施方式的集群内容器调度方法。本公开实施例提供的方法可以由任意具备计算机处理能力的电子设备执行,例如终端设备和/或服务器。参考图1,该集群内容器调度方法可以包括以下步骤:
步骤S102,获取由候选宿主机组成的候选宿主机组。
步骤S104,获取待迁移容器与候选宿主机的已有容器资源时序数据的关联性。
步骤S106,选取关联性最小的候选宿主机作为待迁移容器的目标迁移宿主机。
在本发明实施例的技术方案中,通过计算待迁移容器与候选宿主机的已有容器资源时序数据的关联性,并根据该关联性相关数据选取待迁移容器的目标迁移宿主机,可以使得在待迁移容器布局到目标迁移宿主机上之后,待迁移容器与目标宿主机上的已有容器资源关联性较小,从而提高集群内宿主机资源的利用率和性能。
在步骤S102之前,还可以根据容器的资源时序数据的关联性将容器分组。
根据容器资源的时序数据的关联性将容器分组,得到根据将容器分组得到的分组结果,并根据分组结果可以在容器的初始安置时将同一分组的不同容器分配到不同的宿主机,这样同一个宿主机上安置的容器多资源需求在时序上利用率错峰的,会使得容器间性能冲突最小,从而最大性能收益。
如图2所示,根据容器的资源时序数据的关联性将容器分组,可以包括以下步骤:
步骤S202,获取各个容器的资源时序数据。
步骤S204,获取两两组合的容器的资源时序数据的时序相关性。
步骤S206,采用合成聚类的方法获取时序相关性处于设定数值范围内的容器分组。
在步骤S202中,资源时序数据即为资源利用率时序数据,获取容器的各个资源的利用率时序数据时,需要保证该利用率时序数据的采样粒度和时间区间一致。其中,资源可以为CPU(Central Processing Unit,中央处理器),MEM(Memory,存储器)或DISK(磁盘)。
以CPU为例,每一个容器的CPU利用率时序数据的计算公式(1)如下:
Contain(CPU)=[x1,x2,…,xn] (1)
其中,contain(CPU)为资源利用率时序数据,n为自然数,x1,x2,……,xn表示采样时间点的资源利用率。
如图3所示的为本发明实施例中一个集群内所有容器在同一时间区间的CPU利用率时序数据,其采样粒度为一分钟,X轴标识时间,Y轴标识CPU利用率,不同的曲线标识一个容器的CPU利用率。
在步骤S204中,基于执行步骤S202得到的资源时序数据计算集群内所有容器两两的资源时序相关性。
计算资源时序相关性时,需要计算资源时序数据样本间的距离。在本发明实施例中,可以采用皮尔逊相关距离(Pearson's correlation distance)、杰卡德距离(Jaccarddistance)、欧氏距离(Euclidean Distance)或夹角余弦距离(Cosine distance)等算法中的任一种计算样本间的距离。
通过皮尔逊距离计算两个容器资源时序相关性的公式(2)为:
Figure BDA0002209943160000061
其中,r为相关性,x和y分别是两个容器的资源时序数据,
Figure BDA0002209943160000071
是x的均值,
Figure BDA0002209943160000072
是y的均值。
通过计算资源时序数据样本间的距离,即可以得到集群内所有容器的时序相关性矩阵。
如图4所示的是本发明实施例中一个集群内60个容器两两时序相关性的热力图。颜色的深浅对应的数值代表两个容器在利用率的相关程度,数值1表示正相关,数值-1表示负相关,数值越大表示两个容器的利用率在时序上越相关。
在步骤S206中,可以采用合成聚类的方法根据容器时序相关性为容器分组。
如图5所示的是根据容器时序相关性利用合成聚类的方法生成聚类树的例子。
如图5所示,在生成聚类树时,初始化将每个容器归为一个原始组;根据容器时序相关性,寻找各个原始组之间距离最近的两个原始组,把它们归为一个新组;重新计算新组之间或者新组与未归入新组的原始组之间的时序相关性并继续归组,直到所有容器都归为一组。
在本发明实施例中,可以设置一个相关性阈值,在时序相关性大于等于该相关性阈值时,不再进行归组,保留当前的分组为分组结果。这样,在时序上资源需求强相关的容器就分到同一组,不同组之间的容器的资源需求在时序上就是错开的。
在本发明实施例中,如图6所示,步骤S102可以包括以下步骤:
步骤S602,根据宿主机的资源使用率从集群的全部宿主机中选取中间宿主机组成中间宿主机组。
步骤S604,根据宿主机的多资源平衡性从所述中间宿主机组中选取候选宿主机组成候选宿主机组。
在步骤S602中,根据宿主机的资源使用率将集群的全部宿主机中选取资源使用率较高的宿主机选取为中间宿主机。
按照资源使用率分类宿主机时,根据宿主机的各个资源使用率,可以设定阈值将宿主机分成三个级别:过载,正常,低载。在本发明实施例中,可以选取过载的宿主机为中间宿主机。
例如,可以设定资源使用率大于等于90%是过载,小于等于60%是低载,介于60%和90%之间的是正常。
提高资源利用率的目标就是尽可能让所有的宿主机的资源使用率是正常状态。另外,这里的设定阈值也可以为自适应门限,如中位数绝对偏差,这种自适应的门限可以更好的适应资源使用率在实际中的波动。
具体地,自适应门限T可以根据T=1-s*MAD计算:其中MAD计算公式(3)为:
MAD=median(|Xi-median(X)|) (3)
其中Xi是宿主机资源使用的时序数据,i为自然数,median()为中位数函数,s是权值,可以根据需要设置和调整。
MAD是一个时序数据的统计指标,类似方差,用来描述时序数据不同时间点值的变化,比方差更可靠。MAD值越小,说明不同时间点的需求变化越小,比如MAD=0意味着所有时间点的资源需求值都是一样的。对于MAD值较小即资源需求比较稳定的宿主机,因为风险比较小,门限值可以设置得稍大。相反,MAD值越大,说明不同时间点的资源使用较为动态,时高时低,门限值需要保守设置。
宿主机的资源可以用矢量来表示,以CPU,MEM,DISK三个资源为例,定义宿主机的CPU,MEM,DISK的归一化的容量分别为1,宿主机已经使用的CPU矢量为UCPU,宿主机已经使用的MEM矢量为UMEM,宿主机已经使用的DISK矢量为UDISK,宿主机剩余的CPU矢量为1-UCPU,宿主机剩余的MEM矢量为1-UMEM,宿主机剩余的DISK矢量为1-UDISK,容器需求的CPU矢量为RCPU,容器需求的MEM矢量为RMEM,容器需求的DISK矢量为RDISK
在本发明实施例中,选择满足以下公式(4)、(5)、(6)的过载宿主机作为中间宿主机,其中,TCPU为CPU的过载的阈值,TMEM为MEM的过载的阈值,TDISK为DISK的过载的阈值,
UCPU+RCPU<=TCPU (4)
UMEM+RMEM<=TMEM (5)
UDISK+RDISK<=TDISK (6)
在步骤S604中,根据宿主机的多资源平衡性从中间宿主机组中选取多资源平衡性较差的中间宿主机选取为候选宿主机。
按照多资源使用平衡性分类宿主机时,宿主机的平衡性根据容器的多资源需求和宿主机的可用资源结合进行评价,根据宿主机多资源使用平衡性将宿主机标记为多资源平衡状态和多资源不平衡状态。在本发明实施例中,可以选取不平衡状态的中间宿主机为候选宿主机。
当容器需求的资源矢量和宿主机剩余的资源矢量在矢量的多维空间上是同一个方向时,需求与供应之间是最好的平衡,这时可以认为宿主机的多个资源是平衡的。
在本发明实施例中,可以通过计算容器需求的资源矢量和宿主机剩余的资源矢量之间的夹角余弦来衡量每个宿主机的平衡性,并定义宿主机的平衡系数Balance_index的计算公式(7)如下:
Figure BDA0002209943160000091
Balance_Index用来评估宿主机剩余资源和容器的资源需求的相似即匹配性。Balance_index越接近1,表示容器需求的资源矢量和宿主机剩余的资源矢量之间的夹角越小,宿主机越平衡。
如果宿主机CPU资源剩下10%,存储器资源剩下50%,而容器的CPU需求资源是5%,存储器的需求资源是20%,这个宿主机的空闲资源对这个容器来说资源就比较平衡。平衡与否是针对特定的容器需求而言的。对宿主机分类时,若没有特定的容器,可以用当前所有容器的平均值做代表。
在新安置容器时,考虑容器多资源需求和宿主机剩余的多资源互补匹配,从而保证宿主机多资源使用的平衡,进一步减少容器性能上的干扰。
在本发明实施例中,选择满足以下条件的中间宿主机作为候选宿主机:
Balance_index>=Tbalance,其中,Tbalance是宿主机的多资源平衡性的门限值。
在本发明实施例中,待迁移容器可以为处于强干扰状态的宿主机上的容器。
通过获取宿主机容器资源使用相关性可以得到宿主机上容器资源需求相关性,即弱干扰状态和强干扰状态。通过获得的一个宿主机上所有容器的分组,可以根据宿主机上的容器数量和容器分组数量获取所述宿主机上容器间的资源相关系数Correlation_index。
具体地,可以定义Correlation_index=1-M/N,这里N是这个宿主机上容器的总数目,M是宿主机上分组的数目。Correlation_index越接近1,表示这个宿主机的容器越相关,容器间潜在的性能冲突越大。
在本发明实施例中,待迁移容器可以为容器间的资源相关系数大于第三设定阈值的宿主机上的容器。在宿主机上容器间的资源相关系数大于第三设定阈值时,根据两两组合的容器的时间序列的时序相关性选取时序相关性最大的两个容器,并将其中一个容器确定为待迁移容器。
在步骤S104中,对每个资源类型,计算待迁移容器和候选宿主机组中所有宿主机上已有容器资源时序数据的关联性,最终选择关联性最小的宿主机作为目标迁移宿主机。
待迁移容器和宿主机上已有容器资源时序数据的关联性可以用多元相关性系数来衡量,详细计算步骤可以采用多元回归模型的框架。
在多元回归模型中,X是一个增广矩阵,表示一个候选宿主机上当前所有容器资源使用率时序数据矩阵,其中第一列全部是1,第二列到第K列的数值表示一个宿主机上每个容器的某个资源在一个时间区间内N个采样点的资源利用率,其中,n,N,k,K均为自然数。
Figure BDA0002209943160000101
在多元回归模型中,y表示待迁移容器同一个资源在同一个时间区间内N个采样点的资源利用率,其中,n,N均为自然数。
Figure BDA0002209943160000102
根据多元回归模型,可以计算出用来预测y值的权重b,计算公式(8)和(9)如下,
b=(XTX)-1XTy (8)
Figure BDA0002209943160000111
最后,可以通过以下公式(10)计算实际的y值与预测的y值的多元性相关系数R2
Figure BDA0002209943160000112
其中,n位自然数,yi是资源利用率,
Figure BDA0002209943160000113
是yi的预测值,my是yi的平均值,
Figure BDA0002209943160000114
Figure BDA0002209943160000115
的平均值。
系数R2越大表示预测越准确,这说明迁移容器与候选宿主机的容器相关性比较强。从候选宿主机中选择多元性相关系数最小的宿主机作为目标迁移宿主机,可以起到负载均衡和节省宿主机资源的效果。
如图7所示,在本发明实施例的一种集群内容器调度方法中,对容器数据执行步骤S701至S703,对宿主机数据执行步骤S704和步骤S705。
具体地,在步骤S701中,获取容器资源使用率数据,在步骤S702中,获取容器资源时序相关性,在步骤S703中,将容器分组。
在步骤S704中,获取宿主机资源使用率数据,在步骤S705中,对宿主机进行分类。
这里,可以基于宿主机资源使用率,多资源使用平衡性和容器资源使用相关性对宿主机进行分类,将宿主机分类为低载/正常/过载,还可以基于多资源使用平衡性对宿主机进行分类,将宿主机分类为多资源平衡/多资源不平衡,还可以容器资源使用相关性对宿主机进行分类,将宿主机分类为弱干扰/强干扰。
在步骤S706中,将容器放置在宿主机上或者将宿主机上的容器进行迁移。
基于步骤S703得到的容器的分组和步骤S705得到的宿主机的分类进行容器的迁移和放置,可以优化集群内宿主机资源的利用率和性能,将资源使用过载/低载的宿主机通过容器的迁移和放置调整成为正常的宿主机,将多资源不平衡的宿主机通过容器的迁移和放置调整成为平衡的宿主机,将容器性能强干扰的宿主机通过容器的迁移和放置调整为弱干扰的宿主机。
在选择容器的目标迁移宿主机时,采用步骤S102至步骤S106中的技术方案,综合考虑宿主机资源使用率,多资源使用平衡性,容器资源使用相关性,可以保证宿主机上多资源使用的平衡,宿主机上容器间的性能冲突最小。
在本发明实施例的技术方案中,综合考虑了集群内宿主机资源的分配和容器的安置,保证了宿主机多个资源使用的平衡性和利用率,在保证业务性能的同时可以极大提服务器资源利用率和节省硬件成本。目前已经应用到某项目容器集群的资源优化中,可以提升资源利用率3-5倍。
相关技术中,其他容器资源分配方案很难在满足性能的同时优化资源使用。如图8和图9所示,通过实验比较了相关技术中改进前、第一种改进方法、第二种改进方法和本发明实施例的改进方法的宿主机使用数量和性能冲突,结果表明本发明实施例的技术方案在保证容器性能和同时节省资源方面远远优于其它方法。
在本发明的一些实施例所提供的集群内容器调度方法中,通过选取与待迁移容器关联性最小的候选宿主机作为目标迁移宿主机,以将待迁移容器合理布局到目标迁移宿主机上,实现了在满足服务性能需求的同时高效利用宿主机资源。
以下介绍本发明的装置实施例,可以用于执行本发明上述的集群内容器调度方法。参考图10,本发明装置实施例提供的集群内容器调度装置1000包括:
候选机组获取单元1002,用于获取由候选宿主机组成的候选宿主机组;
关联性获取单元1004,用于获取待迁移容器与候选宿主机的已有容器资源时序数据的关联性;
目标选取单元1006,用于选取关联性最小的候选宿主机作为待迁移容器的目标迁移宿主机。
在本发明实施例的技术方案中,通过计算待迁移容器与候选宿主机的已有容器资源时序数据的关联性,并根据该关联性相关数据选取待迁移容器的目标迁移宿主机,可以使得在待迁移容器布局到目标迁移宿主机上之后,待迁移容器与目标宿主机上的已有容器资源关联性较小,从而提高集群内宿主机资源的利用率和性能。
此外,在本发明实施例中,集群内容器调度装置还包括容器分组单元,用于根据容器的资源时序数据的关联性将容器分组。
具体地,容器分组单元获取各个容器的资源时序数据,并获取两两组合的容器的资源时序数据的时序相关性,采用合成聚类的方法获取时序相关性处于设定数值范围内的容器分组。
在本发明实施例中,集群内容器调度装置还包括确定单元,用于在宿主机上容器间的资源相关系数大于第三设定阈值时,根据两两组合的容器的时间序列的时序相关性选取时序相关性最大的两个容器,并将其中一个容器确定为待迁移容器。
在本发明实施例中,候选机组获取单元1002还用于根据宿主机的资源使用率从集群的全部宿主机中选取中间宿主机组成中间宿主机组,并根据宿主机的多资源平衡性从中间宿主机组中选取候选宿主机组成候选宿主机组。
由于本发明的示例实施例的集群内容器调度装置的各个功能模块与上述集群内容器调度方法的示例实施例的步骤对应,因此对于本发明装置实施例中未披露的细节,请参照本发明上述的集群内容器调度方法的实施例。
在本发明的实施例所提供的集群内容器调度装置,通过选取与待迁移容器关联性最小的候选宿主机作为目标迁移宿主机,以将待迁移容器合理布局到目标迁移宿主机上,实现了在满足服务性能需求的同时高效利用宿主机资源。
下面参考图11,其示出了适于用来实现本发明实施例的电子设备的计算机系统1100的结构示意图。图11示出的电子设备的计算机系统1100仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图11所示,计算机系统1100包括中央处理单元(CPU)1101,其可以根据存储在只读存储器(ROM)1102中的程序或者从存储部分1108加载到随机访问存储器(RAM)1103中的程序而执行各种适当的动作和处理。在RAM 1103中,还存储有系统操作所需的各种程序和数据。CPU 1101、ROM 1102以及RAM 1103通过总线1104彼此相连。输入/输出(I/O)接口1105也连接至总线1104。
以下部件连接至I/O接口1105:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至I/O接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被中央处理单元(CPU)1101执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的集群内容器调度方法。
例如,所述的电子设备可以实现如图1中所示的:步骤S102,获取由候选宿主机组成的候选宿主机组;步骤S104,获取待迁移容器与所述候选宿主机的已有容器资源的时序数据的关联性;步骤S106,选取关联性最小的候选宿主机作为所述待迁移容器的目标迁移宿主机。
又如,所述的电子设备可以实现如图2、图6和图7所示的各个步骤。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (10)

1.一种集群内容器调度方法,其特征在于,所述方法包括:
获取由候选宿主机组成的候选宿主机组;
获取待迁移容器与所述候选宿主机的已有容器资源时序数据的关联性;
选取所述关联性最小的候选宿主机作为所述待迁移容器的目标迁移宿主机。
2.根据权利要求1所述的方法,其特征在于,所述获取由候选宿主机组成的候选宿主机组之前,所述方法还包括:
根据容器的资源时序数据的关联性将所述容器分组。
3.根据权利要求2所述的方法,其特征在于,所述根据容器的资源时序数据的关联性将所述容器分组,包括:
获取各个容器的资源时序数据;
获取两两组合的容器的资源时序数据的时序相关性;
采用合成聚类的方法获取所述时序相关性处于设定数值范围内的容器分组。
4.根据权利要求3所述的方法,其特征在于,根据以下任一种算法获取两两组合的容器的资源时序数据的时序相关性:
皮尔逊相关距离、杰卡德距离、欧氏距离或夹角余弦距离。
5.根据权利要求1所述的方法,其特征在于,所述获取由候选宿主机组成的候选宿主机组之前,所述方法还包括:
在宿主机上容器间的资源相关系数大于第三设定阈值时,根据两两组合的容器的时间序列的时序相关性选取时序相关性最大的两个容器;
将其中一个容器确定为待迁移容器。
6.根据权利要求5所述的方法,其特征在于,所述根据两两组合的容器的时间序列的时序相关性选取时序相关性最大的两个容器之前,所述方法还包括:
根据宿主机上的容器数量和容器分组数量获取所述宿主机上容器间的资源相关系数。
7.根据权利要求1所述的方法,其特征在于,所述获取由候选宿主机组成的候选宿主机组,包括:
根据宿主机的资源使用率从集群的全部宿主机中选取中间宿主机组成中间宿主机组;
根据宿主机的多资源平衡性从所述中间宿主机组中选取候选宿主机组成候选宿主机组。
8.一种集群内容器调度装置,其特征在于,所述装置包括:
候选机组获取单元,用于获取由候选宿主机组成的候选宿主机组;
关联性获取单元,用于获取待迁移容器与所述候选宿主机的已有容器资源时序数据的关联性;
目标选取单元,用于选取所述关联性最小的候选宿主机作为所述待迁移容器的目标迁移宿主机。
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至7中任一项所述的集群内容器调度方法。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7中任一项所述的集群内容器调度方法。
CN201910895076.8A 2019-09-20 2019-09-20 集群内容器调度方法、装置、存储介质和电子设备 Pending CN112540844A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910895076.8A CN112540844A (zh) 2019-09-20 2019-09-20 集群内容器调度方法、装置、存储介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910895076.8A CN112540844A (zh) 2019-09-20 2019-09-20 集群内容器调度方法、装置、存储介质和电子设备

Publications (1)

Publication Number Publication Date
CN112540844A true CN112540844A (zh) 2021-03-23

Family

ID=75012586

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910895076.8A Pending CN112540844A (zh) 2019-09-20 2019-09-20 集群内容器调度方法、装置、存储介质和电子设备

Country Status (1)

Country Link
CN (1) CN112540844A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116170518A (zh) * 2023-04-26 2023-05-26 北京太极信息系统技术有限公司 一种国产芯片容器云跨架构管理的方法及设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116170518A (zh) * 2023-04-26 2023-05-26 北京太极信息系统技术有限公司 一种国产芯片容器云跨架构管理的方法及设备

Similar Documents

Publication Publication Date Title
CN110869909B (zh) 应用机器学习算法来计算健康分数以进行工作负载调度的系统和方法
Alkayal et al. Efficient task scheduling multi-objective particle swarm optimization in cloud computing
EP3281359B1 (en) Application driven and adaptive unified resource management for data centers with multi-resource schedulable unit (mrsu)
US9201690B2 (en) Resource aware scheduling in a distributed computing environment
US9582328B1 (en) Allocation of resources in computing environments
JP5121936B2 (ja) リソース割り当て装置及びリソース割り当てプログラム及び記録媒体及びリソース割り当て方法
Chhabra et al. Multi-criteria HPC task scheduling on IaaS cloud infrastructures using meta-heuristics
Zhang et al. Heterogeneity aware dominant resource assistant heuristics for virtual machine consolidation
JP6129290B1 (ja) 分散計算におけるアプリケーションパラメータ設定およびシステム仕様設定を推奨する方法およびシステム
CN112328395B (zh) 一种云资源容量规划方法和系统
US20140201371A1 (en) Balancing the allocation of virtual machines in cloud systems
KR20140117905A (ko) 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
Jamali et al. Improving grouping genetic algorithm for virtual machine placement in cloud data centers
US8819239B2 (en) Distributed resource management systems and methods for resource management thereof
CN112506650A (zh) 资源分配方法、系统、计算机设备和存储介质
CN114429195A (zh) 混合专家模型训练的性能优化方法和装置
CN112540844A (zh) 集群内容器调度方法、装置、存储介质和电子设备
Jiao et al. Immune optimization of task scheduling on multidimensional QoS constraints
US10594620B1 (en) Bit vector analysis for resource placement in a distributed system
Garg et al. Optimal virtual machine scheduling in virtualized cloud environment using VIKOR method
CN116647560A (zh) 物联网计算机集群协调优化控制方法、装置、设备及介质
CN115858147A (zh) 成本建模方法和装置
Rosenberg Guidelines for data-parallel cycle-stealing in networks of workstations ii: On maximizing guaranteed output
US9864601B2 (en) Resource management in distributed computer systems using dispersion rules
CN112748850B (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