一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种容器分配方法、装置及电子设备与流程

2022-03-30 10:15:14 来源:中国专利 TAG:


1.本发明涉及虚拟化技术和云计算服务技术领域,具体而言,涉及一种容器分配方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.随着容器(container)虚拟化技术和容器大规模集群管理技术的发展,基于容器虚拟化技术的paas(platform as a service,平台即服务)平台逐渐成为云计算的核心。相比于传统虚拟机,容器更加方便快捷且更为高效,使得很多大型公司使用容器技术提供云服务,出现了一大批基于容器化技术的容器云。
3.但是,随着容器云平台实践的深入,容器基础设施资源的分配和使用也暴露出一些问题。传统容器云中的容器调度策略在容器编排时往往仅考虑物理节点的cpu和内存的空闲率以及容器对cpu和内存资源的最大请求量,容易导致物理节点资源利用较低。


技术实现要素:

4.为解决现有存在的技术问题,本发明实施例提供一种容器分配方法、装置、电子设备及计算机可读存储介质。
5.第一方面,本发明实施例提供了一种容器分配方法,包括:确定多个容器的至少一种资源的历史使用情况,所述资源包括cpu资源、内存资源或网络带宽资源,所述历史使用情况包括所述容器在预设时间段内多个时段使用所述资源的情况;根据两个容器的所述资源的历史使用情况,判断所述两个容器是否能够组合;在所述两个容器能够组合的情况下,将所述两个容器分配至相同的物理节点。
6.可选地,根据两个所述容器的所述资源的历史使用情况,判断所述两个容器是否能够组合,包括:确定所述两个容器之间的资源利用匹配度,所述资源利用匹配度表示所述两个容器之间的所述资源在时间维度上的匹配程度;确定所述两个容器之间的资源利用冲突度,所述资源利用冲突度表示所述两个容器之间的所述资源在时间维度上的冲突程度;根据所述两个容器的所述资源利用匹配度和所述资源利用冲突度,确定所述两个容器的综合分数,所述综合分数表示所述两个容器能够组合的可能性;根据所述两个容器的综合分数判断所述两个容器是否能够组合。
7.可选地,确定所述两个容器之间的资源利用匹配度包括:确定所述两个容器之间的资源形态相似度,以及确定所述两个容器之间的资源波动趋势相似度;所述两个容器之间的资源形态相似度用于衡量所述两个容器之间所述资源的所述历史使用情况的数值大小和/或形状的相似程度,所述两个容器之间的资源波动趋势相似度用于衡量所述两个容器之间所述资源的所述历史使用情况的波动趋势的相似程度;根据所述两个容器之间的资源形态相似度及资源波动趋势相似度,得到所述资源利用匹配度。
8.可选地,两个容器之间的资源形态相似度为:可选地,两个容器之间的资源形态相似度为:
其中,r表示所述资源;i、j表示所述两个容器;表示所述容器i中所述资源r的所述历史使用情况;表示所述容器j中所述资源r的所述历史使用情况;表示所述两个容器之间的资源形态相似度;t表示所述预设时间段包含的所述时段的个数;表示所述两个容器的历史使用情况之间的欧式距离;表示所述两个容器的历史使用情况之间的曼哈顿距离;表示所述两个容器之间的所述历史使用情况不同时段的差值之和的绝对值;所述两个容器之间的资源波动趋势相似度为:其中,表示所述两个容器之间的资源波动趋势相似度;t表示所述时段;表示容器i的历史使用情况中在时段t使用资源r的情况;基于公式确定容器i与容器j之间的所述资源利用匹配度。
9.可选地,确定所述两个容器之间的资源利用冲突度包括:确定物理节点的可使用资源总量和所述两个容器之间的组合资源需求量;所述可使用资源总量为所述物理节点的所述资源的总量中、所述两个容器能够使用的所述资源的数量,所述组合资源需求量为所述两个容器的所述资源的所述历史使用情况之和;确定所述两个容器的资源利用冲突度为ruc(ri,rj),且其中,表示所述容器i中所述资源r的所述历史使用情况;表示所述容器j中所述资源r的所述历史使用情况,表示所述组合资源需求量,s表示预设的冲突阈值;n表示所述预设时间段内的冲突次数;示所述组合资源需求量,s表示预设的冲突阈值;n表示所述预设时间段内的冲突次数;表示所述组合资源需求量与所述冲突阈值的欧式距离。
10.可选地,若所述两个容器之间的所述组合资源需求量的均值大于所述物理节的可使用资源总量,将所述两个容器之间的所述资源利用冲突度设为大于预设值。
11.可选地,根据所述两个容器的所述资源利用匹配度和所述资源利用冲突度,确定所述两个容器的综合分数,包括:根据所述两个容器之间多种所述资源的重要性,确定所述两个容器之间所述资源的权重向量;基于所述两个容器的所述资源利用匹配度、所述资源利用冲突度以及所述权重向量,对所述两个容器进行打分,得到所述两个容器的综合分数,容器i和容器j的所述综合分数为score
ij
,且score
ij
=c
rum ij
,m
rum ij
,b
rum ij
)
·
ζ
×
γ-(c
rucij
,m
rucij
,b
rucij
)
·
ζ
×
(1-γ);其中,c
rum ij
,m
rum ij
,b
rum ij
分别表示所述容器i与所述容器j之间,所述cpu资源、所述内存资源、所述网络带宽资源的所述资源利用匹配度;c
rucij
,m
rucij
,b
rucij
分别表示所述容器i与所述容器j之间,所述cpu资源、所述内存资源、所述网络带宽资源的所述资源利用冲突度;ζ表示所述权重向量;γ表示预设参数;
·
表示向量之间作内积运算。
12.可选地,根据所述两个容器的综合分数判断所述两个容器是否能够组合包括:当
在每个所述容器分别与其他所述容器进行打分所得到的多个所述综合分数中,所述两个容器的所述综合分数为最高分数时,确定所述两个容器能够组合。
13.可选地,在所述两个容器能够组合的情况下,该方法还包括:将所述两个容器作为一个新的容器,对多个所述容器进行循环打分操作直至满足预设条件;所述循环打分操作包括:令多个所述容器之间两两组合进行打分,得到多个所述综合分数,确定多个所述综合分数中最高分数所对应的两个容器能够组合,并将最高分数所对应的两个容器作为一个新的容器;所述预设条件包括所述容器的总数量等于所述物理节点的数量,或者,每个所述综合分数均为非正数。
14.可选地,将所述两个容器分配至相同的物理节点包括:将能够组合的容器作为容器集合,并生成包含至少一个所述容器集合的组合方案;对所述组合方案执行优化动作,并确定优化后的组合方案的评估值,所述优化动作包括迁移动作和/或替换动作;所述优化动作用于调整所述组合方案中的容器集合;根据所述评估值确定最优的组合方案,并将所述最优的组合方案中属于同一容器集合的容器分配至同一个物理节点。
15.可选地,迁移动作包括:从所述容器集合中提取首次组合前的容器,将含有所述首次组合前的容器的所述容器集合作为原容器集合,并确定所述首次组合前的容器与其他容器或其他容器集合之间的迁移分数;若多个所述迁移分数中的最大分数大于所述原容器集合的所述综合分数,将多个所述迁移分数中的最大分数所对应的其他容器或其他容器集合和所述首次组合前的容器形成新的容器集合,并将所述原容器集合中除所述首次组合前的容器之外的其他容器作为新的容器或容器集合。
16.可选地,替换动作包括:将第一容器集合中提取的首次组合前的容器,与第二容器集合中提取的首次组合前的容器替换,得到替换后的第一容器集合和替换后的第二容器集合;计算替换后的第一容器集合的综合分数,以及替换后的第二容器集合的综合分数;若替换后的第一容器集合的综合分数与替换后的第二容器集合的综合分数的平均值大于替换前的第一容器集合的综合分数与替换前的第二容器集合的综合分数的平均值,则将替换后的第一容器集合以及替换后的第二容器集合作为新的容器集合。
17.第二方面,本发明实施例提供了一种容器分配装置,包括:确定模块、判断模块、处理模块。
18.确定模块,用于确定多个容器的至少一种资源的历史使用情况,所述资源包括cpu资源、内存资源或网络带宽资源,所述历史使用情况包括所述容器在预设时间段内多个时段使用所述资源的情况。
19.判断模块,用于根据两个容器的所述资源的历史使用情况,判断所述两个容器是否能够组合。
20.处理模块,用于在所述两个容器能够组合的情况下,将所述两个容器分配至相同的物理节点。
21.第三方面,本发明实施例提供了一种电子设备,包括:总线、收发器、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述收发器、所述存储器和所述处理器通过所述总线相连,所述计算机程序被所述处理器执行时实现如上所述的容器分配方法中的步骤。
22.第四方面,本发明实施例提供了一种计算机可读存储介质,包括:可读存储介质上
存储的计算机程序;所述计算机程序被处理器执行时实现如上所述的容器分配方法中的步骤。
23.本发明实施例提供的容器分配方法、装置、电子设备及计算机可读存储介质,考虑到不同类型的容器资源的历史使用情况存在时序差异的特性,提取对应多个时段的历史使用情况,通过确定不同容器中对某种或多种资源的历史使用情况,并判断不同容器是否能够组合,对物理节点下的多个容器进行重分配,实现均衡物理节点各时段中某种或多种资源的利用率,降低集群负载,从而达到避免物理节点中资源浪费的目的。
附图说明
24.为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。
25.图1示出了本发明实施例所提供的一种容器分配方法的流程图;
26.图2示出了本发明实施例所提供的容器分配方法中,“根据两个容器的资源的历史使用情况,判断该两个容器是否能够组合”具体方法的流程图;
27.图3示出了本发明实施例所提供的容器分配方法中,“将两个容器分配至相同的物理节点”具体方法的流程图;
28.图4示出了本发明实施例所提供的容器分配方法的一种详细流程图;
29.图5示出了本发明实施例所提供的容器分配装置的结构示意图;
30.图6示出了本发明实施例所提供的一种电子设备的结构示意图。
具体实施方式
31.下面结合本发明实施例中的附图对本发明实施例进行描述。
32.在实现本发明的过程中,发明人发现,不同类型的容器资源使用情况具有时段差异的特点,例如,证券行业应用资源的使用往往集中在上午9点到10点,短视频应用资源的使用时段则集中在中午12点左右和晚上9点以后,那么对于上午10点至中午12点、以及下午1点至晚上9点前的时间段而言,容器资源的使用是不均衡的。传统容器云中的容器调度策略不能充分考虑到容器资源使用情况具有时段差异的特点,在容器编排时往往仅考虑物理节点的cpu和内存的空闲率以及容器对cpu和内存资源的最大请求量,从而导致物理节点某些时段资源的浪费,物理节点资源利用较低。
33.基于此,本发明提出一种容器分配方法,图1示出了本发明实施例所提供的一种容器分配方法的流程图。如图1所示,该方法包括以下步骤101-103。
34.步骤101:确定多个容器的至少一种资源的历史使用情况,资源包括cpu资源、内存资源或网络带宽资源,历史使用情况包括容器在预设时间段内多个时段使用资源的情况。
35.其中,基于容器云平台上的物理节点可以获得多个容器,该多个容器可以属于同一个物理节点,也可以属于不同的物理节点。每个容器可以使用一种或多种资源,该资源可以是cpu资源、内存资源或者网络带宽资源。本发明实施例中,可以以时段(例如1小时等)为单位,确定多个容器的历史使用情况,该历史使用情况可以是某个容器在预设时间段内的多个时段中使用cpu资源、内存资源或网络带宽资源的情况。
36.例如,某个容器云平台共有4个物理节点,各物理节点所具有的资源的总量相同。
假设此时需要对上述4个物理节点中的7个容器进行重新组合部署,则可以将24小时分为6个时段,分别确定7个容器在每个时段使用cpu资源的情况、使用内存资源的情况以及使用网络带宽资源的情况,每种资源的历史使用情况包含6个时段的使用情况。
37.步骤102:根据两个容器的资源的历史使用情况,判断两个容器是否能够组合。
38.其中,任意选取两个容器,通过对该两个容器的某种资源的历史使用情况进行判断,能够确定该两个容器是否能够组合,该判断两个容器之间是否能组合的方法可以是针对某种资源,分别获取两个容器对该种资源的历史使用情况,并以表格的方式将每个时段所对应的该种资源的历史使用情况记录下来,通过比较表格中的数据判断该两个容器是否能够组合;或者,也可以令时段作为x轴、该种资源的历史使用情况作为y轴,以直方图或折线图的形式将每个时段所对应的该种资源的历史使用情况标注在图上,通过比较图像数据判断该两个容器是否能够组合。
39.本发明实施例中,若将两个容器进行组合,某物理节点能够向组合后的两个容器提供所需求的资源,则可以认为两个容器能够组合。例如,在两个容器的历史使用情况互不冲突时,则对二者组合后也不容易出现资源使用超标的情况,此时可以将两个容器组合。
40.步骤103:在两个容器能够组合的情况下,将两个容器分配至相同的物理节点。
41.其中,当两个容器能够组合时,说明某物理节点可以同时向该两个容器提供二者所需的资源,此时能够确定该两个容器可以组合成为一个整体,并将这两个容器分配至同一个物理节点,以保障该物理节点资源不被浪费,且不影响该物理节点的正常运行。例如,以折线图表示在24小时中的6个时段内,某两个容器分别对某种资源的历史使用情况,且基于该折线图得知,每一时段内该两个容器对某种资源的历史使用情况之间的差异均比较大(如x轴上各个点分别对应的两个y轴上的点之间的距离较大),则可以认为这两个容器在该24小时中的6个时段内对该资源的使用不会出现同时使用或同时不用的情况,该两个容器对该种资源的历史使用情况较为互补,可以确定该两个容器能够组合,此时可以将该两个容器分配至同一个物理节点中。
42.本发明实施例提供的容器分配方法,考虑到不同类型的容器资源的历史使用情况存在时序差异的特性,提取对应多个时段的历史使用情况,通过确定不同容器中对某种或多种资源的历史使用情况,并判断不同容器是否能够组合,对物理节点下的多个容器进行重分配,实现均衡物理节点各时段中某种或多种资源的利用率,降低集群负载,从而达到避免物理节点中资源浪费的目的。
43.可选地,参见图2所示,根据两个容器的资源的历史使用情况,判断该两个容器是否能够组合包括以下步骤201-204。
44.步骤201:确定两个容器之间的资源利用匹配度,该资源利用匹配度表示两个容器之间的资源在时间维度上的匹配程度。
45.其中,当需要判断某两个容器是否能够组合时,可以通过两个容器在预设时间段内使用某种资源的历史使用情况,得到这两个容器之间针对该资源的资源利用匹配度,且每种资源均对应一种资源利用匹配度。例如,可以通过确定容器i和容器j在一天中多个时段使用cpu资源的情况,得到该容器i和容器j对于该cpu资源的资源利用匹配度c
rum i,j
;也可以通过确定容器i和容器j在一天中多个时段使用内存资源的情况,得到该容器i和容器j对于该内存资源的资源利用匹配度m
rum i,j

