一种容器资源调整方法、装置、电子设备及介质与流程

文档序号:32043138发布日期:2022-11-03 06:01阅读:41来源:国知局
一种容器资源调整方法、装置、电子设备及介质与流程

1.本公开涉及容器的运维技术领域,特别是涉及一种容器资源调整方法、装置、电子设备及介质。


背景技术:

2.云平台中存在大量节点,节点中运行着容器,应用可以包装在容器中,通过在容器中运行应用来提供云服务。容器可以简化应用的构建、部署和运行的过程。为了实现容器在云环境中的正常运行,需要人工预先为容器设置资源的请求量和限制量,以便后续将容器调度到可用资源大于该容器的资源请求量的节点上,并在容器运行过程中,限制容器的实际资源使用量不超过该容器的资源限制量。
3.目前,通过人工经验对容器的资源请求量和资源限制量进行评估和设置,可能会出现因资源分配不合理,而导致资源利用率较低或容器资源使用受限的问题。例如,如果资源请求量过小且资源限制量过大,导致容器运行时实际所需资源量超过资源请求量过多,且没有超过资源限制量,则需要为容器分配实际所需资源量。但容器所在节点的可用资源可能不够,导致资源使用受限,甚至可能造成容器中提供的服务中断的情况。如果资源请求量过大,导致实际所需资源量远小于资源请求量,会导致容器所在节点中过多的资源被容器预占用却又长期未被使用,使得资源利用率较低。如果资源限制量过小,导致实际所需资源量超过资源限制量,但又由于实际分配给容器的资源量不能超过资源限制量,导致无法为容器分配足够的资源量。


技术实现要素:

