一种基于定长服务排队模型的云平台自动伸缩方法技术

技术编号:33553290 阅读:14 留言:0更新日期:2022-05-26 22:49
本发明专利技术公开了一种基于定长服务排队模型的云平台自动伸缩方法,包括搭建容器编排平台和云监控平台,通过周期性采集云平台应用服务历史CPU负载数据,并对下一周期云平台应用服务的CPU负载值进行预测;根据单一应用服务的任务相似性及CPU负载的预测值,获得下一个采样周期内到达的任务数量,应用服务的任务最大延迟,并为系统容器数量设置阈值;以采样周期为单位时间间隔,构建定长服务M/D/1模型,根据模型的服务强度计算系统忙期时长;采用遍历法搜索定长服务M/D/1模型优化目标的最优解,作为系统下一个采样周期的最优容器数量。本发明专利技术在解决云平台响应式自动伸缩的滞后性、资源分配不足和资源浪费的问题上具有较好的效果。配不足和资源浪费的问题上具有较好的效果。配不足和资源浪费的问题上具有较好的效果。

【技术实现步骤摘要】
一种基于定长服务排队模型的云平台自动伸缩方法


[0001]本专利技术涉及云计算资源及任务调度领域,具体涉及一种基于定长服务排队模型的云平台自动伸缩方法。

技术介绍

[0002]随着计算机技术的飞速发展,传统的单体架构逐渐向分布式集群架构演进,系统规模和负载度逐渐上升,这大大增加了运维开发人员的维护和研发难度。在云计算快速发展的今天,越来越多的服务被部署到云端,虚拟化技术实现跨主机的硬件资源共享,通过将底层硬件资源进行池化的方式,云平台可以为应用服务提供无穷无尽的计算资源。Docker作为轻量的虚拟化技术,因其具有隔离性好、敏捷部署等优点,已逐渐成为现代云平台的标准。
[0003]如今,越来越多的微服务Docker容器给管理和运维带来了巨大的压力,因此自动化运维管理的容器编排工具Kubernetes被设计出来。基于Kubernetes的容器云编排平台正逐渐成为通用模式并得到广泛应用。然而,在容器编排过程中,Kubernetes传统的自动伸缩策略是响应式的横向伸缩。由于Kubernetes默认对容器资源负载采样周期是30秒,容易产生扩缩容不及时带来服务质量下降或者资源浪费的问题。同时,Kubernetes的自动伸缩策略在扩容和缩容的情况下分别有3分钟和5分钟的冷冻期,无法实现实时扩缩容。近年来,根据容器的预测负载估计容器最优数量,从而将集群容器数量伸缩到最优数量,逐渐成为云计算自动伸缩研究的热点。

技术实现思路

[0004]为了克服现有技术中基于Kubernetes的容器云平台传统响应式自动伸缩策略滞后性所带来服务质量下降或者资源浪费问题,本专利技术提供一种能够在任意时刻依据CPU历史复杂数据预测未来负载,并基于定长服务排队模型的云平台自动伸缩方法。
[0005]本专利技术采用如下技术方案:
[0006]一种基于定长服务排队模型的云平台自动伸缩方法,进一步,包括:
[0007]搭建Kubernetes容器编排平台和Prometheus云监控平台,通过周期性采集云平台应用服务历史CPU负载数据,并对下一周期云平台应用服务的CPU负载值进行预测;
[0008]根据单一应用服务的任务相似性及CPU负载的预测值,获得下一个采样周期内到达的任务数量,应用服务的任务最大延迟,并为系统容器数量设置阈值;
[0009]以采样周期为单位时间间隔,构建定长服务M/D/1模型,根据M/D/1模型的服务强度计算系统忙期时长;
[0010]采用遍历法搜索定长服务M/D/1模型优化目标的最优解,作为系统下一个采样周期的最优容器数量。
[0011]进一步,所述搭建Kubernetes容器编排平台和Prometheus云监控平台,具体如下:
[0012]搭建Kubernetes集群,集群包含一个主节点和N个node节点,设定主节点名称为
k8s

master,node节点名称根据节点序号设定为k8s

node(i),i=1,2,

,N,节点采用同样的主机配置;
[0013]将Prometheus以Docker容器形式发布,通过Kubernetes管理Prometheus容器的编排调度得到Kubernetes容器编排平台;
[0014]利用Prometheus和Node

Exporter组件搭建云监控平台,实现对集群节点状态的监控。
[0015]进一步,通过周期性采集云平台应用服务历史CPU负载数据,并对下一周期云平台应用服务的CPU负载值进行预测,具体为:
[0016]采集CPU负载数据,构成训练样本集;
[0017]对训练样本进行预处理及特征提取,并将训练样本、周期注意力向量机峰值注意力向量进行加权求和得到最终训练样本;
[0018]具体为:
[0019]所述特征提取包括通过自相关系数发掘数据周期性,生成用于引导模型关注周期特征的周期注意力向量,及通过一阶差分的方式发掘峰值数据,生成用于引导模型关注峰值特征的峰值注意力向量;
[0020]构建及训练时序卷积神经网络,最终训练样本作为输入信号;
[0021]采集的周期CPU负载数据输入训练好的时序卷积神经网络,获得CPU负载值的预测值。
[0022]进一步,所述根据单一应用服务的任务相似性及CPU负载的预测值,获得下一个采样周期内到达的任务数量,具体为:
[0023]所述采样周期是Δt,单一应用服务任务平均执行时间为CPU负载定义是该采样周期内用户态时间和内核态时间的加和与总时间的比值:
[0024][0025]其中,utime是此时用户态消耗时间,stime是此时内核态消耗时间,lastutime是Δt前用户态消耗时间,laststime是Δt前内核态消耗时间;
[0026]设下一个周期CPU负载的预测值为则下一个采样周期内到达的任务数量为:
[0027][0028]设应用服务的任务最大延迟是delay
max
,所述系统容器数量阈值设置为上、下阈值,上阈值是系统容器最大数量pod

