一种基于容器应用实时使用情况的容器资源伸缩方法技术

技术编号:33960486 阅读:30 留言:0更新日期:2022-06-30 00:26
本发明专利技术公开了一种基于容器应用实时使用情况的容器资源伸缩方法,创建容器集群,布置采集探针实时监测容器内各个应用的资源使用情况;判断容器集群是否启动完成,设置统一的状态监控点;当容器集群正常运行后,每间隔固定时长,取这段固定时长内的各个应用的资源使用情况,并使用二次移动平均法预测容器内接下来的各个应用的资源使用情况,进行动态的资源伸缩;根据各个应用的资源状态,按照应用优先级计算应用得分,使用分代方法进行资源缩减调度。本发明专利技术的有益效果为:通过在容器集群内部预设探针,完成容器各应用资源使用情况的获取,并根据容器资源的预测情况,对容器资源进行协调调度,从而解决集群整体资源利用率偏低的问题。的问题。的问题。

【技术实现步骤摘要】
一种基于容器应用实时使用情况的容器资源伸缩方法


[0001]本专利技术涉及云计算领域,主要是一种基于容器应用实时使用情况的容器资源伸缩方法。

技术介绍

[0002]近年来,企业网络系统集群逐渐增大,硬件资源稳步提升的同时也导致软件运维部署困难加重,系统资源利用率低,机器使用不均衡等问题频发。容器技术可对程序运行环境进行隔离和打包,方便了程序在开发、上线、测试和维护的整个过程,并且容器之间可以共享主机的操作系统,与虚拟机相比占用的资源更少。但容器的部署与资源调度一直是业界研究的难题,在保持服务性能的同时减少容器资源的浪费,合理预测容器所需内存资源,根据预测有机分配容器资源成为了一个亟待解决的问题。
[0003]针对这一问题,目前已有不少的解决方案,如专利技术CN110647392A提供了一种基于容器集群的智能弹性伸缩方法,首先通过设定弹性伸缩阈值,确定容器运行时的最大CPU使用率、最大内存使用率、最大磁盘IO、最大网络吞吐量、最长请求响应时间以及目标时间段最大请求率,接下来在容器全部启动后,监测容器上述指标,并对比阈值,当阈值超过时,直接在容器级别进行删除和增加。上述方案可以有效的调度资源,但阈值设定没有明确的依据较为主观,此外在容器级别进行增删改查会对现有业务造成影响,尤其是遇到在线业务弹性、大规模计算训练、深度学习GPU或共享GPU的训练与推理等场景中无法应用。

技术实现思路

[0004]本专利技术的目的在于克服现有技术存在的不足,而提供一种基于容器应用实时使用情况的容器资源伸缩方法,通过内置探针,实时监控容器内应用资源使用情况。
[0005]本专利技术的目的是通过如下技术方案来完成的。一种基于容器应用实时使用情况的容器资源伸缩方法,具体步骤如下:
[0006](1)、创建容器集群,布置采集探针实时监测容器内各个应用的资源使用情况;
[0007](2)、判断容器集群是否启动完成,设置统一的状态监控点;统一的状态监控点为采集探针的部署位置,通常为管理服务器、数据服务器等设备,当采集探针采集到容器集群启动完成后开始对容器的资源使用情况进行监控。采集探针用于采集容器内的详细资源情况,即下文所述的最大内存使用率,最大cpu使用率,为最大网络吞吐率,为最大硬盘使用率。
[0008](3)、当容器集群正常运行后,每间隔固定时长,取这段固定时长内的各个应用的资源使用情况,并使用二次移动平均法预测容器内接下来的各个应用的资源使用情况,进行动态的资源伸缩;
[0009](4)、根据各个应用的状态,按照应用优先级计算应用得分,使用分代方法进行资源缩减调度。
[0010]更进一步的,在步骤(1)中,对容器内各个应用的最大内存使用率、最大CPU使用
率、最大网络吞吐率、最大硬盘使用率进行采集,记录的集合为:
[0011][0012]其中
[0013]其中Apst
i
代表应用i的状态,代表应用i在当前状态j分钟前时刻的性能数据,max mem为最大内存使用率,max cpu为最大cpu使用率,max netflow为最大网络吞吐率,max diskuse为最大硬盘使用率。
[0014]更进一步的,在步骤(3)中,
[0015](3.1)、用P表示本次弹性伸缩资源指标,Q表示当前的容器集群可用的全部资源,通过监控各个应用的资源使用情况:
[0016][0017]其中,n代表容器内应用的总数量;
[0018](3.2)、用P表示应用运行过程中的预测性能指标,以过去j时刻内的滑动窗口为时间序列,对窗口内检测到的容器应用实际性能指标使用二次移动平均法进行计算;
[0019]为应用i在当前状态j分钟前时刻的性能数据,那么j时刻的容器内应用集合的一次平均值为:
[0020][0021]t时刻的一次平均值序列为:
[0022]t时刻的二次移动平均值为:
[0023]j+t时刻预测值为:
[0024]其中,
[0025](3.3)、当容器资源需要增加时,即在剩余资源满足需求时,即直接根据新增资源;当剩余资源无法满足增加需求时,即优先进行资源缩减。
[0026]更进一步的,
[0027](1)、当容器资源需要减少时,根据前j个时间点内应用的状态进行减少,并按照应用优先级进行资源缩减调度;通过应用重要性优先级和最近使用时间两个方面进行加权计算,对各个指标进行分别计算,按照资源需求的优先级,依次调度应用,减少资源分配,其中应用优先级按照容器建立后的应用启动优先级进行排序,并根据用户最早使用应用进行减少;
[0028]应用得分计算方式如下:
[0029]score
i
={4

max mem

maxcpu

max netflow

maxdiskuse}*(1

aplv)*(1

aptl)
[0030]式(7)
[0031]其中score
i
代表应用i的得分,aplv代表当前应用的优先级,按照linux系统PR值
进行计算,数值归一化为0