46.历史使用情况包含多个时段,可以是一个包含多个时段的序列,该序列能够表示在时间维度上对该资源的使用情况,利用两个容器的历史使用情况,也可以确定二者在时间维度上的匹配程度,即资源利用匹配度。本发明实施例中,两个容器能够匹配,指的是两个容器可以所需的资源在时间维度上互不冲突,二者可以设置在同一物理节点。例如,两个容器之间的资源利用匹配度越大,说明两个容器越能够同时段使用该资源且不易冲突,两个容器越能组合,以能够将两个容器设置在同一个物理节点。
47.步骤202:确定两个容器之间的资源利用冲突度,资源利用冲突度表示两个容器之间的资源在时间维度上的冲突程度。
48.其中,当需要判断某两个容器是否能够组合时,还可以通过两个容器在预设时间段内使用某种资源的历史使用情况(如资源的需求量、资源平均需求量等),得到这两个容器之间针对该资源的资源利用冲突度,且每种资源均对应一种资源利用冲突度。例如,可以通过确定容器i和容器j在一天中多个时段对cpu资源的需求量,得到该容器i和容器j对于该cpu资源的资源利用匹配度c
ruc i,j
;也可以通过确定容器i和容器j在一天中多个时段对内存资源的需求量,得到该容器i和容器j对于该内存资源的资源利用匹配度m
ruc i,j