max,下阈值是系统容器最小数量pod

min。
[0029]进一步,考虑到服务可用性,系统容器数量最小值pod

min为1;系统容器数量最大值pod

max受集群CPU资源R
cap
和单容器CPU资源占用R
req
决定,应当满足如下公式:
[0030][0031]进一步,所述以采样周期为单位时间间隔,构建定长服务M/D/1模型,根据M/D/1模型的服务强度计算系统忙期时长,具体为:
[0032]设采样周期为Δt,定长服务M/D/1排队模型的服务能力为:
[0033][0034]其中,是任务平均执行时间;
[0035]定长服务M/D/1排队模型的任务到达率为:
[0036][0037]其中,x
v
是下一个采样周期内到达的任务数,n
v
是下一个采样周期的容器数量;
[0038]定长服务M/D/1排队模型的服务强度为:
[0039]ρ=λ/μ
[0040]定长服务M/D/1排队模型的忙期时长为:
[0041]Δt
busy
=ρ*Δt;
[0042]由此确定定长服务M/D/1模型的优化目标和约束为:
[0043]Minimize(n
v
),
[0044]S.T.Δt
busy
<delay
max
且ρ<1
[0045]其中,n
v
是下一个采样周期容器数量,Δt
busy
是忙期时长,delay
max
是任务最大延迟,ρ是服务强度。
[0046]进一步,所述采用遍历法搜索定长服务M/D/1本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于定长服务排队模型的云平台自动伸缩方法,其特征在于,包括:搭建Kubernetes容器编排平台和Prometheus云监控平台,通过周期性采集云平台应用服务历史CPU负载数据,并对下一周期云平台应用服务的CPU负载值进行预测;根据单一应用服务的任务相似性及CPU负载的预测值,获得下一个采样周期内到达的任务数量,应用服务的任务最大延迟,并为系统容器数量设置阈值;以采样周期为单位时间间隔,构建定长服务M/D/1模型,根据M/D/1模型的服务强度计算系统忙期时长;采用遍历法搜索定长服务M/D/1模型优化目标的最优解,作为系统下一个采样周期的最优容器数量。2.根据权利要求1所述的云平台自动伸缩方法,其特征在于,所述搭建Kubernetes容器编排平台和Prometheus云监控平台,具体如下:搭建Kubernetes集群,集群包含一个主节点和N个node节点,设定主节点名称为k8s

master,node节点名称根据节点序号设定为k8s

node(i),i=1,2,

,N,节点采用同样的主机配置;将Prometheus以Docker容器形式发布,通过Kubernetes管理Prometheus容器的编排调度得到Kubernetes容器编排平台;利用Prometheus和Node

Exporter组件搭建云监控平台,实现对集群节点状态的监控。3.根据权利要求1所述的云平台自动伸缩方法,其特征在于,通过周期性采集云平台应用服务历史CPU负载数据,并对下一周期云平台应用服务的CPU负载值进行预测,具体为:采集CPU负载数据,构成训练样本集;对训练样本进行预处理及特征提取,并将训练样本、周期注意力向量机峰值注意力向量进行加权求和得到最终训练样本;具体为:所述特征提取包括通过自相关系数发掘数据周期性,生成用于引导模型关注周期特征的周期注意力向量,及通过一阶差分的方式发掘峰值数据,生成用于引导模型关注峰值特征的峰值注意力向量;构建及训练时序卷积神经网络,最终训练样本作为输入信号;采集的周期CPU负载数据输入训练好的时序卷积神经网络,获得CPU负载值的预测值。4.根据权利要求1所述的云平台自动伸缩方法,其特征在于,所述根据单一应用服务的任务相似性及CPU负载的预测值,获得下一个采样周期内到达的任务数量,具体为:所述采样周期是Δt,单一应用服务任务平均执行时间为CPU负载定义是该采样周期内用户态时间和内核态时间的加和与总时间的比值:其中,utime是此时用户态消耗时间,stime是此时内核态消耗时间,lastutime是Δt前用户态消耗时间,laststime是Δt前内核态消耗时间;设下一个周期CPU负载的预测值为则下一个采样周期内到达的任务数量为:
设应用服务的任务最大延迟是delay
max
,所述系统容器数量阈值设置为上、下阈值,上阈值是系统容器最大数量pod

max,下阈值是系统容器最小数量pod

min。5.根据权利要求4所述的云平台自动伸缩方法,其特征在于,考虑到服务可用性,系统容器数量最小值pod

min为1;系统容器数量最大值pod

max受集群CPU资源R
c...

【专利技术属性】
技术研发人员:高学高智平李磊
申请(专利权)人:深圳市云识科技有限公司
类型:发明
国别省市:

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

1