4.本公开实施例的目的在于提供一种容器资源调整方法、装置、电子设备及介质,以解决为容器分配资源不合理的问题。具体技术方案如下:
5.第一方面,本公开实施例提供了一种容器资源调整方法,所述方法包括:
6.获取容器组运行指定业务时的业务指标序列和所述指定业务的预设服务质量参数;
7.根据所述业务指标序列和所述预设服务质量参数,确定所述容器组的建议副本数量,以及所述容器组中单个容器的建议资源请求量和建议资源限制量;
8.若所述建议副本数量、所述建议资源请求量和所述建议资源限制量,与所述容器组的当前副本数量、所述容器组中单个容器的当前资源请求量和当前资源限制量不匹配,则基于所述建议副本数量、所述建议资源请求量和所述建议资源限制量确定期望副本数量、期望资源请求量和期望资源限制量;
9.按照所述期望副本数量、所述期望资源请求量和所述期望资源限制量对所述容器组的资源配置信息进行调整。
10.在本公开的一些实施例中,所述业务指标序列包括所述容器组运行所述指定业务过程中,在多个历史时间的业务指标参数;所述根据所述业务指标序列和所述预设服务质
量参数,确定所述容器组的建议副本数量,以及所述容器组中单个容器的建议资源请求量和建议资源限制量,包括:
11.计算所述业务指标序列包括的各业务指标参数的业务指标参数平均值,并确定业务指标参数限制值,所述业务指标参数限制值大于等于所述业务指标序列中的业务指标参数最大值;
12.根据业务指标参数、服务质量参数、资源使用量和副本数量之间的预设映射关系,确定所述业务指标参数平均值和所述预设服务质量参数对应的至少一组资源使用量和副本数量,将确定出的每组资源使用量和副本数量作为一组目标资源请求量和第一副本数量;
13.根据业务指标参数、服务质量参数、资源使用量和副本数量之间的预设映射关系,确定所述业务指标参数限制值和所述预设服务质量参数对应的至少一组资源使用量和副本数量,将确定出的每组资源使用量和副本数量作为一组目标资源限制量和第二副本数量;
14.根据至少一组目标资源请求量和第一副本数量,以及至少一组目标资源限制量和第二副本数量,确定所述建议副本数量以及所述容器组中单个容器的建议资源请求量和建议资源限制量。
15.在本公开的一些实施例中,所述根据至少一组目标资源请求量和第一副本数量,以及至少一组目标资源限制量和第二副本数量,确定所述建议副本数量以及所述容器组中单个容器的建议资源请求量和建议资源限制量,包括:
16.若存在第二副本数量与第一副本数量相同,则将该第一副本数量、该第一副本数量对应的目标资源请求量和该第二副本数量对应的目标资源限制量整合为一个资源需求组合;
17.针对每个资源需求组合,判断所述容器组所在集群包括的各节点的可用资源量,是否足够支持在所述集群中按照该资源需求组合部署容器;
18.若是,则将该资源需求组合包括的第一副本数量、目标资源请求量和目标资源限制量,分别作为建议副本数量、建议资源请求量和建议资源限制量。
19.在本公开的一些实施例中,在根据所述业务指标序列和所述预设服务质量参数,确定所述容器组的建议副本数量,以及所述容器组中单个容器的建议资源请求量和建议资源限制量之前,所述方法还包括:
20.获取样本容器组在指定时间段内多个历史时刻的业务指标参数、资源使用量、服务质量参数和副本数量;
21.基于所述指定时间段内的业务指标参数的变化趋势,将所述指定时间段划分为多个变化周期,并将每个变化周期划分为多个时段,每个时段表示业务指标参数的高峰期或者低谷期;
22.针对不同变化周期内相同时段的业务指标参数、资源使用量、服务质量参数和副本数量,确定该时段的业务指标参数、资源使用量、服务质量参数和副本数量之间的映射关系;
23.在根据业务指标参数、服务质量参数、资源使用量和副本数量之间的预设映射关系,确定所述业务指标参数平均值和所述预设服务质量参数对应的至少一组资源使用量和
副本数量之前,所述方法还包括:
24.确定所述多个历史时间在不同变化周期内所属的相同目标时段,将所述目标时段的业务指标参数、资源使用量、服务质量参数和副本数量之间的映射关系,作为所述预设映射关系。
25.在本公开的一些实施例中,在将每个变化周期划分为多个时段之后,所述方法还包括:
26.针对单个变化周期包括的每两个相邻且指定时长的时间段,判断该相邻的时间段是否满足突变条件,所述突变条件包括:前一个时间段内业务指标参数的最小值与后一个时间段内业务指标参数的最大值之间的差值大于第一指定阈值,或者前一个时间段内业务指标参数的最大值与后一个时间段内业务指标参数的最小值之间的差值大于第二指定阈值;
27.若是,则增大所述指定时长,并以指定时刻为起点,分别确定两段增大后的指定时长的时间段,判断确定的两个时间段是否满足所述突变条件,直至增大后的时长达到单个变化周期的时长,或者增大次数达到预设次数时,确定所述指定时刻与所属的变化周期的起始时刻之间的时间偏移量;其中,所述指定时刻为该相邻的时间段满足的突变条件包括的最大值对应的时刻和最小值对应的时刻之间的时刻;
28.所述按照所述期望副本数量、所述期望资源请求量和所述期望资源限制量对所述容器组的资源配置信息进行调整,包括:
29.若当前时刻与当前变化周期的起始时刻之间的时间差小于或等于所述时间偏移量,则将当前变化周期的起始时刻与所述时间偏移量相加,得到变更时刻;
30.若当前时刻与当前变化周期的起始时刻之间的时间差大于所述时间偏移量,则将下一个变化周期的起始时刻与所述时间偏移量相加,得到变更时刻;
31.在所述变更时刻,按照所述期望副本数量、所述期望资源请求量和所述期望资源限制量对所述容器组的资源配置信息进行调整。
32.在本公开的一些实施例中,在基于所述建议副本数量、所述建议资源请求量和所述建议资源限制量确定期望副本数量、期望资源请求量和期望资源限制量之后,所述方法还包括:
33.根据业务指标参数、资源使用量和扩缩容条件之间的预设映射关系,确定所述期望资源请求量对应的至少一组第一业务指标参数和第一扩缩容条件,以及所述期望资源限制量对应的至少一组第二业务指标参数和第二扩缩容条件;
34.若存在第二扩缩容条件与第一扩缩容条件相同,则将该第一扩缩容条件、该第一扩缩容条件对应的第一业务指标参数和该第二扩缩容条件对应的第二业务指标参数整合为一个扩缩容需求组合;
35.针对每个扩缩容需求组合,判断该扩缩容需求组合包括的第一业务指标参数和第二业务指标参数是否均处于所述业务指标参数平均值和所述业务指标参数限制值之间;
36.若是,则将该扩缩容需求组合包括的第一扩缩容条件作为期望扩缩容条件;
37.在所述按照所述期望副本数量、所述期望资源请求量和所述期望资源限制量对所述容器组的资源配置信息进行调整之后,所述方法还包括:
38.在所述容器组的实际资源使用量满足所述期望扩缩容条件时,对所述容器组进行
扩缩容处理。
39.在本公开的一些实施例中,所述根据所述业务指标序列和所述预设服务质量参数,确定所述容器组的建议副本数量,以及所述容器组中单个容器的建议资源请求量和建议资源限制量,包括:
40.获取所述容器组包括的每个容器的资源使用序列,所述资源使用序列包括容器在所述多个历史时间对所在节点中的目标资源的使用量;
41.将所述业务指标序列、所述资源使用序列以及所述预设服务质量参数,输入预先训练的资源请求量预测模型,得到所述资源请求量预测模型输出的建议资源请求量;
42.将所述业务指标序列、所述资源使用序列以及所述预设服务质量参数,输入预先训练的资源限制量预测模型,得到所述资源限制量预测模型输出的建议资源限制量;
43.将所述业务指标序列、所述资源使用序列以及所述预设服务质量参数,输入预先训练的副本数量预测模型,得到所述副本数量预测模型输出的建议副本数量。
44.在本公开的一些实施例中,所述按照所述期望副本数量、所述期望资源请求量和所述期望资源限制量对所述容器组的资源配置信息进行调整,包括:
45.调用持续集成/持续部署ci/cd工具,并向所述ci/cd工具发送所述期望资源请求量、所述期望资源限制量和所述期望副本数量,以使得所述ci/cd工具按照所述期望副本数量、所述期望资源请求量和所述期望资源限制量对所述容器组的资源配置信息进行调整;或者,
46.在接收到所述ci/cd工具发送的资源配置请求时,向所述ci/cd工具发送所述期望资源请求量、所述期望资源限制量和所述期望副本数量,以使得所述ci/cd工具按照所述期望副本数量、所述期望资源请求量和所述期望资源限制量对所述容器组的资源配置信息进行调整;或者,
47.调用部署工具,触发所述部署工具按照所述期望副本数量、所述期望资源请求量和所述期望资源限制量对所述容器组的资源配置信息进行调整。
48.第二方面,本公开实施例提供了一种容器资源调整装置,所述装置包括:
49.获取模块,用于获取容器组运行指定业务时的业务指标序列和所述指定业务的预设服务质量参数;
50.确定模块,用于根据所述获取模块获取的所述业务指标序列、所述预设服务质量参数,确定所述容器组的建议副本数量,以及所述容器组中单个容器的建议资源请求量和建议资源限制量;
51.所述确定模块,还用于若所述建议副本数量、所述建议资源请求量和所述建议资源限制量,与所述容器组的当前副本数量、所述容器组中单个容器的当前资源请求量和当前资源限制量不匹配,则基于所述建议副本数量、所述建议资源请求量和所述建议资源限制量确定期望副本数量、期望资源请求量和期望资源限制量;
52.调整模块,用于按照所述确定模块确定的所述期望副本数量、所述期望资源请求量和所述期望资源限制量对所述容器组的资源配置信息进行调整。
53.在本公开的一些实施例中,所述业务指标序列包括所述容器组运行所述指定业务过程中,在多个历史时间的业务指标参数;所述确定模块,具体用于:
54.计算所述业务指标序列包括的各业务指标参数的业务指标参数平均值,并确定业
务指标参数限制值,所述业务指标参数限制值大于等于所述业务指标序列中的业务指标参数最大值;
55.根据业务指标参数、服务质量参数、资源使用量和副本数量之间的预设映射关系,确定所述业务指标参数平均值和所述预设服务质量参数对应的至少一组资源使用量和副本数量,将确定出的每组资源使用量和副本数量作为一组目标资源请求量和第一副本数量;
56.根据业务指标参数、服务质量参数、资源使用量和副本数量之间的预设映射关系,确定所述业务指标参数限制值和所述预设服务质量参数对应的至少一组资源使用量和副本数量,将确定出的每组资源使用量和副本数量作为一组目标资源限制量和第二副本数量;
57.根据至少一组目标资源请求量和第一副本数量,以及至少一组目标资源限制量和第二副本数量,确定所述建议副本数量以及所述容器组中单个容器的建议资源请求量和建议资源限制量。
58.在本公开的一些实施例中,所述确定模块,具体用于:
59.若存在第二副本数量与第一副本数量相同,则将该第一副本数量、该第一副本数量对应的目标资源请求量和该第二副本数量对应的目标资源限制量整合为一个资源需求组合;
60.针对每个资源需求组合,判断所述容器组所在集群包括的各节点的可用资源量,是否足够支持在所述集群中按照该资源需求组合部署容器;
61.若是,则将该资源需求组合包括的第一副本数量、目标资源请求量和目标资源限制量,分别作为建议副本数量、建议资源请求量和建议资源限制量。
62.在本公开的一些实施例中,所述装置还包括:
63.获取模块,还用于在根据所述业务指标序列和所述预设服务质量参数,确定所述容器组的建议副本数量,以及所述容器组中单个容器的建议资源请求量和建议资源限制量之前,获取样本容器组在指定时间段内多个历史时刻的业务指标参数、资源使用量、服务质量参数和副本数量;
64.划分模块,用于基于所述指定时间段内的业务指标参数的变化趋势,将所述指定时间段划分为多个变化周期,并将每个变化周期划分为多个时段,每个时段表示业务指标参数的高峰期或者低谷期;
65.所述确定模块,还用于针对不同变化周期内相同时段的业务指标参数、资源使用量、服务质量参数和副本数量,确定该时段的业务指标参数、资源使用量、服务质量参数和副本数量之间的映射关系;
66.所述确定模块,还用于在根据业务指标参数、服务质量参数、资源使用量和副本数量之间的预设映射关系,确定所述业务指标参数平均值和所述预设服务质量参数对应的至少一组资源使用量和副本数量之前,确定所述多个历史时间在不同变化周期内所属的相同目标时段,将所述目标时段的业务指标参数、资源使用量、服务质量参数和副本数量之间的映射关系,作为所述预设映射关系。
67.在本公开的一些实施例中,
68.所述确定模块,还用于在将每个变化周期划分为多个时段之后,针对单个变化周
期包括的每两个相邻且指定时长的时间段,判断该相邻的时间段是否满足突变条件,所述突变条件包括:前一个时间段内业务指标参数的最小值与后一个时间段内业务指标参数的最大值之间的差值大于第一指定阈值,或者前一个时间段内业务指标参数的最大值与后一个时间段内业务指标参数的最小值之间的差值大于第二指定阈值;若是,则增大所述指定时长,并以指定时刻为起点,分别确定两段增大后的指定时长的时间段,判断确定的两个时间段是否满足所述突变条件,直至增大后的时长达到单个变化周期的时长,或者增大次数达到预设次数时,确定所述指定时刻与所属的变化周期的起始时刻之间的时间偏移量;其中,所述指定时刻为该相邻的时间段满足的突变条件包括的最大值对应的时刻和最小值对应的时刻之间的时刻;
69.所述调整模块,具体用于:
70.若当前时刻与当前变化周期的起始时刻之间的时间差小于或等于所述时间偏移量,则将当前变化周期的起始时刻与所述时间偏移量相加,得到变更时刻;
71.若当前时刻与当前变化周期的起始时刻之间的时间差大于所述时间偏移量,则将下一个变化周期的起始时刻与所述时间偏移量相加,得到变更时刻;
72.在所述变更时刻,按照所述期望副本数量、所述期望资源请求量和所述期望资源限制量对所述容器组的资源配置信息进行调整。
73.在本公开的一些实施例中,所述装置还包括:
74.所述确定模块,还用于在基于所述建议副本数量、所述建议资源请求量和所述建议资源限制量确定期望副本数量、期望资源请求量和期望资源限制量之后,根据业务指标参数、资源使用量和扩缩容条件之间的预设映射关系,确定所述期望资源请求量对应的至少一组第一业务指标参数和第一扩缩容条件,以及所述期望资源限制量对应的至少一组第二业务指标参数和第二扩缩容条件;若存在第二扩缩容条件与第一扩缩容条件相同,则将该第一扩缩容条件、该第一扩缩容条件对应的第一业务指标参数和该第二扩缩容条件对应的第二业务指标参数整合为一个扩缩容需求组合;针对每个扩缩容需求组合,判断该扩缩容需求组合包括的第一业务指标参数和第二业务指标参数是否均处于所述业务指标参数平均值和所述业务指标参数限制值之间;若是,则将该扩缩容需求组合包括的第一扩缩容条件作为期望扩缩容条件;
75.扩缩容模块,用于在所述按照所述期望副本数量、所述期望资源请求量和所述期望资源限制量对所述容器组的资源配置信息进行调整之后,在所述容器组的实际资源使用量满足所述期望扩缩容条件时,对所述容器组进行扩缩容处理。
76.在本公开的一些实施例中,所述确定模块,具体用于:
77.获取所述容器组包括的每个容器的资源使用序列,所述资源使用序列包括容器在所述多个历史时间对所在节点中的目标资源的使用量;
78.将所述业务指标序列、所述资源使用序列以及所述预设服务质量参数,输入预先训练的资源请求量预测模型,得到所述资源请求量预测模型输出的建议资源请求量;
79.将所述业务指标序列、所述资源使用序列以及所述预设服务质量参数,输入预先训练的资源限制量预测模型,得到所述资源限制量预测模型输出的建议资源限制量;
80.将所述业务指标序列、所述资源使用序列以及所述预设服务质量参数,输入预先训练的副本数量预测模型,得到所述副本数量预测模型输出的建议副本数量。
81.在本公开的一些实施例中,所述调整模块,具体用于:
82.调用持续集成/持续部署ci/cd工具,并向所述ci/cd工具发送所述期望资源请求量、所述期望资源限制量和所述期望副本数量,以使得所述ci/cd工具按照所述期望副本数量、所述期望资源请求量和所述期望资源限制量对所述容器组的资源配置信息进行调整;或者,
83.在接收到所述ci/cd工具发送的资源配置请求时,向所述ci/cd工具发送所述期望资源请求量、所述期望资源限制量和所述期望副本数量,以使得所述ci/cd工具按照所述期望副本数量、所述期望资源请求量和所述期望资源限制量对所述容器组的资源配置信息进行调整;或者,
84.调用部署工具,触发所述部署工具按照所述期望副本数量、所述期望资源请求量和所述期望资源限制量对所述容器组的资源配置信息进行调整。
85.第三方面,本公开实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
86.存储器,用于存放计算机程序;
87.处理器,用于执行存储器上所存放的程序时,实现第一方面任一项所述的容器资源调整方法步骤。
88.第四方面,本公开实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一项所述的容器资源调整方法步骤。
89.第五方面,本公开实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一项所述的容器资源调整方法。
90.本公开实施例有益效果:
91.本公开实施例提供的容器资源调整方法、装置、电子设备及介质,可以获取容器组运行指定业务时的业务指标参数,以及指定业务的预设服务质量参数,分析出容器组的建议副本数量,以及容器组中单个容器的建议资源请求量和建议资源限制量,若建议副本数量、建议资源请求量和建议资源限制量,与容器组的当前副本数量、容器组中单个容器的当前资源请求量和当前资源限制量不匹配,则基于建议副本数量、建议资源请求量和建议资源限制量确定期望副本数量、期望资源请求量和期望资源限制量。之后按照期望副本数量、期望资源请求量和期望资源限制量对容器组的资源配置信息进行调整。由于本公开实施例能够基于容器组在实际业务运行时的业务指标参数和业务的预设服务质量参数,确定容器的期望资源请求量和期望资源限制量以及容器组的副本数量,使得确定的期望副本数量、期望资源请求量和期望资源限制量,更符合容器的实际运行情况,也更符合业务对服务质量的要求,而且该方式不依赖人工主观经验,因此能够更合理地为容器分配资源。
92.当然,实施本公开的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
93.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
公开的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
94.图1为本公开实施例提供的一种容器资源调整方法的流程图;
95.图2为本公开实施例提供的另一种容器资源调整方法的流程图;
96.图3为本公开实施例提供的一种业务指标参数、服务质量参数、资源使用量和副本数量之间的映射关系的示例性地示意图;
97.图4为本公开实施例提供的另一种业务指标参数、服务质量参数、资源使用量和副本数量之间的映射关系的示例性地示意图;
98.图5为本公开实施例提供的一种业务指标参数随时间变化情况的示例性示意图;
99.图6为本公开实施例提供的一种业务指标参数、资源使用量和扩缩容条件之间的预设映射关系的示例性地示意图;
100.图7为本公开实施例提供的一种容器的示例性示意图;
101.图8为本公开实施例提供的一种容器资源调整装置的结构示意图;
102.图9为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
103.下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员基于本公开所获得的所有其他实施例,都属于本公开保护的范围。
104.业务上线之前,一般难以准确地对容器的资源请求量和资源限制量进行评估和设置,除了利用人工设置资源请求量和资源限制量以外,目前还能对容器进行压力测试,从而模拟实际业务情况,但是压力测试的实施具有一定的技术难度,而且压力测试的测试用例和负载模型容易偏离实际业务情况,导致对资源请求量和资源限制量的设定不合理。
105.为了更合理地为容器分配资源,本公开实施例提供了一种容器资源调整方法,该方法可以应用于电子设备中,电子设备可以是服务器、台式计算机或者虚拟机等具备数据处理能力的设备。如图1所示,该方法包括如下步骤:
106.s101、获取容器组运行指定业务时的业务指标序列和指定业务的预设服务质量参数。
107.容器组中的每个容器运行相同的业务,即指定业务,并实现相同的业务功能。例如,指定业务为响应用户发送的登录请求的情况下,容器组中的每个容器均用于响应用户发送的登录请求;或者,容器组中的每个容器均用于在响应登录请求的过程中,实现验证登录密码的功能。
108.其中,业务指标序列包括容器组运行指定业务过程中,在多个历史时间的业务指标参数。例如,业务指标参数包括:容器接收到的业务请求的数量、响应业务请求的平均时长和执行业务的出错率等用于表征业务运行情况的数据。当获取多种业务指标参数时,分别针对每种业务指标参数,生成一个时间序列,即业务指标序列包括多种业务指标参数的时间序列。
109.多个历史时间为:在业务指标参数的多个变化周期中,每个变化周期包括的指定
时间。例如:以一天为一个周期,各个历史时间可以为各个历史日期中的9点;或者,各个历史日期中上午的时间段;以一周7天为一个周期,各个历史时间可以为各个历史周的周一,或周二等等。需要说明的是,变化周期可以根据指定业务的实际运行规律分析得到。可选地,在其他实现方式中,各个历史时间也可以为仅仅时间粒度相同的时间,时间粒度可为小时、天、周等等,并且,历史时间的数量并不做限定。
110.预设服务质量参数用于表示指定业务的服务质量(quality of service,qos)指标的qos等级。例如,qos指标包括:可用率、吞吐率和响应时长等。qos指标可根据用户对指定业务的运行要求配置,且qos指标可以更改,例如用户可新增更直观的qos指标,电子设备可以获取最新的qos指标。
111.电子设备可以从指定数据库中获取指定业务的qos指标,或者接收用户提交的qos指标等,本公开实施例对获取qos指标的方式不作具体限定。
112.电子设备可以根据获取到的qos指标,确定qos等级。
113.可选的,获取的qos指标中,可用率超过第一阈值、吞吐率超过第二阈值或者响应时小于第三阈值时,确定qos等级为高(high);否则,确定qos等级为低(low)。例如,例如,qos指标包括对90%的业务请求的响应时长在100ms以内,假设响应时长对应的第三阈值为200ms,则确定qos等级为high,即服务质量参数为high。还可以通过其他方式确定qos等级,本公开实施例对此不作具体限定。
114.s102、根据业务指标序列和预设服务质量参数,确定容器组的建议副本数量,以及容器组中单个容器的建议资源请求量和建议资源限制量。
115.其中,副本数量表示一个容器组包含的容器数量。资源请求量表示容器组中每个容器对所在节点中目标资源的请求量,即要求每个容器被部署的节点至少可提供的目标资源量。资源限制量表示容器组中每个容器对所在节点中目标资源的使用上限。
116.例如,目标资源可以是中央处理器(central processing unit,cpu)和内存。cpu的资源请求量和资源限制量可以用时间片表示,其中时间片是分时操作系统分配给每个正在运行的进程微观上的一段cpu时间,时间片单位为毫核(millicpu,m)时,表示将1个cpu分成1000份。例如,资源请求量为200m,表征每秒使用0.2个cpu,资源限制量为1000m,表征每秒使用1个cpu。内存的资源请求量和资源限制量可用内存占用量表示,例如,资源请求量为128mi,资源限制量为512mi,其中,mi=1024
×
1024字节。
117.s103、若建议副本数量、建议资源请求量和建议资源限制量,与容器组的当前副本数量、容器组中单个容器的当前资源请求量和当前资源限制量不匹配,则基于建议副本数量、建议资源请求量和建议资源限制量确定期望副本数量、期望资源请求量和期望资源限制量。
118.本公开实施例中,可以在建议副本数量与当前副本数量不匹配、建议资源请求量和当前资源请求量不匹配、或者建议资源限制量和当前资源限制量不匹配时,通过预先训练的决策模型,基于建议副本数量、建议资源请求量和建议资源限制量确定期望副本数量、期望资源请求量和期望资源限制量。决策模型在确定各期望量时,还可以参考预设服务质量参数,即决策模型可以基于预设服务质量参数、建议副本数量、建议资源请求量和建议资源限制量,确定期望副本数量、期望资源请求量和期望资源限制量。
119.在本公开实施例中,若建议副本数量、建议资源请求量和建议资源限制量,与容器
组的当前副本数量、容器组中单个容器的当前资源请求量和当前资源限制量匹配,则说明容器组当前的资源配置满足业务指标序列和预设服务质量参数,因此不用生成新的资源配置,即不用生成期望副本数量、期望资源请求量和期望资源限制量,可以维持容器组当前的资源配置。
120.s104、按照期望副本数量、期望资源请求量和期望资源限制量对容器组的资源配置信息进行调整。
121.可选的,电子设备可以向容器组所在集群的指定节点发送期望副本数量、期望资源请求量和期望资源限制量,以便指定节点将容器组的副本数量调整为期望副本数量,并将容器组的每个容器的资源请求量调整为期望资源请求量,将容器组中每个容器的资源限制量调整为期望资源限制量。其中,指定节点为容器组所在集群中用于配置和管理容器的节点,例如指定节点为云平台。
122.本公开实施例提供的容器资源调整方法,可以获取容器组运行指定业务时的业务指标参数,以及指定业务的预设服务质量参数,分析出容器组的建议副本数量,以及容器组中单个容器的建议资源请求量和建议资源限制量,若建议副本数量、建议资源请求量和建议资源限制量,与容器组的当前副本数量、容器组中单个容器的当前资源请求量和当前资源限制量不匹配,则基于建议副本数量、建议资源请求量和建议资源限制量确定期望副本数量、期望资源请求量和期望资源限制量。之后按照期望副本数量、期望资源请求量和期望资源限制量对容器组的资源配置信息进行调整。由于本公开实施例能够基于容器组在实际业务运行时的业务指标参数和业务的预设服务质量参数,确定容器的期望资源请求量和期望资源限制量以及容器组的副本数量,使得确定的期望副本数量、期望资源请求量和期望资源限制量,更符合容器的实际运行情况,也更符合业务对服务质量的要求,而且该方式不依赖人工主观经验,因此能够更合理地为容器分配资源。
123.上述s102中确定建议副本数量、建议资源请求量和建议资源限制量的方式包括以下两种:
124.方式一、获取容器组包括的每个容器的资源使用序列,其中资源使用序列包括容器在多个历史时间对所在节点中的目标资源的使用量;将业务指标序列、资源使用序列以及预设服务质量参数,输入预先训练的资源请求量预测模型,得到资源请求量预测模型输出的建议资源请求量;将业务指标序列、资源使用序列以及预设服务质量参数,输入预先训练的资源限制量预测模型,得到资源限制量预测模型输出的建议资源限制量;将业务指标序列、资源使用序列以及预设服务质量参数,输入预先训练的副本数量预测模型,得到副本数量预测模型输出的建议副本数量。
125.其中,可以获取多组样本业务指标序列、样本资源使用序列以及样本服务质量参数,之后确定每组数据对应的标签,该标签表示实际的资源请求量。之后利用多组数据和每组数据的标签,训练神经网络模型,之后将训练好的神经网络模型作为资源请求量预测模型。
126.同样的,可以获取多组样本业务指标序列、样本资源使用序列以及样本服务质量参数,之后确定每组数据对应的标签,该标签表示实际的资源限制量。之后利用多组数据和每组数据的标签,训练神经网络模型,之后将训练好的神经网络模型作为资源限制量预测模型。
127.同样的,可以获取多组样本业务指标序列、样本资源使用序列以及样本服务质量参数,之后确定每组数据对应的标签,该标签表示实际的副本数量。之后利用多组数据和每组数据的标签,训练神经网络模型,之后将训练好的神经网络模型作为副本数量预测模型。
128.例如,神经网络模型可以是卷积神经网络(convolutional neural networks,cnn)或者循环神经网络(recurrent neural network,rnn)等,本公开实施例对此不作具体限定。
129.通过训练模型,可以使得资源请求量预测模型学习到业务指标序列、资源使用序列、服务质量参数与资源请求量之间的关系,以及使得资源限制量预测模型学习到业务指标序列、资源使用序列、服务质量参数与资源限制量之间的关系,以及使得副本数量预测模型学习到业务指标序列、资源使用序列、服务质量参数与副本数量之间的关系,从而得到符合容器实际运行情况以及符合业务qos指标的副本数量、资源请求量和资源限制量。
130.例如,服务质量参数包括容器对业务请求的响应时长,通过资源请求量预测模型能够学到到响应时长、业务指标序列、资源使用序列与资源请求量之间的关系,以及资源限制量预测模型能够学习到响应时长、业务指标序列、资源使用序列与资源限制量之间的关系,以及副本数量预测模型能够学习到响应时长、业务指标序列、资源使用序列与副本数量之间的关系。
131.采用上述方法,本公开实施例能够通过模型确定建议副本数量、建议资源请求量和建议资源限制量,从而实现了对资源配置的自动分析。而且业务指标序列和资源使用序列能够准确地表现容器的实际运行情况,且数据容易获得,使得本公开实施例能够更准确的确定容器的资源配置。
132.参见图2,实现上述s102的方式二包括以下步骤:
133.s1021、计算业务指标序列包括的各业务指标参数的业务指标参数平均值,并确定业务指标参数限制值。
134.其中,业务指标参数限制值大于等于业务指标序列中的业务指标参数最大值。
135.例如,可以使用tsfresh工具,对业务指标序列提取时序特征,时序特征包括业务指标参数最大值和业务指标参数平均值,之后将业务指标参数最大值作为业务指标参数限制值,或者将业务指标参数最大值增加预设值,得到业务指标参数限制值。
136.s1022、根据业务指标参数、服务质量参数、资源使用量和副本数量之间的预设映射关系,确定业务指标参数平均值和预设服务质量参数对应的至少一组资源使用量和副本数量,将确定出的每组资源使用量和副本数量作为一组目标资源请求量和第一副本数量。
137.业务指标参数平均值和预设服务质量参数对应的资源使用量,表示历史时间内容器运行时平均所需使用的资源量,因此将该资源使用量作为目标资源请求量。
138.参见图3,图3中横坐标表示业务指标参数,纵坐标表示单个容器的资源使用量,左边曲线表示副本数量为a且qos为low的情况下,不同的业务指标参数对应的资源使用量,右边曲线表示副本数量为b且qos为low的情况下,不同的业务指标参数对应的资源使用量。假设预设服务质量参数为low,且业务指标参数平均值为b2,如图3所示,当业务指标参数为b2时,与左边曲线的交点对应r2,将r2作为目标资源请求量,且将左边曲线表示的副本数量a,作为第一副本数量。同样的,根据b2与右边曲线的交点,得到另一组第一副本数量为b且目标资源请求量为r3。
139.s1023、根据业务指标参数、服务质量参数、资源使用量和副本数量之间的预设映射关系,确定业务指标参数限制值和预设服务质量参数对应的至少一组资源使用量和副本数量,将确定出的每组资源使用量和副本数量作为一组目标资源限制量和第二副本数量。
140.业务指标参数限制值和预设服务质量参数对应的资源使用量,表示历史时间内容器运行时最多所需使用的资源量,因此将该资源使用量作为目标资源限制量。
141.假设预设服务质量参数为low,且业务指标参数限制值为b2-max,如图3所示,当业务指标参数为b2-max时,与左边曲线的交点对应l2,将l2作为目标资源限制量,且将左边曲线表示的副本数量a,作为第二副本数量。同样的,根据b2-max与右边曲线的交点,得到另一组第二副本数量为b且目标资源限制量为l3。
142.结合s1022和s1023,资源使用量表示容器对所在节点中的目标资源的使用量,相应的,目标资源请求量表示针对目标资源的请求量,目标资源限制量表示针对目标资源的限制量。例如,当目标资源包括cpu和内存时,目标资源请求量包括cpu资源请求量和内存资源请求量,目标资源限制量包括cpu资源限制量和内存资源限制量。
143.若目标资源包括cpu,则资源使用量包括cpu的使用时间信息,和/或cpu占用率等用于表征容器对所在节点中cpu的实际使用情况的数据。若目标资源包括内存,则资源使用量包括内存占用量和/或内存占用率等表征容器对所在节点中内存的实际使用情况的数据。
144.预设映射关系中的业务指标参数为一种指定类型的业务指标参数,而s101获取的业务指标序列可以包括多种类型的业务指标参数,例如,业务指标序列包括:容器接收到的业务请求的数量、响应业务请求的平均时长和执行业务的出错率,而指定类型的业务指标参数为响应业务请求的平均时长。在执行s1021时,可以从s101获取的业务指标序列中,提取指定类型的业务指标参数,并从提取的业务指标参数中,确定业务指标参数平均值和业务指标参数限制值。
145.s1024、根据至少一组目标资源请求量和第一副本数量,以及至少一组目标资源限制量和第二副本数量,确定建议副本数量以及容器组中单个容器的建议资源请求量和建议资源限制量。
146.在本公开实施例中,若存在第二副本数量与第一副本数量相同,则可以将该第一副本数量、该第一副本数量对应的目标资源请求量和该第二副本数量对应的目标资源限制量整合为一个资源需求组合。然后针对每个资源需求组合,判断容器组所在集群包括的各节点的可用资源量,是否足够支持在集群中按照该资源需求组合部署容器。若是,则将该资源需求组合包括的第一副本数量、目标资源请求量和目标资源限制量,分别作为建议副本数量、建议资源请求量和建议资源限制量。
147.例如,存在2组目标资源请求量和第一副本数量,分别为:[200,2],[150,3];存在2组目标资源限制量和第二副本数量,分别为:[300,3],[100,4]。其中,[150,3]与[300,3]中副本数量均为3,即第一副本数量与第二副本数量相同,因此将[200,2,300]作为一个资源需求组合。
[0148]
示例性的,参见图3,目标资源限制量l2和目标资源请求量r2对应的副本数量均为a,因此将l2、r2和a作为一个资源需求组合;同理将l3、r3和b作为一个资源需求组合。
[0149]
在节点中部署容器时,节点的可用资源量需大于等于容器的资源请求量。在因此
在确定资源需求组合之后,还需要判断每个资源需求组合是否符合实际,即判断容器组所在集群包括的各节点的可用资源量,是否足够支持在集群中按照该资源需求组合部署容器。在判断时,电子设备可以针对第一副本数量的每个容器,判断是否存在可用资源量大于等于资源请求量的节点,若存在,则将该节点的可用资源量减去目标资源请求量,并按照相同的方法判断下一个容器。如果针对第一副本数量的容器的判断结果均为存在,则表示容器组所在集群包括的各节点的可用资源量,足够支持在集群中按照该资源需求组合部署容器。若第一副本数量的容器的判断结果中任一判断结果为不存在,则表示容器组所在集群包括的各节点的可用资源量,不够支持在集群中按照该资源需求组合部署容器。
[0150]
例如,集群中包括3个节点,节点1可用资源量为300,节点2可用资源量为300,节点3可用资源量为100。在资源需求组合中第一副本数量为2且目标资源请求量为200的情况下,针对第一个容器,确定存在节点1的可用资源量大于等于目标资源请求量,更新节点1的可用资源量为300-200=100。之后,针对第二个容器,确定存在节点2的可用资源量大于等于目标资源请求量,更新节点2的可用资源量为300-200=100。针对2个的容器的判断结果均为存在,因此容器组所在集群包括的各节点的可用资源量,足够支持在集群中按照该资源需求组合部署容器。
[0151]
采用上述方法,本公开实施例可以根据预先分析得到的业务指标参数、服务质量参数、资源使用量和副本数量之间的预设映射关系,得到符合业务运行情况以及服务质量的资源需求组合,并根据容器组所在集群包括的各节点的可用资源量,排除不可行的资源需求组合,从而得到既符合业务运行情况以及服务质量,又能够实施的建议副本数量、建议资源请求量和建议资源限制量。
[0152]
在本公开的一些实施例中,还可以预先构建业务指标参数、服务质量参数、资源使用量和副本数量之间的预设映射关系,构建方法包括以下步骤:
[0153]
步骤一、获取样本容器组在指定时间段内多个历史时刻的业务指标参数、资源使用量、服务质量参数和副本数量。
[0154]
获取的资源使用量为样本容器组中各容器对所在节点中目标资源的平均使用量。当目标资源存在多种时,可以分别获取样本容器组中各容器对所在节点中每种目标资源的平均使用量,形成每种目标资源对应的时间序列,作为多个历史时刻的业务指标参数。
[0155]
可选的,指定时间段可以设置为一段较长的时间,使得指定时间段可以包含多个变化周期,以便后续分析业务指标参数的周期和变化趋势。
[0156]
在本公开实施例中,电子设备可以从采集装置中获取指定时间段内多个历史时刻的业务指标参数、资源使用量和副本数量。相应的,在s101中,电子设备也可以从采集装置中获取业务指标序列。
[0157]
采集装置可以为监控系统、集群的应用程序接口(application programming interface,api)或预先部署的采集器等。
[0158]
示例性的,监控系统可以为prometheus、zabbix或nagios等。其中,prometheus是一种开源监控解决方案,能够收集和聚合指标作为时间序列数据;zabbix是一种能够提供分布式系统监视以及网络监视功能的企业级的开源解决方案;nagios是一种开源的网络监视工具,能够有效监控节点状态。
[0159]
集群的api可以为部署有容器的节点所提供的专门的api,通过该专门的api可以
获取到容器对应的评估指标信息。以kuberntes集群为例,集群的api可以为公制应用程序接口(metric api)。
[0160]
在容器部署于虚拟机集群的节点的情况下,采集器可以为部署在虚拟机集群中的cadvisor采集器。其中,cadvisor采集器是一种容器监控工具。
[0161]
可选的,为减少对监控系统的查询压力,电子设备可通过对接监控系统后端的热备份系统,例如prometheus监控系统的远程postgres库,从而得到业务指标参数和资源使用量。其中,postgres库是一种关系型数据库管理系统。
[0162]
步骤二、基于指定时间段内的业务指标参数的变化趋势,将指定时间段划分为多个变化周期,并将每个变化周期划分为多个时段。其中,每个时段表示业务指标参数的高峰期或者低谷期。每个变化周期内业务指标参数的变化趋势相同,例如,每个变化周期内的业务指标参数都是先上升后下降。
[0163]
可以利用时序工具,例如tsfresh工具,提取各业务指标参数的时序特征。其中,时序特征包括变化周期、每个变化周期内的峰值和谷值等。其中,变化周期可以通过周期长度和起始时刻表示,即从起始时刻开始,按照周期长度划分时间段,划分得到的每个时间段为一个变化周期。
[0164]
或者,可以基于自相关系数确定变化周期。例如,将指定时间段内的业务指标参数在时间域上移动,并计算移动后的业务指标参数与移动前的业务指标参数的自相关系数,确定计算得到的自相关系数中相邻的峰值时刻,并将相邻的峰值时刻的时间差,作为变化周期的周期时长。之后以峰值时刻为起点,按照周期时长划分时间段,得到多个变化周期。
[0165]
业务指标参数的变化周期可以存在多种,每种变化周期的周期长度不同,例如,一个变化周期的周期长度为1天,即24小时;另一个变化周期的周期长度为一周,即7天;又一个变化周期的周期长度为一个季节,即3个月。
[0166]
在为每个变化周期划分时段时,可以针对一个变化周期,确定该变化周期中峰值和谷值的平均值,然后将每个平均值对应的时刻作为一个分割点,从而将分割出多个时段。其他周期也按照相同的分割点分割得到多个时段。由于每个分割点均为峰值和谷值的平均值,因此相邻的分割点之间的时段包括1个峰值或1个谷值,当时段包括峰值时,该时段可表示业务指标参数的高峰期,当时段包括谷值时,该时段可表示业务指标参数的低谷期。
[0167]
步骤三、针对不同变化周期内相同时段的业务指标参数、资源使用量、服务质量参数和副本数量,确定该时段的业务指标参数、资源使用量、服务质量参数和副本数量之间的映射关系。
[0168]
针对不同周期内相同时段的业务指标参数、资源使用量、服务质量参数和副本数量,按照周期划分为训练集和验证集。
[0169]
将训练集和验证集中的业务指标参数和服务质量参数作为模型的输入数据,将资源使用量和副本数量作为标签。利用训练集训练形如y=f(k,x,qos)的模型,其中,y表示资源使用量,k表示副本数量,x表示业务指标参数,qos表示qos等级。例如该模型可以是回归模型或者神经网络模型等。之后利用验证集对训练后的模型的准确率进行验证,在验证通过时,分别利用该模型得到不同业务指标参数和不同服务质量参数的情况下的资源使用量和副本数量,并拟合得到业务指标参数、服务质量参数、资源使用量和副本数量之间的映射关系。
[0170]
例如,该映射关系如图4所示,图4中横坐标表示业务指标参数,纵坐标表示单个容器的资源使用量。图4中共包括4条曲线,按照从左到右的顺序,第一条曲线表示qos等级为low且副本数量为2的情况下,不同的业务指标参数对应的资源使用量;第二条曲线表示qos等级为high且副本数量为2的情况下,不同的业务指标参数对应的资源使用量;第三条曲线表示qos等级为low且副本数量为k的情况下,不同的业务指标参数对应的资源使用量;第四条曲线表示qos等级为high且副本数量为k的情况下,不同的业务指标参数对应的资源使用量。本公开实施例还可以分析其他副本数量对应的曲线,在图4中未示出。
[0171]
由图4可以看出,业务指标参数、服务质量参数、资源使用量和副本数量之间的映射关系,可以简化为yk=ax*x+bx+c,其中,a、b和c分别为常数,y表示资源使用量,k表示副本数量,x表示业务指标参数。
[0172]
由于不同的时段对应不同的对应关系,因此上述s1022根据业务指标参数、服务质量参数、资源使用量和副本数量之间的预设映射关系,确定业务指标参数平均值和预设服务质量参数对应的至少一组资源使用量和副本数量之前,电子设备还可以确定多个历史时间在不同变化周期内所属的相同目标时段,将目标时段的业务指标参数、资源使用量、服务质量参数和副本数量之间的映射关系,作为预设映射关系。以便在s1022和s1023中使用确定的该预设映射关系。
[0173]
例如,变化周期包括0:00~1:00和1:01~2:00两个时段,多个历史时间为连续三天的0:00~0:30,因此多个历史时间在不同变化周期内所属的相同目标时段为0:00~1:00。
[0174]
从图4中可以看出,每种业务指标参数可能对应多个副本数量、qos等级和资源使用量的组合,例如,图4中业务指标参数为2的虚线与右边两条曲线均存在交点,每个交点对应一组qos等级、资源使用量和副本数量。因此s1022和s1023中,根据业务指标参数平均值或业务指标参数限制值,以及预设服务质量参数,能够确定出至少一组资源使用量和副本数量。
[0175]
通过上述方法,本公开实施例可以预先分析业务指标参数的变化周期,并划分每个周期包括的时段,进而分析出每个时段的业务指标参数、服务质量参数、资源使用量和副本数量之间的预设映射关系。由于不同的时段内业务运行情况不同,使得容器对资源的需求不同,因此本公开实施例可以基于多个历史时间所属的目标时段的映射关系,更准确地确定建议副本数量、建议资源请求量和建议资源限制量。
[0176]
在本公开的一些实施例中,在上述步骤二将每个变化周期划分为多个时段之后,电子设备还可以针对单个变化周期包括的每两个相邻且指定时长的时间段,判断该相邻的时间段是否满足突变条件,其中,突变条件包括:前一个时间段内业务指标参数的最小值与后一个时间段内业务指标参数的最大值之间的差值大于第一指定阈值,或者前一个时间段内业务指标参数的最大值与后一个时间段内业务指标参数的最小值之间的差值大于第二指定阈值。若是,则增大指定时长,并以指定时刻为起点,分别确定两段增大后的指定时长的时间段,判断确定的两个时间段是否满足突变条件,直至增大后的时长达到单个变化周期的时长,或者增大次数达到预设次数,确定后一个时间段的起始时刻与所属的变化周期的起始时刻之间的时间偏移量。
[0177]
在确定时间偏移量时,电子设备可以设置指定时长的时间窗口,并通过滑动时间
窗口的方式,确定相邻的指定时长的时间段,判断相邻的时间段是否满足突变条件。若满足,则增大指定时长,并以指定时刻为起点,分别确定两段增大后的指定时长的时间段,判断确定的两个时间段是否满足突变条件。若满足,则在当前的指定时长的基础上,继续增大指定时长,以指定时刻为起点,分别确定两段增大后的指定时长的时间段,判断确定的两个时间段是否满足突变条件,直至增大后的时长达到单个变化周期的时长,或者增大次数达到预设次数,确定指定时刻与所属的变化周期的起始时刻之间的时间偏移量。
[0178]
可选的,第一指定阈值和第二指定阈值均可以为3*std1,其中std1为相邻的时间段内业务指标参数的方差。或者,第一指定阈值和第二指定阈值可以根据实际需求设置。
[0179]
参加图5,图5中的曲线表示单个变化周期内的业务指标参数随时间的变化情况,假设指定时长的初始值为t1,图5中每两个相邻的虚线之间的时间段为t1。图5中一个t1时间段内业务指标参数的最小值为min1,业务指标参数最大值为max1,该时间段的下一个时间段的业务指标参数的最小值为min2,业务指标参数最大值为max2。假设min1-max2得到的差值大于第一指定阈值,即满足突变条件,则以指定时刻tx为起点,分别向左以及向右确定两段时长为t2的时间段,并判断得到这两个时间段满足突变条件。之后继续以tx为起点分别向左以及向右确定两段时长为t3的时间段,并判断得到这两个时间段满足突变条件。其中,t1《t2《t3。假设预设次数为2次,此时增大次数达到预设次数,则可以计算tx与所属的变化周期的起始时刻t-start之间的时间偏移量δt。例如,单个变化周期为的起始时刻为0:00,tx为1:00,则时间偏移量δt为1小时。
[0180]
其中,指定时刻为该相邻的时间段满足的突变条件包括的最大值对应的时刻和最小值对应的时刻之间的时刻。即,当该相邻的时间段满足前一个时间段内业务指标参数的最小值与后一个时间段内业务指标参数的最大值之间的差值大于第一指定阈值的情况下,确定指定时刻为前一个时间段内业务指标参数的最小值对应的时刻,与后一个时间段内业务指标参数的最大值对应的时刻之间的时刻。当该相邻的时间段满足前一个时间段内业务指标参数的最大值与后一个时间段内业务指标参数的最小值之间的差值大于第二指定阈值的情况下,确定指定时刻为前一个时间段内业务指标参数的最大值对应的时刻,与后一个时间段内业务指标参数的最小值对应的时刻之间的时刻。示例性的,指定时刻可以是该相邻的时间段满足的突变条件包括的最大值对应的时刻和最小值对应的时刻之间的中间时刻,或者为该最大值对应的时刻和该最小值对应的时刻之间变化率最大的时刻,或者也可以是一个指定的时刻,本公开实施例对此不作具体限定。例如,图5中每个圆形表示一个指定时刻。
[0181]
在此基础上,上述s104中按照期望副本数量、期望资源请求量和期望资源限制量对容器组的资源配置信息进行调整的方式,可以实现为:若当前时刻与当前变化周期的起始时刻之间的时间差小于或等于时间偏移量,则将当前变化周期的起始时刻与时间偏移量相加,得到变更时刻;若当前时刻与当前变化周期的起始时刻之间的时间差大于时间偏移量,则将下一个变化周期的起始时刻与时间偏移量相加,得到变更时刻。在变更时刻,按照期望副本数量、期望资源请求量和期望资源限制量对容器组的资源配置信息进行调整。具体的调整方式可参考后文描述。
[0182]
例如,时间偏移量为2小时,当前变化周期的起始时刻为0:00。若当前时刻为1:00,则将当前变化周期的2:00作为变更时刻。若当前时刻为3:00,则将下一个变化周期的起始
时刻0:00增加2小时,得到下一个变化周期的2:00为变更时刻。
[0183]
本公开实施例确定业务指标参数的变化量较大的相邻时间段,从相邻时间段中确定出指定时刻,并判断出指定时刻之前和之后的较长时间段内业务指标参数的变化量仍然较大时,确定业务指标参数在指定时刻发生突变,且发生突变后业务指标参数持续较长时间维持在相同的水平,因此可以将当前变化周期或者下一个变化周期的相应时刻作为资源配置的变更时刻。通过上述方法不仅准确地把握了改变资源配置的时机,从而在容器运行业务发生突变时改变容器配置,从而使得修改配置后的容器能够适应发生突变后的指定业务,满足容器运行指定业务时对资源配置的要求。而且,本公开实施例在判断出突变后业务指标参数持续较长时间维持在相同的水平时,才确定指定时刻,减少了频繁变更的情况。
[0184]
在本公开的一个实施例中,上述s104中若建议副本数量、建议资源请求量和建议资源限制量,与容器组的当前副本数量、当前资源请求量和当前资源限制量不匹配,则基于建议副本数量、建议资源请求量和建议资源限制量确定期望副本数量、期望资源请求量和期望资源限制量的方式,可以实现为:判断建议副本数量与容器组的当前副本数量是否匹配、建议资源请求量和容器组中单个容器的当前资源请求量是否匹配、建议资源限制量和容器组中单个容器的当前资源限制量是否匹配;若任一判断结果为否,则基于建议副本数量、建议资源请求量和建议资源限制量确定期望副本数量、期望资源请求量和期望资源限制量。
[0185]
例如,可以判断建议副本数量与容器组的当前副本数量之间的差值是否大于第一预设阈值、建议资源请求量和容器组中单个容器的当前资源请求量之间的差值是否大于第二预设阈值、建议资源限制量和容器组中单个容器的当前资源限制量之间的差值是否大于第三预设阈值。可以理解的,当任一差值较大,说明容器组当前的配置不能满足容器运行指定业务对资源配置的需求,因此应当确定新的资源配置,即确定期望副本数量、期望资源请求量和期望资源限制量。
[0186]
上述s1024和s103可利用预先训练的决策模型实现。即通过决策模型判断建议副本数量、建议资源请求量和建议资源限制量与当前的副本数量、资源请求量和资源限制量是否差距过大,若是,则生成新的资源配置。若否,则保持当前的资源配置,减少频繁地调整容器的资源配置的情况,从而减少了调整资源配置消耗的资源。
[0187]
决策模型在生成期望副本数量、期望资源请求量和期望资源限制量时,可以优先考虑修改垂直扩缩容参数,即生成与当前资源配置不同的期望资源请求量和期望资源限制量,并保持期望副本数量与当前副本数量相同;在修改垂直扩缩容参数不能满足qos指标或者不能符合集群内节点的可用资源量时,修改垂直扩缩容参数以及水平扩缩容参数,即生成与当前资源配置不同的期望资源请求量和期望资源限制量,以及期望副本数量。或者,决策模型可以不考虑修改参数的优先级,生成期望资源请求量和期望资源限制量,以及期望副本数量。
[0188]
其中,决策模型为采用样本资源请求量、样本资源限制量、样本副本数量、样本当前资源请求量、样本当前资源限制量、样本当前副本数量、样本服务质量参数和样本可用资源量以及训练标签,训练决策树模型,得到的模型。其中,训练标签为样本期望副本数量、样本期望资源请求量和样本期望资源限制量。
[0189]
在本公开的一些实施例中,电子设备可以生成期望副本数量、期望资源请求量和
期望资源限制量之外,还可以确定容器组的期望扩缩容条件,以便在s104进行调整之后,在容器组的实际资源使用量满足期望扩缩容条件时,对容器组进行扩缩容处理。
[0190]
例如,扩缩容条件包括:网络流量指标、平均响应时长(average_response_time)、出错率、等待时长和资源条件阈值等。假设等待时长为10s,资源条件阈值为内存占用量300mi,则容器组中任一容器的内存占用量达到300mi的时长超过10s时,为该容器组多增加一个容器。
[0191]
扩缩容处理包括增大或者减小容器组包括的容器数量。扩缩容处理的方式可根据实际需要确定。其中,电子设备可以利用ci/cd工具或者部署工具,向指定节点发送扩缩容条件,使得指定节点在监测到容器组的实际资源使用量满足期望扩缩容条件时,对容器组进行扩缩容处理。或者,电子设备可以在监测到容器组的实际资源使用量满足期望扩缩容条件时,通过部署工具对容器组进行扩缩容处理。
[0192]
本公开实施例中,确定期望扩缩容条件的方式包括:根据业务指标参数、资源使用量和扩缩容条件之间的预设映射关系,确定期望资源请求量对应的至少一组第一业务指标参数和第一扩缩容条件,以及期望资源限制量对应的至少一组第二业务指标参数和第二扩缩容条件。若存在第二扩缩容条件与第一扩缩容条件相同,则将该第一扩缩容条件、该第一扩缩容条件对应的第一业务指标参数和该第二扩缩容条件对应的第二业务指标参数整合为一个扩缩容需求组合。然后针对每个扩缩容需求组合,判断该扩缩容需求组合包括的第一业务指标参数和第二业务指标参数是否均处于业务指标参数平均值和业务指标参数限制值之间;若是,则将该扩缩容需求组合包括的第一扩缩容条件作为期望扩缩容条件。其中,扩缩容条件用于指示当容器组的实际资源使用量满足扩缩容条件时,对容器组进行扩缩容处理。
[0193]
其中,根据业务指标参数、资源使用量和扩缩容条件之间的预设映射关系可以预先构建,构建方式与上述构建业务指标参数、服务质量参数、资源使用量和副本数量之间的映射关系的方式相同,可参考上述描述,此处不再赘述。
[0194]
参见图6,图6的横坐标表示业务指标参数,图6的纵坐标表示单个容器的资源使用量,左边曲线表示扩缩容条件为x的情况下,不同的业务指标参数对应的资源使用量,右边曲线表示扩缩容条件为y的情况下,不同的业务指标参数对应的资源使用量。期望资源请求量为r2时,与左边曲线交点的业务指标参数为b1,与右边曲线交点的业务指标参数为b2;期望资源限制量为l2时,与左边曲线交点的业务指标参数为b3,与右边曲线交点的业务指标参数为b4。因此,将b1、b3和x作为一个扩缩容需求组合,将b2、b4和y作为一个扩缩容需求组合。由于b1和b3均处于业务指标参数平均值b2和业务指标参数限制值b2-max之间,而b2和b4不处于b2和b2-max之间,因此将x作为期望扩缩容条件。
[0195]
本公开实施例还可以通过上述方法,根据业务指标参数和资源使用量,确定期望扩缩容条件,使得期望扩缩容条件更满足业务实际运行情况。而且相比于固定的扩缩容条件,本公开实施例可以灵活地根据业务实际运行情况对扩缩容条件进行调整,使得对扩缩容条件的设置更合理。
[0196]
相关技术中,当容器部署在具备自动伸缩功能的集群包括的节点中的情况下,在容器运行过程中,云平台根据人工设置或者默认的资源请求量和资源限制量,对容器的实际资源使用量进行调整,从而保障容器中承载的应用的qos指标。例如,具备自动伸缩功能
的集群为kubernetes集群,其中kubernetes是一种容器编排引擎。
[0197]
例如,图7中每个方框表示kubernetes集群中的一个节点,每个节点内上面一排同心圆为一个容器组,下面一排同心圆为一个容器组,每个同心圆表示一个容器。每个容器中,每个同心圆的最外层表示该容器的资源限制量,内部实线圆表示实际资源使用量,内部虚线圆表示设置值,即资源请求量。如图7所示,在容器运行过程中,左边节点内上面一排容器中,实际资源使用量远小于资源请求量,导致节点中的资源利用率较低。云平台可以利用水平容器自动扩缩(horizontal pod autoscaler,hpa)控制器,在满足cpu利用率小于阈值,或者内存利用率小于阈值等预定扩缩容条件时,将副本数量由3个减少为2个,减少后该类容器为图7中右边节点内上面一排容器,由于副本数量减少,每个容器平均负载增大,使得每个容器的实际资源使用量更接近资源请求量,从而提高节点的资源利用率。左边节点内下面一排容器中,实际资源使用量超过资源请求量过多,使得容器资源使用受限。云平台在满足cpu利用率达到阈值或者内存利用率达到阈值等预定扩缩容条件时,将副本数量由2个增大为4个,增大后该类容器为图7中右边节点内下面一排容器,由于副本数量增加,每个容器平均负载减少,使得每个容器的实际资源使用量更接近资源请求量,从而减少容器的资源使用受限的情况。
[0198]
虽然目前能够对容器的实际使用资源进行调整,但是仅能够调整副本数量,即仅能够进行水平扩缩容,而有些应用场景无法进行水平扩缩容,例如无法对运行数据库的容器进行水平扩缩容,导致该方式应用场景有限。而且,该方式调整副本数量时依据预先设定的扩缩容条件调整容器组的副本数量,从而尽量使得容器组中容器运行的业务能够满足qos,但是扩缩容条件是在部署容器之前人工预先设置的,由于容器对资源的需求跟随容器中运行的业务的业务量的变化,但容器的资源请求量和资源限制量以及扩缩容策略是固定的,因此可能存在扩缩容后的配置与容器的实际需求不符的情况。另外,水平扩缩容无法调整容器的资源请求量,在容器的实际资源使用量远小于资源请求量时,即使将副本数量缩小为1个,也可能存在容器的实际资源使用量仍然远小于资源请求量的情况,因此难以避免最小单元的资源浪费。
[0199]
而在本公开实施例中,能够基于容器实际运行时产生的业务指标参数和服务质量参数,从全局准确地把握容器的实际运行需求,从而得到更合理且更精细化的配置,包括期望资源请求量、期望资源限制量和期望副本数量。其中期望资源请求量和期望资源限制量是对于单个容器垂直方向的扩缩容,期望副本数量是对于容器组水平方向的扩缩容,因此本公开实施例既可以水平扩缩容又可以垂直扩缩容,使得本公开实施例的应用范围更广。而且本公开实施例可以在容器实际运行过程中产生的业务运行参数,对容器进行水平和垂直方向的扩缩容,更符合容器实际的运行需求,而且不依赖人工预先设置的扩缩容条件,因此更符合业务实际情况。另外,由于本公开实施例可以进行垂直扩缩容,因此能够调整单个容器的资源请求量,从而避免了资源请求量无法调整而引起的最小单元的资源浪费问题。
[0200]
在本公开实施例中,上述s104中按照期望副本数量、期望资源请求量和期望资源限制量对容器组的资源配置信息进行调整的方式包括以下三种:
[0201]
方式1、调用持续集成/持续部署(continuous integration/continuous deployment,ci/cd)工具,并向ci/cd工具发送期望资源请求量、期望资源限制量和期望副本数量,以使得ci/cd工具按照期望副本数量、期望资源请求量和期望资源限制量对容器组
的资源配置信息进行调整。
[0202]
其中,ci/cd工具是一种自动化流程工具,能够自动调整容器组的资源配置信息。
[0203]
电子设备可以将期望资源请求量、期望资源限制量和期望副本数量写入代码库中的配置文件,ci/cd工具从代码库中获取配置文件,按照配置文件中的期望资源请求量、期望资源限制量和期望副本数量,在集群中启动各容器;或者向指定节点发送期望资源请求量、期望资源限制量和期望副本数量,使得指定节点在集群中启动各容器,其中指定节点是用于部署容器的节点,例如指定节点为云平台。可选的,ci/cd工具还可以从代码库获取配置文件对应的部署脚本代码,从制品库获取指定的容器镜像文件,并将部署脚本代码和容器镜像文件推送到指定节点。
[0204]
之后,ci/cd工具还可以检查指定节点启动容器后的启动结果。例如,启动结果包括启动成功的容器数量。
[0205]
方式2、在接收到ci/cd工具发送的资源配置请求时,向ci/cd工具发送期望资源请求量、期望资源限制量和期望副本数量,以使得ci/cd工具按照期望副本数量、期望资源请求量和期望资源限制量对容器组的资源配置信息进行调整。
[0206]
电子设备可以提供api接口,以便ci/cd工具通过调用该api接口,向电子设备发送资源配置请求。后续电子设备向ci/cd工具发送期望资源请求量、期望资源限制量和期望副本数量,以及ci/cd工具按照期望副本数量、期望资源请求量和期望资源限制量对容器组的资源配置信息进行调整的过程可参考方式一中的描述,此处不再赘述。
[0207]
在过程、方法与系统的统称(development和operations,devops)中借助ci/cd工具实现应用的构建测试部署整体流程的自动化,而本公开实施例能够借助ci/cd工具,从而将自动更新资源请求量、资源限制量和副本数量的方法无缝嵌入云平台中包括监控告警和容器部署等devops流程,从而适应数据运营(dataops)框架。
[0208]
方式3、调用部署工具,触发部署工具按照期望副本数量、期望资源请求量和期望资源限制量对容器组的资源配置信息进行调整。
[0209]
在部署工具为docker compose的情况下,电子设备可以向docker compose传递期望资源请求量、期望资源限制量和期望副本数量,使得部署工具的部署脚本中包含期望资源请求量、期望资源限制量和期望副本数量,使得部署工具在执行部署脚本时,按照期望资源请求量、期望资源限制量和期望副本数量,在集群中启动各容器,或者向指定节点发送期望资源请求量、期望资源限制量和期望副本数量,使得指定节点在集群中启动各容器。
[0210]
例如,一个容器组的期望副本数量为2,另一个容器组的期望副本数量为4,电子设备可以向docker compose发送app-blue=2,app-green=4,使得在docker compose的部署脚本中包括:docker-compose scale app-blue=2app-green=4。
[0211]
在使用helm部署工具为kubernetes集群部署容器的情况下,电子设备可以生成包括期望资源请求量、期望资源限制量和期望副本数量的配置文件,例如配置文件为values.yaml文件,之后执行helm upgrade app-blue-f values.yaml命令,从而触发helm向指定节点发送配置文件。
[0212]
其中,部署工具按照期望副本数量、期望资源请求量和期望资源限制量对容器组的资源配置信息进行调整的方式可参考方式一的描述,此处不再赘述。
[0213]
另外,在业务质量参数包括表示是否中断服务的指示信息时,电子设备还可以向
ci/cd或者部署工具传递指示信息。如果指示信息表示不中断服务,则ci/cd或者部署工具可以执行“启动新实例,切换服务,删除旧实例”的滚动更新流程,也就是,按照期望资源请求量、期望资源限制量和期望副本数量启动新容器,将旧容器中的服务切换到新容器,删除旧容器。如果指示信息表示中断服务,则ci/cd工具或者部署工具可以先删除旧容器,再按照期望资源请求量、期望资源限制量和期望副本数量启动新容器。
[0214]
示例性的,向为kubernests集群部署容器的部署工具传递指示信息时,指示信息可以为updatestrategy=rollingupgrade。
[0215]
本公开实施例基于容器组的业务指标参数和服务质量参数,确定期望资源请求量、期望资源限制量和期望副本数量之后,借助ci/cd工具或者部署工具按照期望资源请求量、期望资源限制量和期望副本数量更新容器配置,从而形成闭环,实现了对容器的自动化和智能化运维,以及精细化运营,具备低成本、轻量化和易实施的特点。
[0216]
而且,本公开实施例不需要改变容器组所在集群本身的结构和流程,不侵入集群,不影响集群原本的运行。而且本公开实施例也不需要拦截api,因此不影响容器运行的业务。
[0217]
基于相同的发明构思,对应于上述方法实施例,本公开实施例提供了一种容器资源调整装置,如图8所示,该装置包括:获取模块801、确定模块802和调整模块803;
[0218]
获取模块801,用于获取容器组运行指定业务时的业务指标序列和指定业务的预设服务质量参数;
[0219]
确定模块802,用于根据获取模块801获取的业务指标序列、预设服务质量参数,确定容器组的建议副本数量,以及容器组中单个容器的建议资源请求量和建议资源限制量;
[0220]
确定模块802,还用于若建议副本数量、建议资源请求量和建议资源限制量,与容器组的当前副本数量、容器组中单个容器的当前资源请求量和当前资源限制量不匹配,则基于建议副本数量、建议资源请求量和建议资源限制量确定期望副本数量、期望资源请求量和期望资源限制量;
[0221]
调整模块803,用于按照确定模块802确定的期望副本数量、期望资源请求量和期望资源限制量对容器组的资源配置信息进行调整。
[0222]
在本公开的一些实施例中,业务指标序列包括容器组运行指定业务过程中,在多个历史时间的业务指标参数;确定模块802,具体用于:
[0223]
计算业务指标序列包括的各业务指标参数的业务指标参数平均值,并确定业务指标参数限制值,业务指标参数限制值大于等于业务指标序列中的业务指标参数最大值;
[0224]
根据业务指标参数、服务质量参数、资源使用量和副本数量之间的预设映射关系,确定业务指标参数平均值和预设服务质量参数对应的至少一组资源使用量和副本数量,将确定出的每组资源使用量和副本数量作为一组目标资源请求量和第一副本数量;
[0225]
根据业务指标参数、服务质量参数、资源使用量和副本数量之间的预设映射关系,确定业务指标参数限制值和预设服务质量参数对应的至少一组资源使用量和副本数量,将确定出的每组资源使用量和副本数量作为一组目标资源限制量和第二副本数量;
[0226]
根据至少一组目标资源请求量和第一副本数量,以及至少一组目标资源限制量和第二副本数量,确定建议副本数量以及容器组中单个容器的建议资源请求量和建议资源限制量。
[0227]
在本公开的一些实施例中,确定模块802,具体用于:
[0228]
若存在第二副本数量与第一副本数量相同,则将该第一副本数量、该第一副本数量对应的目标资源请求量和该第二副本数量对应的目标资源限制量整合为一个资源需求组合;
[0229]
针对每个资源需求组合,判断容器组所在集群包括的各节点的可用资源量,是否足够支持在集群中按照该资源需求组合部署容器;
[0230]
若是,则将该资源需求组合包括的第一副本数量、目标资源请求量和目标资源限制量,分别作为建议副本数量、建议资源请求量和建议资源限制量。
[0231]
在本公开的一些实施例中,该装置还可以包括:
[0232]
获取模块801,还用于在根据业务指标序列、预设服务质量参数,确定容器组的建议副本数量,以及容器组中单个容器的建议资源请求量和建议资源限制量之前,获取样本容器组在指定时间段内多个历史时刻的业务指标参数、资源使用量、服务质量参数和副本数量;
[0233]
划分模块,用于基于指定时间段内的业务指标参数的变化趋势,将指定时间段划分为多个变化周期,并将每个变化周期划分为多个时段,每个时段表示业务指标参数的高峰期或者低谷期;
[0234]
确定模块802,还用于针对不同变化周期内相同时段的业务指标参数、资源使用量、服务质量参数和副本数量,确定该时段的业务指标参数、资源使用量、服务质量参数和副本数量之间的映射关系;
[0235]
确定模块802,还用于在根据业务指标参数、服务质量参数、资源使用量和副本数量之间的预设映射关系,确定业务指标参数平均值和预设服务质量参数对应的至少一组资源使用量和副本数量之前,确定多个历史时间在不同变化周期内所属的相同目标时段,将目标时段的业务指标参数、资源使用量、服务质量参数和副本数量之间的映射关系,作为预设映射关系。
[0236]
在本公开的一些实施例中,
[0237]
确定模块802,还用于在将每个变化周期划分为多个时段之后,针对单个变化周期包括的每两个相邻且指定时长的时间段,判断该相邻的时间段是否满足突变条件,所述突变条件包括:前一个时间段内业务指标参数的最小值与后一个时间段内业务指标参数的最大值之间的差值大于第一指定阈值,或者前一个时间段内业务指标参数的最大值与后一个时间段内业务指标参数的最小值之间的差值大于第二指定阈值;若是,则增大所述指定时长,并以指定时刻为起点,分别确定两段增大后的指定时长的时间段,判断确定的两个时间段是否满足所述突变条件,直至增大后的时长达到单个变化周期的时长,或者增大次数达到预设次数时,确定所述指定时刻与所属的变化周期的起始时刻之间的时间偏移量;其中,所述指定时刻为该相邻的时间段满足的突变条件包括的最大值对应的时刻和最小值对应的时刻之间的时刻;
[0238]
调整模块803,具体用于:
[0239]
若当前时刻与当前变化周期的起始时刻之间的时间差小于或等于时间偏移量,则将当前变化周期的起始时刻与时间偏移量相加,得到变更时刻;
[0240]
若当前时刻与当前变化周期的起始时刻之间的时间差大于时间偏移量,则将下一
个变化周期的起始时刻与时间偏移量相加,得到变更时刻;
[0241]
在变更时刻,按照期望副本数量、期望资源请求量和期望资源限制量对容器组的资源配置信息进行调整。
[0242]
在本公开的一些实施例中,该装置还可以包括:
[0243]
确定模块802,还用于在基于建议副本数量、建议资源请求量和建议资源限制量确定期望副本数量、期望资源请求量和期望资源限制量之后,根据业务指标参数、资源使用量和扩缩容条件之间的预设映射关系,确定所述期望资源请求量对应的至少一组第一业务指标参数和第一扩缩容条件,以及所述期望资源限制量对应的至少一组第二业务指标参数和第二扩缩容条件;若存在第二扩缩容条件与第一扩缩容条件相同,则将该第一扩缩容条件、该第一扩缩容条件对应的第一业务指标参数和该第二扩缩容条件对应的第二业务指标参数整合为一个扩缩容需求组合;针对每个扩缩容需求组合,判断该扩缩容需求组合包括的第一业务指标参数和第二业务指标参数是否均处于所述业务指标参数平均值和所述业务指标参数限制值之间;若是,则将该扩缩容需求组合包括的第一扩缩容条件作为期望扩缩容条件;
[0244]
扩缩容模块,用于在按照期望副本数量、期望资源请求量和期望资源限制量对容器组的资源配置信息进行调整之后,在容器组的实际资源使用量满足期望扩缩容条件时,对容器组进行扩缩容处理。
[0245]
在本公开的一些实施例中,确定模块802,具体用于:
[0246]
获取容器组包括的每个容器的资源使用序列,资源使用序列包括容器在多个历史时间对所在节点中的目标资源的使用量;
[0247]
将业务指标序列、资源使用序列以及预设服务质量参数,输入预先训练的资源请求量预测模型,得到资源请求量预测模型输出的建议资源请求量;
[0248]
将业务指标序列、资源使用序列以及预设服务质量参数,输入预先训练的资源限制量预测模型,得到资源限制量预测模型输出的建议资源限制量;
[0249]
将业务指标序列、资源使用序列以及预设服务质量参数,输入预先训练的副本数量预测模型,得到副本数量预测模型输出的建议副本数量。
[0250]
在本公开的一些实施例中,调整模块803,具体用于:
[0251]
调用持续集成/持续部署ci/cd工具,并向ci/cd工具发送期望资源请求量、期望资源限制量和期望副本数量,以使得ci/cd工具按照期望副本数量、期望资源请求量和期望资源限制量对容器组的资源配置信息进行调整;或者,
[0252]
在接收到ci/cd工具发送的资源配置请求时,向ci/cd工具发送期望资源请求量、期望资源限制量和期望副本数量,以使得ci/cd工具按照期望副本数量、期望资源请求量和期望资源限制量对容器组的资源配置信息进行调整;或者,
[0253]
调用部署工具,触发部署工具按照期望副本数量、期望资源请求量和期望资源限制量对容器组的资源配置信息进行调整。
[0254]
本公开实施例还提供了一种电子设备,如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,
[0255]
存储器903,用于存放计算机程序;
[0256]
处理器901,用于执行存储器903上所存放的程序时,实现上述方法实施例中的方法步骤。
[0257]
上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0258]
通信接口用于上述电子设备与其他设备之间的通信。
[0259]
存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0260]
上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0261]
在本公开提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一容器资源调整方法的步骤。
[0262]
在本公开提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一容器资源调整方法。
[0263]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
[0264]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0265]
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0266]
以上所述仅为本公开的较佳实施例,并非用于限定本公开的保护范围。凡在本公开的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本公开的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1