49.相似地,基于两个容器的历史使用情况,也可以确定二者在时间维度上的冲突程度,即资源利用冲突度。与上述的资源利用匹配度相反,该资源利用冲突度表示两个容器使用该资源时,在时间维度上的冲突大小。例如,该资源利用冲突度越大,说明两个容器同时段使用该资源时容易存在冲突,两个容器越不能组合,越不能将两个容器设置在同一个物理节点。
50.步骤203:根据两个容器的资源利用匹配度和资源利用冲突度,确定两个容器的综合分数,综合分数表示两个容器能够组合的可能性。
51.步骤204:根据两个容器的综合分数判断两个容器是否能够组合。
52.本发明实施例中,可以利用两个容器之间的资源利用匹配度和资源利用冲突度,对这两个容器进行打分,得到这两个容器的综合分数,由于该综合分数是用来衡量进行打分的两个容器是否能够组合的依据,因此在得到这两个容器的综合分数之后,可以基于该综合分数判断这两个容器是否能够组合。其中,可以结合针对多种资源分别所得到的两个容器之间的资源利用匹配度和资源利用冲突度,对这两个容器进行打分,确定该两个容器的综合分数;也可以只针对一种资源求出两个容器之间的资源利用匹配度和资源利用冲突度,对这两个容器进行打分,确定该两个容器的综合分数。
53.例如,该综合分数与资源利用匹配度为正相关关系,与资源利用冲突度为负相关关系,即资源利用匹配度越大,该综合分数越高,该资源利用冲突度越大,该综合分数越低。相应地,该综合分数越高,说明两个容器越能够组合。
54.本发明实施例在需要判断某两个容器是否能够组合时,通过确定该两个容器在预设时间段内使用某种资源的历史使用情况,进而得到能够衡量该两个容器是否能组合的重要依据(即综合分数),基于此判断该两个容器是否可以组合。该方法充分利用容器对资源的历史使用情况,根据不同容器的资源使用时段差异的特点,从时间维度上衡量容器之间的匹配程度和冲突程度,从而均衡容器云平台的物理节点各时段的资源利用率,避免资源浪费。
55.可选地,确定两个容器之间的资源利用匹配度包括以下步骤a1-a2。
56.步骤a1:确定两个容器之间的资源形态相似度,以及确定两个容器之间的资源波动趋势相似度;两个容器之间的资源形态相似度用于衡量两个容器之间资源的历史使用情况的数值大小和/或形状的相似程度,两个容器之间的资源波动趋势相似度用于衡量两个容器之间资源的历史使用情况的波动趋势的相似程度。
57.本发明实施例中,两个容器之间的资源形态相似度是一种能够衡量比较该两个容器之间某种的历史使用情况的依据,具体可以是用来比较该两个容器之间使用某种资源的数值大小是否相似,或者形状是否相似等。而两个容器之间的资源波动趋势相似度是另一种能够衡量比较该两个容器之间某种资源的历史使用情况的依据,具体可以是用来比较该两个容器之间使用某种资源的波动趋势是否相似。例如,可以通过折线图的形式分别将两个容器在预设时间段内使用某种资源的历史使用情况描绘在同一坐标系下,进而可以通过两条折线的曲度、波动趋势等得到该两条折线所对应的两个容器之间的资源形态相似度、资源波动趋势相似度;或者,也可以将两个容器在预设时间段内使用某种资源的数值大小、数值变化趋势以表格的形式表示,从而通过表格中的数据,得到该两个容器之间的资源形态相似度、资源波动趋势相似度。其中,每种资源均对应一个资源形态相似度以及一个资源波动趋势相似度。
58.步骤a2:根据两个容器之间的资源形态相似度及资源波动趋势相似度,得到资源利用匹配度。
59.其中,基于两个容器之间的资源形态相似度及资源波动趋势相似度,可以得到能够在时间维度上表示该两个容器之间资源的匹配程度的资源利用匹配度。例如,当在同一坐标系下得到分别表示两个容器在预设时间段内使用某种资源的历史使用情况的折线之后,通过比较两条折线之间曲度、波动趋势等属性确定资源形态相似度及资源波动趋势相似度,进而能够得到该两个容器之间的资源利用匹配度。或者,也可以通过其他方式确定两个容器之间的资源利用匹配度,如,当两个容器在预设时间段内使用某种资源的数值大小、数值变化趋势是以表格的形式表示的,可以通过比较表格中的数据,确定该两个容器之间的资源形态相似度及资源波动趋势相似度,进而得到资源利用匹配度,本发明对此不做限定。
60.本发明实施例通过选取多种可用来衡量两个容器之间对某种资源匹配程度的依据,即两个容器之间的资源形态相似度和资源波动趋势相似度,可以更加准确地判断该两个容器之间使用资源的匹配程度,使所得到的资源利用匹配度更加精确。
61.可选地,两个容器之间的资源形态相似度为:可选地,两个容器之间的资源形态相似度为:其中,r表示资源;i、j表示两个容器;表示容器i中资源r的历史使用情况;表示容器j中资源r的历史使用情况;表示两个容器之间的资源形态相似度;t表示预设时间段包含的时段的个数;表示两个容器的历史使用情况之间的欧式距离;表示两个容器的历史使用情况之间的曼哈顿距离;
表示两个容器之间的历史使用情况不同时段的差值之和的绝对值。
62.本发明实施例中,历史使用情况可以表示为一个时间序列向量,容器i使用资源r的历史使用情况可以表示为其中t表示预设时间段(如24小时)包含的时段的个数,中的每个元素表示该容器i在相应的时段使用该资源r的情况,例如表示该容器i在预设时间段中的第t时段使用该资源r(如cpu资源)的情况。而为了方便运算消除数据间差异影响,可以将所确定的某个容器的某种资源的历史使用情况进行z-score(零-均值)标准化处理。例如,对于资源r(如cpu资源),容器i预设时间段内各时段的对资源r的使用情况可以表示为一个时间序列向量,对该时间序列向量进行z-score标准化处理得到因此本实施例中,表示容器i中资源r的历史使用情况;表示容器j中资源r的历史使用情况;两个容器之间该资源r对应的资源形态相似度表示为
63.其中,可以通过分别计算容器i与容器j对资源r的历史使用情况之间的欧式距离容器i与容器j对资源r的历史使用情况之间的曼哈顿距离以及容器i与容器j之间每一时段对资源r的历史使用情况的差值之和的绝对值得到能够衡量容器i与容器j之间对资源r的历史使用情况的数值大小和/或形状的相似程度的资源形态相似度其中,容器i与容器j之间每一时段对资源r的历史使用情况的差值之和的绝对值可以通过公式:计算得到。
64.两个容器之间的资源波动趋势相似度为:两个容器之间的资源波动趋势相似度为:其中,表示两个容器之间的资源波动趋势相似度;t表示时段;表示容器i的历史使用情况中在时段t使用资源r的情况。
65.本发明实施例中,可以通过分别计算容器i的历史使用情况中每一时段t使用资源r的情况以及容器j的历史使用情况中每一时段t使用资源r的情况得到能够衡量容器j与容器j之间对资源r的历史使用情况的波动趋势的相似程度的资源波动趋势相似度
66.基于公式基于公式确定容器i与容器j之间的资源利用匹配度。
67.其中,当确定了容器i与容器j之间的资源形态相似度以及容器i与容器
j之间的资源波动趋势相似度以后,可以根据容器i与容器j之间的资源波动趋势相似度的取值范围,基于不同的计算公式直接得到该容器i与容器j之间的资源利用匹配度其中,容器i与容器j之间的资源波动趋势相似度的取值范围可以是[-1,1]。
[0068]
本发明实施例将容器对资源的历史使用情况用时间序列向量表示,对每个容器分别对应的一组时间维度上的向量进行计算,通过计算结果得到两个容器之间的资源形态相似度、资源波动趋势相似度,进而能够得到两容器之间的资源利用匹配度,该方法将不具象的历史使用情况通过转化变得更为具体,计算资源利用匹配度时也能更加准确。
[0069]
可选地,确定两个容器之间的资源利用冲突度包括以下步骤b1-b2。
[0070]
步骤b1:确定物理节点的可使用资源总量和两个容器之间的组合资源需求量;可使用资源总量为物理节点的资源的总量中、两个容器能够使用的资源的数量,组合资源需求量为两个容器的资源的历史使用情况之和。
[0071]
其中,每个物理节点内所具有的资源总量是固定的,即物理节点的资源总量是恒定不变的,在该物理节点的资源总量中可供两个容器(如容器i和容器j)使用的资源的数量是可使用资源总量,该可使用资源总量不大于该物理节点的资源总量。而在需要判断某两个容器是否能够组合时,将该两个容器对于某种资源的历史使用情况的总和作为这两个容器对于该种资源的组合资源需求量。
[0072]
步骤b2:确定两个容器的资源利用冲突度为ruc(ri,rj),且其中,表示容器i中资源r的历史使用情况;表示容器j中资源r的历史使用情况,表示组合资源需求量,s表示预设的冲突阈值;n表示预设时间段内的冲突次数;表示组合资源需求量与冲突阈值的欧式距离。
[0073]
本发明实施例中,可以通过计算预设时间段内组合资源需求量与预设的冲突阈值之间的欧式距离,进而得到该两个容器的资源利用冲突度ruc(ri,rj)。其中,先分别确定容器i中对于资源r的历史使用情况以及容器j中对于资源r的历史使用情况将容器i与容器j对于资源r的历史使用情况的总和作为组合资源需求量;再通过预设的冲突阈值s、预设时间段内的冲突次数n,进而得到该容器i与容器j之间的冲突程度结合多个预设时间段内的冲突程度,可以最终确定容器i与容器j之间的资源利用冲突度ruc(ri,rj)。
[0074]
其中,该冲突阈值s为确定两个所述容器之间互相冲突时,该两个容器的组合资源需求量占该物理节点的资源总量的百分比所对应的资源量,例如,物理节点的可使用资源总量。例如,将两个容器的组合资源需求量大于物理节点的资源总量的90%定义为一次冲突,则该90%的资源总量是冲突阈值,该物理节点的资源总量的90%也可以作为可使用资
源总量。
[0075]
本发明实施例通过计算两容器针对某资源在预设时间段内每次发生冲突时的历史使用情况的总和,得到该两个容器之间的资源利用冲突度。该方法计算方法简单,能较快得到准确的结果。
[0076]
可选地,若两个容器之间的组合资源需求量的均值大于该物理节点的可使用资源总量,将两个容器之间的资源利用冲突度设为大于预设值。
[0077]
其中,组合资源需求量的均值为两个容器在预设时间段内对于某资源的平均历史使用情况,例如,将容器i和容器j在一天内使用资源r的历史使用情况的总和除以时段的数量,得到的值即为该组合资源需求量的均值。本发明实施例中,若两容器之间的组合资源需求量的均值超过该物理节点的可使用资源总量,则将两容器之间的资源利用冲突度设置为大于某预设值,该预设值可以是正无穷大,或者是一个较大的值(例如10000等),即在两容器之间的组合资源需求量的均值超过该物理节点的可使用资源总量的情况下,两容器之间的资源利用冲突度可以为正无穷大,则确定该物理节点的可使用资源总量无法满足该两个容器设置在该物理节点时二者所需的资源需求量,该两个容器必然冲突,二者不能组合并存入该物理节点。该方法在两容器的组合资源需求量的均值超过物理节点的可使用资源总量的情况下,直接设定这两个容器的资源利用冲突度是正无穷大或者是较大的数值,能够快速地得到资源利用冲突度,并能有效地避免将两个容器组合在一起。
[0078]
可选地,根据两个容器的资源利用匹配度和资源利用冲突度,确定两个容器的综合分数,包括以下步骤c1-c2。
[0079]
步骤c1:根据两个容器之间多种资源的重要性,确定两个容器之间资源的权重向量。
[0080]
本发明实施例中,每种资源的重要性可以是不同的,例如,cpu资源的重要性可以高于内存资源的重要性、内存资源的重要性可以高于网络带宽资源的重要性,即三种资源之间的重要性关系为cpu资源>内存资源>网络带宽资源;或者,每种资源也可以是同样重要的。其中,可以确定两个容器之间资源的权重向量,该权重向量是用来表示某种资源相比于另一种资源的重要程度。例如,针对三种资源:cpu资源、内存资源、网络带宽资源,确定容器i和容器j分别使用上述三种资源的历史使用情况,该历史使用情况可以包括平均利用率,基于容器i和容器j使用某种资源的平均利用率得到使用该种资源所对应的模糊数,容器i和容器j使用资源的平均利用率越高,则该资源对应的模糊数就越大。通过每种资源对应的模糊数,构建成对比矩阵a,并基于该成对比矩阵和预设的成对比矩阵参数可以求得对应的判断矩阵a',最终确定该两个容器之间每种资源的权重向量,具体计算公式为:
[0081][0082]
l
α
=(b-a)α a
[0083]uα
=-(c-b)α c
[0084]
其中,a