1;当PR值相同时,对系统自启动应用进行加权0.2,用户自启动应用加权0.1,aptl代表应用在时间段范围内运行时长比例,即当前应用最近运行时长除以timej时刻时长,范围为0

1;
[0032](2)、按照需要扩展的资源为单个应用可释放资源为E
i
,按照上述得分score
i
从大到小的顺序逐个释放,直至满足资源需求。
[0033]更进一步的,采用分代回收算法进行内存、硬盘、网络方面的资源缩减,即把资源块进行分类,按照进程使用后闲置时长分为“新生代”和“老年代”,存活周期短的资源块,划分为“新生代”,直接使用“复制算法”进行回收,存活周期长的内存块,划分为“老年代”,使用“标记

整理算法”,在发生了内存回收时进行记录,并及时反馈给服务器,作为性能指标使用。
[0034]本专利技术的有益效果为:本专利技术通过在容器集群内部预设探针,完成容器各应用资源使用情况的获取,并根据容器资源的预测情况,对容器资源进行协调调度,从而解决集群整体资源利用率偏低的问题。
附图说明
[0035]图1为本专利技术的流程示意图。
具体实施方式
[0036]下面将结合附图和实施例对本专利技术做详细的介绍:
[0037]如图1所示,一种基于容器应用实时使用情况的容器资源伸缩方法,具体步骤如下:
[0038](1)、创建容器集群,布置采集探针实时监测容器内各个应用的资源使用情况;对容器内各个应用的最大内存使用率、最大CPU使用率、最大网络吞吐率、最大硬盘使用率数据分钟级细粒度进行采集,记录的集合为:
[0039][0040]其中
[0041]其中A本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于容器应用实时使用情况的容器资源伸缩方法,其特征在于:具体步骤如下:(1)、创建容器集群,布置采集探针实时监测容器内各个应用的资源使用情况;(2)、判断容器集群是否启动完成,设置统一的状态监控点;(3)、当容器集群正常运行后,每间隔固定时长,取这段固定时长内的各个应用的资源使用情况,并使用二次移动平均法预测容器内接下来的各个应用的资源使用情况,进行动态的资源伸缩;(4)、根据各个应用的状态,按照应用优先级计算应用得分,使用分代方法进行资源缩减调度。2.根据权利要求1所述的基于容器应用实时使用情况的容器资源伸缩方法,其特征在于:在步骤(1)中,对容器内各个应用的最大内存使用率、最大CPU使用率、最大网络吞吐率、最大硬盘使用率进行采集,记录的集合为:其中其中Apst
i
代表应用i的状态,代表应用i在当前状态j分钟前时刻的性能数据,max mem为最大内存使用率,max cpu为最大cpu使用率,max netflow为最大网络吞吐率,max diskuse为最大硬盘使用率。3.根据权利要求1所述的基于容器应用实时使用情况的容器资源伸缩方法,其特征在于:在步骤(3)中,(3.1)、用P表示本次弹性伸缩资源指标,Q表示当前的容器集群可用的全部资源,通过监控各个应用的资源使用情况:其中,n代表容器内应用的总数量;(3.2)、用表示应用运行过程中的预测性能指标,以过去j时刻内的滑动窗口为时间序列,对窗口内检测到的容器应用实际性能指标使用二次移动平均法进行计算;为应用i在当前状态j分钟前时刻的性能数据,那么j时刻的容器内应用集合的一次平均值为:t时刻的一次平均值序列为:t时刻的二次移动平均值为:j+t时刻预测值为:其中,(3.3)、当容器资源需要增加时,即在剩余资源满足需求时,即直接根据
新增资源;当剩余资源无法满足增加需求时,即优先进行资源缩减。4.根据权利要求3所述的基于容器应用实时使用情况的容器资源伸缩方法,其特征在于:(1)、当...

【专利技术属性】
技术研发人员:刘东海徐育毅庞辉富
申请(专利权)人:杭州优云软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1