ij
为基于多种资源重要性构成的成对比矩阵和预设的成对比矩阵参数求得的判断矩阵a'中的矩阵元素;每个模糊数设有一个相应的模糊数集,该模糊数集中包含
a、b、c三个值,一般情况下,a、b、c中的至少一个与该模糊数相同;α和μ为预设的成对比矩阵参数,通常可设为0.5;a
ij
为基于多种资源重要性构成的成对比矩阵a中的矩阵元素,即某资源i相比另一资源j的重要程度对应的模糊数,该模糊数的选择可以根据需求自定义。基于上述公式可以确定该判断矩阵a',
[0085]
求解判断矩阵a'的最大特征值对应的特征向量,并归一化该特征向量所得的向量ζ即为所需的权重;若包含三种资源,则权重向量可以表示为:ζ=(μ1,μ2,μ3)。
[0086]
步骤c2:基于两个容器的资源利用匹配度、资源利用冲突度以及权重向量,对两个容器进行打分,得到两个容器的综合分数,容器i和容器j的综合分数为score
ij
,且score
ij
=(c
rum ij
,m
rum ij
,b
rum ij
)
·
ζ
×
γ-(c
rucij
,m
rucij
,b
rucij
)
·
ζ
×
(1-γ);其中,c
rum ij
,m
rum ij
,b
rum ij
分别表示容器i与容器j之间,cpu资源、内存资源、网络带宽资源的资源利用匹配度;c
rucij
,m
rucij
,b
rucij
分别表示容器i与容器j之间,cpu资源、内存资源、网络带宽资源的资源利用冲突度;ζ表示权重向量;γ表示预设参数;
·
表示向量之间作内积运算。若ζ=(μ1,μ2,μ3),则μ1,μ2,μ3分别表示cpu资源、内存资源、网络带宽资源的权重。
[0087]
其中,根据上述步骤c1能够确定的容器i与容器j之间资源的权重向量,并结合该两个容器之间的资源利用匹配度、资源利用冲突度,能够确定该两个容器之间的综合分数。本发明实施例中,用c表示cpu资源、m表示内存资源、b表示网络带宽资源;首先根据容器i和容器j之间使用cpu资源或者内存资源或者网络带宽资源的历史使用情况,分别确定容器i与容器j之间针对上述三种的资源利用匹配度c
rum ij
、m
rum ij
、b
rum ij
;并确定容器i与容器j之间针对上述三种的资源利用冲突度c
rucij
、m
rucij
、b
rucij
;并结合容器i与容器j之间资源的权重向量ζ与预设参数γ,对容器i与容器j进行打分,得到容器i与容器j之间的综合分数score
ij
;其中,预设参数γ为两个容器之间的资源利用匹配度与资源利用冲突度的权衡参数;
·
表示对以向量形式表示的不同资源的资源利用匹配度、资源利用冲突度分别与权重向量ζ作内积运算。
[0088]
本发明实施例中,还可以对所求得的判断矩阵进行一致性检验,该一致性检验可以通过一致性指标公式以及一致性比率公式衡量该判断矩阵是否分配正确。其中n为因素数量,λ
max
是最大特征值,ri是随机一致性指标。由于两个容器使用的资源可以包括cpu资源、内存资源、网络带宽资源三种,则n=3,ri可以为0.58。当cr《0.1时,则认为该判断矩阵满足一致性矩阵的定义,确定该权重向量分配正确;否则需要调整判断矩阵,即调整模糊数或预设的成对比矩阵参数,重新构建判断矩阵,求得满足一致性矩阵定义的权重向量。
[0089]
该方法依据两个容器对不同资源的历史使用情况的不同,判断每种资源的重要程度,并基于每种资源的重要程度确定权重向量,在利用两个容器之间的资源利用匹配度与资源利用冲突度计算该两个容器的合分数的基础上,辅助增加了能够表示资源重要程度的权重向量,同时,对该判断矩阵进行一致性检验,确定所得到的判断矩阵具有一致性,进而能够确定最终得到的两个容器之间的综合分数是准确地。
[0090]
可选地,根据两个容器的综合分数判断两个容器是否能够组合包括:当在每个容器分别与其他容器进行打分所得到的多个综合分数中,两个容器的综合分数为最高分数时,确定两个容器能够组合。
[0091]
其中,令每个容器分别与其他容器两两结合进行打分,可以得到多个综合分数,每个综合分数均对应两个容器。本发明实施例基于多个综合分数能够判断具体哪两个容器能够组合,即在该多个综合分数中,能够确定最高的综合分数所对应的两个容器能够组合。例如,有8个容器(如容器1、容器2、

、容器8),分别用容器1与其他剩余7个容器两两结合进行打分,得到7个综合分数(如score
12
=0.2388、score
13
=0.3683、
……
score
18
=0.4845),再依次用容器2至容器8中的每个容器分别与其他剩余的7个容器两两结合进行打分,当每一个容器均已完成和其他容器两两结合打分以后,将最终所得到的28个综合分数中(参见表1所示)得分最高的综合分数所对应的两个容器,确定为可以组合的容器,即综合得分为0.6131所对应的容器6和容器8能够组合。
[0092][0093]
表1-各容器结合打分后的综合分数表
[0094]
该方法将两个容器的综合分数作为判断该两个容器是否能够组合的依据,通过筛选出最高的综合分数,确定该最高的综合分数所对应的两个容器能够组合,可以快速且直观地得到能够组合的两个容器具体是哪两个容器。
[0095]
可选地,在两个容器能够组合的情况下,该方法还包括步骤d1。
[0096]
步骤d1:将两个容器作为一个新的容器,对多个容器进行循环打分操作直至满足预设条件。
[0097]
其中,在某两个容器能够组合的情况下,可以将这两个容器组合作为一个新的容器。例如,仍然以上述表1所示的例子为例,有8个容器(如容器1、容器2、

、容器8),通过计算得出能够组合的两个容器分别为容器6和容器8,那么可以将该容器6和容器8作为一个新的容器(6,8),则目前共有7个容器,即容器1、容器2、容器3、容器4、容器5、容器7、容器(6,8)。本发明实施例中,在将两个容器作为一个新的容器以后,可以对此时存在的多个容器进行循环打分操作,直到该循环结束为止,该循环结束时刻为该循环操作的结果满足预设条件。例如,在将容器6和容器8作为一个新的容器(6,8)以后,对此时存在的容器1、容器2、容器3、容器4、容器5、容器7、容器(6,8),进行循环打分操作,直至操作结果满足预设条件。
[0098]
其中,步骤d1中的循环打分操作包括:令多个容器之间两两组合进行打分,得到多个综合分数,确定多个综合分数中最高分数所对应的两个容器能够组合,并将最高分数所对应的两个容器作为一个新的容器。
[0099]
本发明实施例中,该循环打分操作可以包括:令每一个容器分别与其他容器两两
结合进行打分,直至遍历目前尚存的所有容器,得到多个综合分数;之后根据目前所得到的多个综合分数中的最高分数,确定该最高分数所对应的两个容器能够组合,并将这两个容器作为一个新的容器。其中,在目前所得到的多个综合分数中,由于某些容器与另外某些容器在上一轮操作中已经计算过二者之间的综合分数,因此,在之后的循环打分操作中,可以不重复计算已经得到综合分数的某两个容器之间的综合分数,进而简化循环打分操作的进程,提升处理速度。
[0100]
例如,目前存在的容器共有7个,即容器1、容器2、容器3、容器4、容器5、容器7、容器(6,8),可以对这7个容器进行循环打分操作。具体可以是令容器1分别与容器2、容器3、容器4、容器5、容器7、容器(6,8)依次两两结合进行打分,每两个容器对应得到一个综合分数;同理,令容器2、容器3、容器4、容器5、容器7、容器(6,8)中的每个容器依次与其他容器两两结合进行打分,直到每个容器均与其他容器进行打分得到相应的综合分数;在目前所得到的综合分数中筛选出最高分数(如容器3和容器5之间的综合分数是最高分数),将该最高分数对应的两个容器作为一个新的容器(即,将容器3和容器5作为一个新的容器得到容器(3,5))。此时,若还未满足可以结束该循环打分操作的预设条件,则令目前存在的6个容器之间两两组合进行打分,继续执行该循环打分操作。
[0101]
其中,预设条件包括容器的总数量等于物理节点的数量,或者,每个综合分数均为非正数。
[0102]
其中,结束该循环打分操作的预设条件可以根据分配容器所要实现的不同目的设定不同的预设条件。例如,若分配容器是为了均衡各物理节点各时段资源的利用率,则该预设条件可以是容器的总数量等于物理节点的数量;若分配容器是为了达到使用最少物理节点部署大量的容器,则该预设条件可以是当前计算得到的每个综合分数均小于0。
[0103]
本发明实施例通过执行循环打分操作,对当前存在的每个容器与其他容器两两结合进行打分,能够得到每个容器与其他容器之间的综合分数,将多个综合分数中最高的综合分数所对应的两个容器作为一个新的容器,再对目前存在的容器执行下一次的循环打分操作,直至满足预设条件为止。该方法能够全面地得到每一个容器与其他容器之间的综合分数,并且将两个可以组合的容器作为一个新的容器,将新的容器也加入到需要进行打分的容器的行列中,增加了与原有容器完全不同的新的容器,同时也增加了新的组合方式。该方法能够使原本数量较多、资源利用不均衡的容器迭代为数量较小、且各时段资源利用较稳均衡的状态。
[0104]
可选地,参见图3所示,将两个容器分配至相同的物理节点包括以下步骤301-303。
[0105]
步骤301:将能够组合的容器作为容器集合,并生成包含至少一个容器集合的组合方案。
[0106]
其中,当得到能够组合的容器后,可以将这些容器作为一个容器集合,并生成一个每个容器均被包含在内的组合方案。该组合方案可以只包含一个容器集合,其余均是未能组合的单独的容器;该组合方案也可以包含多个容器集合,本发明实施例对此不做限定。并且,该容器集合中可以包含两个容器,也可以包含更多个容器,具体基于实际情况而定。例如,以上述表1所示的例子为例,针对原始存在的8个容器,容器1、容器2、
……
、容器8进行打分并判断其中哪两个容器可以组合,在执行三轮的循环打分操作之后,所得到的组合方案为容器(6,8)、容器(3,5)、容器(1,7)、容器(2)、容器(4);在第四轮的循环打分操作中,确定
容器(2)与新的容器(1,7)之间的综合分数最高,二者能够结合,从而生成包含容器(1)、(2)、(7)的容器集合(1,2,7),此时的组合方案为:容器(6,8)、容器(3,5)、容器(1,2,7)、容器(4),该组合方案中共有三个容器集合、一个未组合的容器,并且该组合方案中包含了原始存在的全部容器。
[0107]
步骤302:对组合方案执行优化动作,并确定优化后的组合方案的评估值,优化动作包括迁移动作和/或替换动作;优化动作用于调整组合方案中的容器集合。
[0108]
本发明实施例中,当得到组合方案后,可以对该组合方案进行优化并得到优化后的评估值,通过对该方案执行优化动作进而可以对该组合方案中的容器集合进行调整,该评估值可以用来表示该优化后的组合方案对于资源的使用以及容器的部署是否更加稳定与合理。其中,该优化动作可以是迁移动作也可以是替换动作,还可以同时包括迁移动作和替换动作,本实施例对执行这两个动作的先后顺序不做限定。
[0109]
该评估值u可以基于以下公式得到:该评估值u可以基于以下公式得到:
[0110]
其中,预设各物理节点内资源r的使用情况,如平均利用率序列为p,且t为时段的数量;mr表示物理节点中资源r的空闲情况,相应地,分别为第i个物理节点cpu资源、内存资源、网络带宽资源的空闲情况,ζ为各资源的权重向量,且ζ=(μ1,μ2,μ3);n为物理节点个数。由于当前所有的容器所需的资源总量相对是固定的,在此情况下,基于上述公式可以确定,当每个物理节点内cpu资源、内存资源和网络带宽资源的使用情况越平均、各时段资源的使用情况越平均、各容器资源的使用情况越平均,则u越小,即优化后组合方案的评估值越小。本发明实施例选择评估值较小的优化动作进行容器重组得到新的容器集合,以生成评估值较小的组合方案。
[0111]
步骤303:根据评估值确定最优的组合方案,并将最优的组合方案中属于同一容器集合的容器分配至同一个物理节点。
[0112]
其中,可以根据计算得到的评估值确定经过优化动作处理后的组合方案中更加合理的组合方案,并将该组合方案中同一容器集合中所包含的容器分配至同一物理节点使用。例如,优化后的组合方案为容器集合(1,4)、容器集合(2,7)、容器集合(3,5)、容器集合(6,8),则可以将容器集合(1,4)中的容器1和容器4分配至相同的物理节点。
[0113]
本发明实施例在得到组合方案后,继续对该组合方案执行优化动作,得到优化后的组合方案的评估值,并通过分析该评估值选定更加合理且效果更好的某种或多种优化动作所对应的组合方案,最终将该组合方案中容器集合所对应的容器分配至同一物理节点。本方法执行该优化重组过程有效防止了仅凭计算综合分数便确定组合方案所存在的局部最优化的情况,通过优化动作能够使最终确定的组合方案更加合理。
[0114]
可选地,迁移动作包括以下步骤e1-e2。
[0115]
步骤e1:从容器集合中提取首次组合前的容器,将含有首次组合前的容器的容器集合作为原容器集合,并确定首次组合前的容器与其他容器或其他容器集合之间的迁移分数。
[0116]
本发明实施例中,首次组合前的容器是原始存在的单独的容器,其不是在执行循环打分操作后所确定的新的容器,该新的容器中也包含多个原始存在的单独的容器;可以从容器集合中将该首次组合前的容器提取出来,则提取出该首次组合前的容器的容器集合作为原容器集合。之后将该首次组合前的容器与该组合方案中的其他容器或其他容器集合两两结合进行打分,得到该首次组合前的容器与该组合方案中的其他容器或其他容器集合之间的迁移分数,得到该迁移分数的打分方法可以与确定综合分数时所使用的打分方法相同。例如,所得到的组合方案为容器集合(6,8)、容器集合(3,5)、容器集合(1,2,7)、容器(4),从容器集合(6,8)中选择首次组合前的容器6,令该容器6依次与容器集合(3,5)、容器集合(1,2,7)、容器(4)两两结合计算迁移分数。本发明实施例中,可以对每个容器集合中的首次组合前的容器均进行上述计算迁移分数的操作。
[0117]
步骤e2:若多个迁移分数中的最大分数大于原容器集合的综合分数,将多个迁移分数中的最大分数所对应的其他容器或其他容器集合和首次组合前的容器形成新的容器集合,并将原容器集合中除首次组合前的容器之外的其他容器作为新的容器或容器集合。
[0118]
其中,当首次组合前的容器与该组合方案中其他容器或其他容器集合之间的迁移分数中的最大分数大于原容器集合的综合分数,说明将该首次组合前的容器迁移至该最大分数对应的其他容器或其他容器集合中使用更为合理,故可以将求得该迁移分数中的最大分数的其他容器或其他容器集合与所提取出的该首次组合前的容器作为一个新的容器集合;同时,针对原容器集合中剩余的其他容器作为新的容器或容器集合。
[0119]
本发明实施例通过从容器集合中提取首次组合前的容器,计算该首次组合前的容器与该组合方案中其他容器或其他容器集合之间的迁移分数,能够确定该首次组合前的容器是留在原容器集合中使用效果更好还是迁移至其他容器或其他容器集合中使用效果更好,该方法提供了更加丰富的容器分配方案,并增加了改善原有组合方案的几率。
[0120]
可选地,替换动作包括以下步骤f1-f3。
[0121]
步骤f1:将第一容器集合中提取的首次组合前的容器,与第二容器集合中提取的首次组合前的容器替换,得到替换后的第一容器集合和替换后的第二容器集合。
[0122]
其中,可以从不同的容器集合中分别提取首次组合前的容器进行替换,即从第一容器集合中提取首次组合前的容器,从第二容器集合中提取首次组合前的容器,将该第一容器集合中提取的首次组合前的容器替换至第二次容器集合中,并将该第二容器集合中提取的首次组合前的容器替换至第一容器集合中,以得到替换后的第一容器集合和替换后的第二容器集合;该第一容器集合与第二容器集合是组合方案中两个不同的容器集合。例如,第一容器集合为(1,2),第二容器集合为(3,4),可以选择第一容器集合(1,2)中的容器1与第二容器集合(3,4)中的容器3进行相互替换,得到替换后的第一容器集合(3,2)和替换后的第二容器集合(1,4)。
[0123]
步骤f2:计算替换后的第一容器集合的综合分数,以及替换后的第二容器集合的综合分数.
[0124]
本发明实施例中,对替换后的第一容器集合计算综合分数,即计算替换后的第一容器集合中重新组合在一起的容器之间的综合分数,该计算方式与判断两个容器是否能够组合时的计算方式相同。同理,也可针对替换后的第二容器集合计算综合分数。例如,替换后的第一容器集合为(3,2),替换后的第二容器集合为(1,4),分别计算容器3与容器2之间
的综合分数,以及分别计算容器1和容器4之间的综合分数。
[0125]
步骤f3:若替换后的第一容器集合的综合分数与替换后的第二容器集合的综合分数的平均值大于替换前的第一容器集合的综合分数与替换前的第二容器集合的综合分数的平均值,则将替换后的第一容器集合以及替换后的第二容器集合作为新的容器集合。
[0126]
其中,针对所得到的替换后的第一容器集合的综合分数与替换后的第二容器集合的综合分数,可以进一步计算得到替换后的第一容器集合与替换后的第二容器集合的综合分数的平均值,若该平均值大于替换前第一容器集合与替换前第二容器集合的综合分数的平均值,则表示两个容器集合中的两个首次组合前的容器通过本次所进行的替换动作替换至对方的容器集合后,使得这两个替换后的容器集合的使用效果更好,故可以将替换后的第一容器集合以及替换后的第二容器集合作为新的容器集合。
[0127]
本发明实施例分别从两个不同的容器集合中提取出两个首次组合前的容器进行替换动作,从而可以通过比较替换后两容器集合的综合分数的平均值与替换前两容器集合的综合分数的平均值的方式,确定该替换动作的结果是否为更优结果,进而提供了更加丰富的容器分配方案。
[0128]
下面通过一个实施例详细介绍该容器分配方法流程。参见图4所示,该方法包括以下步骤401-413。
[0129]
步骤401:对每个容器分别确定三种资源的历史使用情况。
[0130]
其中,三种资源分别是cpu资源、内存资源、网络带宽资源。
[0131]
步骤402:基于每种资源的历史使用情况,确定任意两容器之间的资源利用匹配度。
[0132]
其中,可以根据上述步骤a1-a2中所描述的方法确定两容器间的资源形态相似度和资源波动趋势相似度,从而得到两容器之间的资源利用匹配度。
[0133]
步骤403:根据物理节点的可使用资源总量和两容器间的组合资源需求量,确定任意两容器间的资源利用冲突度。
[0134]
其中,可以根据上述步骤b1-b2中所描述的方法得到该资源利用冲突度,此处不再赘述。
[0135]
步骤404:确定三种资源的权重向量。
[0136]
其中,可以根据上述步骤c1中所描述的方法确定该权重向量,此处不再赘述。
[0137]
步骤405:基于两个容器之间的资源利用匹配度、资源利用冲突度以及权重向量,对该两个容器进行打分,得到该两个容器的综合分数。
[0138]
其中,可以根据上述步骤c2中所描述的方法计算两容器之间的综合分数,此处不再赘述。
[0139]
步骤406:判断多个综合分数中是否存在正数,若存在,执行步骤407;则执行步骤409。
[0140]
步骤407:根据多个综合分数中的最高分数,确定该最高分数对应的两个容器能够组合。
[0141]
步骤408:将该两个容器作为一个新的容器,循环执行步骤401-408直至所有综合分数中没有正数为止。
[0142]
其中,在循环执行步骤401-408的过程中,只需要确定新的容器的历史使用情况,
以及该新的容器与其他容器之间的综合分数。
[0143]
步骤409:将能够组合的容器作为容器集合,生成包含容器集合的组合方案。
[0144]
步骤410:对组合方案执行迁移动作得到迁移后的组合方案,并计算该迁移后的组合方案的评估值。
[0145]
步骤411:对组合方案执行替换动作得到替换后的组合方案,并计算该替换后的组合方案的评估值。
[0146]
步骤412:基于迁移后的组合方案的评估值和替换后的组合方案的评估值,确定最优的组合方案。
[0147]
步骤413:将最优的组合方案中属于同一容器集合的容器分配至相同的物理节点。
[0148]
本发明实施例还提供了一种容器分配装置,参见图5所示,包括:确定模块51、判断模块52、处理模块53。
[0149]
确定模块51用于确定多个容器的至少一种资源的历史使用情况,所述资源包括cpu资源、内存资源或网络带宽资源,所述历史使用情况包括所述容器在预设时间段内多个时段使用所述资源的情况。
[0150]
判断模块52用于根据两个容器的所述资源的历史使用情况,判断所述两个容器是否能够组合。
[0151]
处理模块53用于在所述两个容器能够组合的情况下,将所述两个容器分配至相同的物理节点。
[0152]
可选地,判断模块52包括:第一确定单元、第二确定单元、计算单元、判断单元。
[0153]
第一确定单元用于确定所述两个容器之间的资源利用匹配度,所述资源利用匹配度表示所述两个容器之间的所述资源在时间维度上的匹配程度。
[0154]
第二确定单元用于确定确定所述两个容器之间的资源利用冲突度,所述资源利用冲突度表示所述两个容器之间的所述资源在时间维度上的冲突程度。
[0155]
计算单元用于根据所述两个容器的所述资源利用匹配度和所述资源利用冲突度,确定所述两个容器的综合分数,所述综合分数表示所述两个容器能够组合的可能性。
[0156]
判断单元用于根据所述两个容器的综合分数判断所述两个容器是否能够组合。
[0157]
可选地,第一确定单元包括:第一确定子单元、第一生成子单元。
[0158]
第一确定子单元用于确定所述两个容器之间的资源形态相似度,以及确定所述两个容器之间的资源波动趋势相似度;所述两个容器之间的资源形态相似度用于衡量所述两个容器之间所述资源的所述历史使用情况的数值大小和/或形状的相似程度,所述两个容器之间的资源波动趋势相似度用于衡量所述两个容器之间所述资源的所述历史使用情况的波动趋势的相似程度。
[0159]
第一生成子单元用于根据所述两个容器之间的资源形态相似度及资源波动趋势相似度,得到所述资源利用匹配度。
[0160]
可选地,两个容器之间的资源形态相似度为:可选地,两个容器之间的资源形态相似度为:其中,r表示所述资源;i、j表示所述两个容器;表示所述容器i中所述
资源r的所述历史使用情况;表示所述容器j中所述资源r的所述历史使用情况;表示所述两个容器之间的资源形态相似度;t表示所述预设时间段包含的所述时段的个数;表示所述两个容器的历史使用情况之间的欧式距离;表示所述两个容器的历史使用情况之间的曼哈顿距离;表示所述两个容器之间的所述历史使用情况不同时段的差值之和的绝对值;所述两个容器之间的资源波动趋势相似度为:其中,表示所述两个容器之间的资源波动趋势相似度;t表示所述时段;表示容器i的历史使用情况中在时段t使用资源r的情况;基于公式确定容器i与容器j之间的所述资源利用匹配度。
[0161]
可选地,第二确定单元包括:第二确定子单元、第二生成子单元。
[0162]
第二确定子单元用于确定物理节点的可使用资源总量和所述两个容器之间的组合资源需求量;所述可使用资源总量为所述物理节点的所述资源的总量中、所述两个容器能够使用的所述资源的数量,所述组合资源需求量为所述两个容器的所述资源的所述历史使用情况之和;
[0163]
第二生成子单元用于确定所述两个容器的资源利用冲突度为ruc(ri,rj),且其中,表示所述容器i中所述资源r的所述历史使用情况;表示所述容器j中所述资源r的所述历史使用情况,表示所述组合资源需求量,s表示预设的冲突阈值;n表示所述预设时间段内的冲突次数;表示所述组合资源需求量与所述冲突阈值的欧式距离。
[0164]
可选地,若所述两个容器之间的所述组合资源需求量的均值大于所述物理节的可使用资源总量,将所述两个容器之间的所述资源利用冲突度设为大于预设值。
[0165]
可选地,计算单元包括:权重向量计算子单元、打分子单元。
[0166]
权重向量计算子单元用于根据所述两个容器之间多种所述资源的重要性,确定所述两个容器之间所述资源的权重向量。
[0167]
打分子单元用于基于所述两个容器的所述资源利用匹配度、所述资源利用冲突度以及所述权重向量,对所述两个容器进行打分,得到所述两个容器的综合分数,容器i和容器j的所述综合分数为score
ij
,且score
ij
=(c
rum ij
,m
rum ij
,b
rum ij
)
·
ζ
×
γ-(c
rucij
,m
rucij
,b
rucij
)
·
ζ
×
(1-γ);其中,c
rum ij
,m
rum ij
,b
rum ij
分别表示所述容器i与所述容器j之间,所述cpu资源、所述内存资源、所述网络带宽资源的所述资源利用匹配度;c
rucij
,m
rucij
,b
rucij
分别表示所述容器i与所述容器j之间,所述cpu资源、所述内存资源、所述网络带宽资源的所述
资源利用冲突度;ζ表示所述权重向量;γ表示预设参数;
·
表示向量之间作内积运算。
[0168]
可选地,判断单元用于当在每个所述容器分别与其他所述容器进行打分所得到的多个所述综合分数中,所述两个容器的所述综合分数为最高分数时,确定所述两个容器能够组合。
[0169]
可选地,处理模块53还包括:循环打分单元
[0170]
循环打分单元用于将所述两个容器作为一个新的容器,对多个所述容器进行循环打分操作直至满足预设条件。所述循环打分操作包括:令多个所述容器之间两两组合进行打分,得到多个所述综合分数,确定多个所述综合分数中最高分数所对应的两个容器能够组合,并将最高分数所对应的两个容器作为一个新的容器;所述预设条件包括所述容器的总数量等于所述物理节点的数量,或者,每个所述综合分数均为非正数。
[0171]
可选地,处理模块53包括:生成单元、优化单元、分配单元。
[0172]
生成单元用于将能够组合的容器作为容器集合,并生成包含至少一个所述容器集合的组合方案。
[0173]
优化单元用于对所述组合方案执行优化动作,并确定优化后的组合方案的评估值,所述优化动作包括迁移动作和/或替换动作;所述优化动作用于调整所述组合方案中的容器集合。
[0174]
分配单元用于根据所述评估值确定最优的组合方案,并将所述最优的组合方案中属于同一容器集合的容器分配至同一个物理节点。
[0175]
可选地,迁移动作包括:从所述容器集合中提取首次组合前的容器,将含有所述首次组合前的容器的所述容器集合作为原容器集合,并确定所述首次组合前的容器与其他容器或其他容器集合之间的迁移分数;若多个所述迁移分数中的最大分数大于所述原容器集合的所述综合分数,将多个所述迁移分数中的最大分数所对应的其他容器或其他容器集合和所述首次组合前的容器形成新的容器集合,并将所述原容器集合中除所述首次组合前的容器之外的其他容器作为新的容器或容器集合。
[0176]
可选地,替换动作包括:将第一容器集合中提取的首次组合前的容器,与第二容器集合中提取的首次组合前的容器替换,得到替换后的第一容器集合和替换后的第二容器集合;计算替换后的第一容器集合的综合分数,以及替换后的第二容器集合的综合分数;若替换后的第一容器集合的综合分数与替换后的第二容器集合的综合分数的平均值大于替换前的第一容器集合的综合分数与替换前的第二容器集合的综合分数的平均值,则将替换后的第一容器集合以及替换后的第二容器集合作为新的容器集合。
[0177]
本发明实施例提供的容器分配装置,考虑到不同类型的容器资源的历史使用情况存在时序差异的特性,提取对应多个时段的历史使用情况,通过确定不同容器中对某种或多种资源的历史使用情况,并判断不同容器是否能够组合,对物理节点下的多个容器进行重分配,实现均衡物理节点各时段中某种或多种资源的利用率,降低集群负载,从而达到避免物理节点中资源浪费的目的。
[0178]
此外,本发明实施例还提供了一种电子设备,包括总线、收发器、存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该收发器、该存储器和处理器分别通过总线相连,计算机程序被处理器执行时实现上述容器分配方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0179]
具体的,参见图6所示,本发明实施例还提供了一种电子设备,该电子设备包括总线1110、处理器1120、收发器1130、总线接口1140、存储器1150和用户接口1160。
[0180]
在本发明实施例中,该电子设备还包括:存储在存储器1150上并可在处理器1120上运行的计算机程序,计算机程序被处理器1120执行时实现上述容器分配方法实施例的各个过程。
[0181]
收发器1130,用于在处理器1120的控制下接收和发送数据。
[0182]
本发明实施例中,总线架构(用总线1110来代表),总线1110可以包括任意数量互联的总线和桥,总线1110将包括由处理器1120代表的一个或多个处理器与存储器1150代表的存储器的各种电路连接在一起。
[0183]
总线1110表示若干类型的总线结构中的任何一种总线结构中的一个或多个,包括存储器总线以及存储器控制器、外围总线、加速图形端口(accelerate graphical port,agp)、处理器或使用各种总线体系结构中的任意总线结构的局域总线。作为示例而非限制,这样的体系结构包括:工业标准体系结构(industry standard architecture,isa)总线、微通道体系结构(micro channel architecture,mca)总线、扩展isa(enhanced isa,eisa)总线、视频电子标准协会(video electronics standards association,vesa)、外围部件互连(peripheral component interconnect,pci)总线。
[0184]
处理器1120可以是一种集成电路芯片,具有信号处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中硬件的集成逻辑电路或软件形式的指令完成。上述的处理器包括:通用处理器、中央处理器(central processing unit,cpu)、网络处理器(network processor,np)、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)、复杂可编程逻辑器件(complex programmable logic device,cpld)、可编程逻辑阵列(programmable logic array,pla)、微控制单元(microcontroller unit,mcu)或其他可编程逻辑器件、分立门、晶体管逻辑器件、分立硬件组件。可以实现或执行本发明实施例中公开的各方法、步骤及逻辑框图。例如,处理器可以是单核处理器或多核处理器,处理器可以集成于单颗芯片或位于多颗不同的芯片。
[0185]
处理器1120可以是微处理器或任何常规的处理器。结合本发明实施例所公开的方法步骤可以直接由硬件译码处理器执行完成,或者由译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(random access memory,ram)、闪存(flash memory)、只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、寄存器等本领域公知的可读存储介质中。所述可读存储介质位于存储器中,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0186]
总线1110还可以将,例如外围设备、稳压器或功率管理电路等各种其他电路连接在一起,总线接口1140在总线1110和收发器1130之间提供接口,这些都是本领域所公知的。因此,本发明实施例不再对其进行进一步描述。
[0187]
收发器1130可以是一个元件,也可以是多个元件,例如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。例如:收发器1130从其他设备接收外部数据,收发器1130用于将处理器1120处理后的数据发送给其他设备。取决于计算机系统的性
质,还可以提供用户接口1160,例如:触摸屏、物理键盘、显示器、鼠标、扬声器、麦克风、轨迹球、操纵杆、触控笔。
[0188]
应理解,在本发明实施例中,存储器1150可进一步包括相对于处理器1120远程设置的存储器,这些远程设置的存储器可以通过网络连接至服务器。上述网络的一个或多个部分可以是自组织网络(ad hoc network)、内联网(intranet)、外联网(extranet)、虚拟专用网(vpn)、局域网(lan)、无线局域网(wlan)、广域网(wan)、无线广域网(wwan)、城域网(man)、互联网(internet)、公共交换电话网(pstn)、普通老式电话业务网(pots)、蜂窝电话网、无线网络、无线保真(wi-fi)网络以及两个或更多个上述网络的组合。例如,蜂窝电话网和无线网络可以是全球移动通信(gsm)系统、码分多址(cdma)系统、全球微波互联接入(wimax)系统、通用分组无线业务(gprs)系统、宽带码分多址(wcdma)系统、长期演进(lte)系统、lte频分双工(fdd)系统、lte时分双工(tdd)系统、先进长期演进(lte-a)系统、通用移动通信(umts)系统、增强移动宽带(enhance mobile broadband,embb)系统、海量机器类通信(massive machine type of communication,mmtc)系统、超可靠低时延通信(ultra reliable low latency communications,urllc)系统等。
[0189]
应理解,本发明实施例中的存储器1150可以是易失性存储器或非易失性存储器,或可包括易失性存储器和非易失性存储器两者。其中,非易失性存储器包括:只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存(flash memory)。
[0190]
易失性存储器包括:随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如:静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddrsdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,drram)。本发明实施例描述的电子设备的存储器1150包括但不限于上述和任意其他适合类型的存储器。
[0191]
在本发明实施例中,存储器1150存储了操作系统1151和应用程序1152的如下元素:可执行模块、数据结构,或者其子集,或者其扩展集。
[0192]
具体而言,操作系统1151包含各种系统程序,例如:框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序1152包含各种应用程序,例如:媒体播放器(media player)、浏览器(browser),用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序1152中。应用程序1152包括:小程序、对象、组件、逻辑、数据结构以及其他执行特定任务或实现特定抽象数据类型的计算机系统可执行指令。
[0193]
此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述容器分配方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0194]
计算机可读存储介质包括:永久性和非永久性、可移动和非可移动媒体,是可以保留和存储供指令执行设备所使用指令的有形设备。计算机可读存储介质包括:电子存储设
备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备以及上述任意合适的组合。计算机可读存储介质包括:相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、非易失性随机存取存储器(nvram)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带存储、磁带磁盘存储或其他磁性存储设备、记忆棒、机械编码装置(例如在其上记录有指令的凹槽中的穿孔卡或凸起结构)或任何其他非传输介质、可用于存储可以被计算设备访问的信息。按照本发明实施例中的界定,计算机可读存储介质不包括暂时信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如穿过光纤电缆的光脉冲)或通过导线传输的电信号。
[0195]
在本技术所提供的几个实施例中,应该理解到,所披露的装置、电子设备和方法,可以通过其他的方式实现。例如,以上描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的、机械的或其他的形式连接。
[0196]
所述作为分离部件说明的单元可以是或也可以不是物理上分开的,作为单元显示的部件可以是或也可以不是物理单元,既可以位于一个位置,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或全部单元来解决本发明实施例方案要解决的问题。
[0197]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0198]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术作出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(包括:个人计算机、服务器、数据中心或其他网络设备)执行本发明各个实施例所述方法的全部或部分步骤。而上述存储介质包括如前述所列举的各种可以存储程序代码的介质。
[0199]
在本发明实施例的描述中,所属技术领域的技术人员应当知道,本发明实施例可以实现为方法、装置、电子设备及计算机可读存储介质。因此,本发明实施例可以具体实现为以下形式:完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、硬件和软件结合的形式。此外,在一些实施例中,本发明实施例还可以实现为在一个或多个计算机可读存储介质中的计算机程序产品的形式,该计算机可读存储介质中包含计算机程序代码。
[0200]
上述计算机可读存储介质可以采用一个或多个计算机可读存储介质的任意组合。计算机可读存储介质包括:电、磁、光、电磁、红外或半导体的系统、装置或器件,或者以上任意的组合。计算机可读存储介质更具体的例子包括:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom)、闪存(flash memory)、光
纤、光盘只读存储器(cd-rom)、光存储器件、磁存储器件或以上任意组合。在本发明实施例中,计算机可读存储介质可以是任意包含或存储程序的有形介质,该程序可以被指令执行系统、装置、器件使用或与其结合使用。
[0201]
上述计算机可读存储介质包含的计算机程序代码可以用任意适当的介质传输,包括:无线、电线、光缆、射频(radio frequency,rf)或者以上任意合适的组合。
[0202]
可以以汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,例如:java、smalltalk、c ,还包括常规的过程式程序设计语言,例如:c语言或类似的程序设计语言。计算机程序代码可以完全的在用户计算机上执行、部分的在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行以及完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括:局域网(lan)或广域网(wan),可以连接到用户计算机,也可以连接到外部计算机。
[0203]
本发明实施例通过流程图和/或方框图描述所提供的方法、装置、电子设备。
[0204]
应当理解,流程图和/或方框图的每个方框以及流程图和/或方框图中各方框的组合,都可以由计算机可读程序指令实现。这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机可读程序指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或方框图中的方框规定的功能/操作的装置。
[0205]
也可以将这些计算机可读程序指令存储在能使得计算机或其他可编程数据处理装置以特定方式工作的计算机可读存储介质中。这样,存储在计算机可读存储介质中的指令就产生出一个包括实现流程图和/或方框图中的方框规定的功能/操作的指令装置产品。
[0206]
也可以将计算机可读程序指令加载到计算机、其他可编程数据处理装置或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程数据处理装置上执行的指令能够提供实现流程图和/或方框图中的方框规定的功能/操作的过程。
[0207]
以上所述,仅为本发明实施例的具体实施方式,但本发明实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例披露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明实施例的保护范围之内。因此,本发明实施例的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献