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

一种容器资源调整方法、系统、介质及电子终端与流程

2022-02-20 14:49:59 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种容器资源调整方法、系统、介质及电子终端。


背景技术:

2.k8s(kubernetes)通过qos(quality of service,服务质量)来对pod(容器)进行服务质量管理,提供了requests(需求)和limits(限制)两种类型对资源进行分配和使用限制。目前通用的动态资源调节方法一般分为2种,一种为hpa(horizontal pod autoscaling,容器水平自动扩展),另一种为vpa(vertical pod autoscaler,容器垂直自动扩展)。hap基于cpu利用率来动态调整容器的数量,对于一些对持久化存储有强依赖的场景不会起到较好的作用,因为当缩容发生时,被缩容的容器所持久化的数据无法自动转移到正在运行的容器中,可能会造成数据丢失;vpa在特定情况下无法有效避免内存oom(out of memery,内存不足),vpa的建议可能会超出可用资源,vpa在某些特定的情景下会导致删除的pod不会重新建立。
3.然而,以上方法均未考虑应用资源需求的周期性特点,亦未考虑微服务的访问次数与应用跟资源需求之间的关系,只是较为被动地调整pod的数量或pod的资源量,不能较好地支持容器资源的动态伸缩与调整,资源利用率较低。


技术实现要素:

4.本发明提供一种容器资源调整方法、系统、介质及电子终端,以解决现有技术中对于容器资源调整未考虑应用资源需求的周期性特点,亦未考虑微服务的访问次数与应用跟资源需求之间的关系,只是较为被动地调整pod的数量或pod的资源量,不能较好地支持容器资源的动态伸缩与调整,以及资源利用率较低的问题。
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.所述容器资源预测模型的数学表达为:
[0034][0035]
其中,为k1时刻的资源消耗的预测值,α和β为第二资源消耗预测方程中的关联参数,为k1时刻的访问次数预测值,ε1(k1)为访问次数预测差值。
[0036]
可选的,利用所述容器资源预测模型,进行容器资源预测与调整的步骤包括:
[0037]
利用所述容器资源预测模型进行容器消耗资源预测,获取服务的资源平均消耗预测值和资源峰值消耗预测值,所述资源平均消耗为固定时间段内服务所消耗资源的平均值,所述资源峰值消耗为固定时间段内服务所消耗资源的最大值;
[0038]
将所述资源平均消耗预测值作为资源需求量,并将所述资源峰值消耗预测值作为资源限制量;
[0039]
根据所述资源需求量和所述资源限制量,对服务的容器资源进行调整。
[0040]
可选的,利用所述容器资源预测模型,进行容器资源预测与调整的步骤还包括:
[0041]
利用所述容器资源预测模型进行容器消耗资源预测,获取服务的cpu资源平均消耗预测值、cpu资源峰值消耗预测值、内存资源平均消耗预测值和内存资源峰值消耗预测值;
[0042]
根据所述cpu资源平均消耗预测值、cpu资源峰值消耗预测值、内存资源平均消耗预测值和内存资源峰值消耗预测值,获取cpu需求量、cpu限制量、内存需求量和内存限制量;
[0043]
根据所述cpu需求量、cpu限制量、内存需求量和内存限制量,进行容器资源调整。
[0044]
本发明还提供一种容器资源调整系统,包括:
[0045]
访问次数预测模型构建模块,用于预先设置采集周期,采集服务的前端容器的访问次数,获取服务访问次数序列;根据所述服务访问次数序列,建立访问次数预测模型;
[0046]
资源消耗预测模型构建模块,用于根据所述采集周期,采集服务的容器的资源消耗量,获取资源消耗序列;根据所述服务访问次数序列和资源消耗序列,确定资源消耗预测模型;
[0047]
容器资源预测模型获取模块,用于对所述访问次数预测模型和资源消耗预测模型进行拟合,获取容器资源预测模型;
[0048]
资源调整模块,用于利用所述容器资源预测模型,进行容器资源预测与调整。
[0049]
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述方法。
[0050]
本发明还提供一种电子终端,包括:处理器及存储器;
[0051]
所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行如上述任一项所述方法。
[0052]
本发明的有益效果:本发明中的容器资源调整方法、系统、介质及电子终端,通过按照预先设置的采集周期,采集服务中前端容器的访问次数,获取服务访问次数序列,根据服务访问次数序列,建立访问次数预测模型,根据采集周期,采集服务中容器的资源消耗量,获取资源消耗序列,根据服务访问次数序列和资源消耗序列,确定资源消耗预测模型,并对访问次数预测模型和资源消耗预测模型进行拟合,获取容器资源预测模型,进而利用容器资源预测模型进行容器资源预测与调整,实现了访问次数和资源需求的有机结合,同时,实现了对微服务应用的资源量的动态调整,有效提高资源利用率。
附图说明
[0053]
图1是本发明实施例中容器资源调整方法的流程示意图。
[0054]
图2是本发明实施例中容器资源调整方法中建立访问次数预测模型的流程示意图。
[0055]
图3是本发明实施例中容器资源调整方法中确定资源消耗预测模型的流程示意图。
[0056]
图4是本发明实施例中容器资源调整方法中获取容器资源预测模型的流程示意图。
[0057]
图5是本发明实施例中容器资源调整方法中利用容器资源预测模型,进行容器资源预测与调整的流程示意图。
[0058]
图6是本发明实施例中实施例一的通用微服务的框架示意图。
[0059]
图7是本发明实施例中容器资源调整系统的结构示意图。
具体实施方式
[0060]
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0061]
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0062]
发明人发现,k8s(kubernetes)通过qos(quality of service,服务质量)来对pod(容器)进行服务质量管理,提供了requests和limits两种类型对资源进行分配和使用限制,requests定义了对应的容器所需要的最小资源量,limits定义了对应容器最大可以消耗的资源上限。目前通用的动态资源调节方法一般分为2种,一种为hpa(horizontal pod autoscaling,容器水平自动扩展),另一种为vpa(vertical pod autoscaler,容器垂直自动扩展)。hap基于cpu利用率来动态调整容器的数量,对于一些对持久化存储有强依赖的场景不会起到较好的作用,因为当缩容发生时,被缩容的容器所持久化的数据无法自动转移到正在运行的容器中,可能会造成数据丢失;vpa在特定情况下无法有效避免内存oom,vpa的建议可能会超出可用资源,且vpa在某些特定的情景下会导致删除的pod不会重新建立。然而,以上方法均未考虑应用资源需求的周期性特点,亦未考虑微服务的访问次数与应用跟资源需求之间的关系,只是较为被动地调整pod的数量或pod的资源量,不能较好地支持容器资源的动态伸缩与调整,资源利用率较低。因此,发明人提出一种容器资源调整方法、系统、介质及电子终端,通过按照预先设置的采集周期,采集服务中前端容器的访问次数,获取服务访问次数序列,根据服务访问次数序列,建立访问次数预测模型,根据采集周期,采集服务中容器的资源消耗量,获取资源消耗序列,根据服务访问次数序列和资源消耗序列,确定资源消耗预测模型,并对访问次数预测模型和资源消耗预测模型进行拟合,获取容器资源预测模型,进而利用容器资源预测模型进行容器资源预测与调整,充分考虑了应用资源需求的周期性特点,实现了访问次数和资源需求的有机结合,可以动态地预测出各阶段微服务的应用的所需资源量,同时,实现了对微服务应用的资源量的主动调整,有效提高资源利用率,可实施性较高,成本较低。
[0063]
如图1所示,本实施例中的容器资源调整方法,包括:
[0064]
s101:预先设置采集周期,采集服务的前端容器的访问次数,获取服务访问次数序
列;所述服务为微服务,所述采集周期可以根据实际情况进行设置,如每三分钟统计一次服务的前端容器的访问次数等,此处不再赘述。在典型的服务框架中,前后端容器通常为分离状态,即相互独立,因此,通过采集服务的前端容器的访问次数,能够较好地获取预设时间段内服务的访问次数,便于后续对服务的访问次数进行预测。上述采集的服务的前端容器的访问次数为周期时间内的总访问次数。
[0065]
s102:根据所述服务访问次数序列,建立访问次数预测模型;所述访问次数预测模型为联合灰色代谢模型(metabolic grey model,mgm)及差分自回归移动平均模型(autoregressive integrated moving average model,arima)的拟合模型,通过根据服务访问次数序列,建立访问次数预测模型,能够较好地实现对服务的访问次数的预测,准确率较高,可实施性较强。
[0066]
s103:根据所述采集周期,采集服务的容器的资源消耗量,获取资源消耗序列;通过定期采集服务的容器的资源消耗量,能够便于对微服务的消耗资源进行统计,且便于后续对容器的资源消耗进行预测。
[0067]
s104:根据所述服务访问次数序列和资源消耗序列,确定资源消耗预测模型;即根据服务访问次数序列和资源消耗序列,确定服务的访问次数和资源消耗量之间的关联关系,进而确定资源消耗预测模型。
[0068]
s105:对所述访问次数预测模型和资源消耗预测模型进行拟合,获取容器资源预测模型;通过对访问次数预测模型和资源消耗预测模型进行拟合,能够较好地获取基于访问次数的容器资源预测模型,模型预测准确率较高,实现对各阶段服务应用的所需资源量进行动态预测,实施较方便。
[0069]
s106:利用所述容器资源预测模型,进行容器资源预测与调整。即利用容器资源预测模型,对服务的容器的资源消耗量和资源限制量进行预测和调整。通过利用容器资源预测模型进行容器资源预测与调整,能够实现对微服务所需资源的主动预测与调整,有效提高服务中容器的资源利用率。
[0070]
如图2所示,根据所述服务访问次数序列,建立访问次数预测模型的步骤包括:
[0071]
s201:对所述服务访问次数序列进行一阶累加,获取第一一阶累加序列;
[0072]
例如:根据预先设置的采集周期,定期采集服务的前端容器的访问次数,获取服务访问次数序列,设采集到的某一服务的访问次数序列为:
[0073]
x
(0)
={x
(0)
(1),x
(0)
(2),...,x
(0)
(n)}
[0074]
其中,x
(0)
为服务访问次数序列,x
(0)
(n)为从第n-1时刻到第n时刻的某一服务的总访问次数。
[0075]
对上述服务访问次数序列进行一阶累加,获取第一一阶累加序列,所述第一一阶累加序列的数学表达为:
[0076]
x
(1)
={x
(1)
(1),x
(1)
(2),...,x
(1)
(n)}
[0077][0078]
其中,x
(1)
为第一一阶累加序列。
[0079]
s202:对所述第一一阶累加序列建立白化形式的微分方程;所述微分方程的数学表达为:
[0080][0081]
其中,x
(1)
(t)为第一一阶累加序列中的数据,t为时间序列,a和b是微分方程中的可变常量。
[0082]
s203:根据所述服务访问次数序列和第一一阶累加序列,利用最小二乘法,获取所述微分方程中的可变常量;即利用最小二乘法,得到微分方程中可变常量的取值。获取所述微分方程中的可变常量的数学表达为:
[0083]
[a,b]
t
=(b
t
b)-1btyn
[0084]
其中,
[0085]yn
=[x
(0)
(2),x
(0)
(3),

,x
(0)
(n)]
t
[0086][0087]
由上述数学表达,可以得到微分方程中的a和b的取值。
[0088]
s204:根据所述可变常量和所述微分方程,获取第二一阶累加序列;即将所述可变常量a、b的值代入上述微分方程中,获取第二一阶累加序列。
[0089]
s205:利用所述第二一阶累加序列,进行访问次数预测,获取访问次数预测序列;即利用第二一阶累加序列,得到mgm模型,所述mgm模型的数学表达为:
[0090][0091]
其中,为k3 1时刻的访问次数预测值,
[0092]
利用所述mgm模型,进行访问次数预测,获取访问次数预测序列,所述访问次数预测序列的数学表达为:其中,为访问次数预测序列,为第n时刻的访问次数预测值。
[0093]
s206:根据所述服务访问次数序列和访问次数预测序列,建立访问次数预测模型。通过建立访问次数预测模型,能够实现对微服务的访问次数的预测,自动化程度较高。
[0094]
在一些实施例中,根据所述服务访问次数序列和访问次数预测序列,建立访问次数预测模型的步骤包括:
[0095]
s2061:获取所述访问次数预测序列和所述服务访问次数序列之间的差值,获取差值序列;即将mgm模型预测的访问次数预测序列减去真实采集的服务访问次数序列x
(0)
={x
(0)
(1),x
(0)
(2),...,x
(0)
(n)},得到差值序列。
[0096]
s2062:将所述差值序列用预设的差分自回归移动平均模型arima进行表示,获取自回归方程和移动平均方程;在差分自回归移动平均模型arima(p,d,q)中,ar表示自回归,i为差分,ma为移动平均,p为自回归项,q为移动平均项,d为时间序列成为平稳时所做的差分次数。
[0097]
p阶自回归方程ar(p)的数学表达为:
[0098][0099]
其中,e
t
表示差值序列{ε
(0)
(1),ε
(0)
(2),


(0)
(n)},μ
t
为白噪声序列,p为自回归项,即自回归阶数,为自回归参数。
[0100]
q阶移动平均方程ma(q)的数学表达为:
[0101]et
=μ
t-θ1e
t-1-θ2e
t-2
‑…‑
θ
qet-q
[0102]
其中,q为移动平均项,即滑动平均阶数,θ1,θ2,

,θq为估计参数。
[0103]
s2063:根据所述自回归方程和移动平均方程,获取自回归移动平均模型;即结合上述自回归方程和移动平均方程,得到自回归移动平均模型,所述自回归移动平均模型的数学表达为:
[0104][0105]
s2064:对所述自回归移动平均模型中的差值序列进行差分处理,获取差分处理后的差值序列;通过对自回归移动平均模型中的差值序列e
t
进行差分处理,能够实现对差值序列e
t
的平滑处理。
[0106]
s2065:根据所述差分处理后的差值序列,获取差值预测序列;即根据差分处理后的差值序列和预设的差值预测规则,获取差值预测序列,所述差值预测序列的数学表达为:
[0107]et*
=(1-b
*
)de
t
[0108][0109]
其中,为e
t
的差值预测序列{ε
(1)
(1),ε
(1)
(2),


(1)
(n)},d值可以通过现有的adf(augmented dickey-fluller)方法得到,p,q的值可以通过现有技术中的函数确定,如python中statsmodels库的arma_order_select_ic函数等,此处不再赘述。
[0110]
s2066:根据所述访问次数预测序列和差值预测序列,完成所述访问次数预测模型的建立。即将所述访问次数预测序列减去相应的差值预测序列,完成对服务的访问次数的预测,所述访问次数预测模型的数学表达为:
[0111][0112]
其中,x
*
(k1)为第k1时刻的最终访问次数预测值,为mgm模型输出的第k1时刻的访问次数预测值,ε1(k1)为第k1时刻的访问次数预测差值。通过将差值序列用差分自回归移动平均模型表示,并预测新的差值序列,即差值预测序列,能够实现对预测访问次数进行误差校准,减少误差,提高访问次数预测的精准度。
[0113]
如图3所示,根据所述服务访问次数序列和资源消耗序列,确定资源消耗预测模型的步骤包括:
[0114]
s301:构建资源消耗预测线性方程,所述资源消耗预测方程包括用于表示服务访问次数和资源消耗之间的关联关系的关联参数;
[0115]
例如:根据预设的采集周期,定期采集预设时间段内服务容器的资源消耗量,获取资源消耗序列,所述资源消耗序列的数学表达为:c={c(1),c(1),

,c(n)},其中,c(n)为
第n时刻的服务容器的资源消耗量。由于服务的访问次数与其资源消耗量成正相关,因此,设其资源消耗预测线性方程的数学表达为:
[0116]
c=αx
(0)
β
[0117]
其中,x0为采集的服务访问次数,c为资源消耗量,α和β为关联参数。
[0118]
s302:对所述资源消耗预测线性方程进行矩阵转换,获取第一资源消耗预测矩阵方程,所述第一资源消耗预测矩阵方程为资源消耗预测线性方程的矩阵表示;所述第一资源消耗预测矩阵方程的数学表达为:
[0119]
c=b
**
θ
[0120]
其中,
[0121]
s303:将所述服务访问次数序列和所述资源消耗序列代入所述第一资源消耗预测矩阵方程中,利用最小二乘法,确定所述关联参数的取值;利用最小二乘法,确定所述关联参数的取值的数学表达为:θ=(b
**tb**
)b
**t
c,即[α β]=(b
**tb**
)b
**t
c,完成关联参数的取值的确定。
[0122]
s304:根据所述关联参数的取值,确定第二资源消耗预测矩阵方程,完成资源消耗预测模型的构建,即将关联参数的取值代入所述第一资源消耗预测矩阵方程,得到第二资源消耗预测矩阵方程,完成资源消耗预测模型的构建。
[0123]
如图4所示,对所述访问次数预测模型和资源消耗预测模型进行拟合,获取容器资源预测模型的步骤包括:
[0124]
s401:根据所述访问次数预测模型和所述资源消耗预测模型中的第二资源消耗预测方程,获取基于访问次数的容器资源预测模型;即将第二资源消耗预测方程代入访问次数预测模型中,获取基于访问次数的容器资源预测模型。
[0125]
所述容器资源预测模型的数学表达为:
[0126][0127]
其中,为k1时刻的资源消耗的预测值,α和β为第二资源消耗预测方程中的关联参数,为k1时刻的访问次数预测值,ε1(k1)为访问次数预测差值。
[0128]
如图5所示,利用所述容器资源预测模型,进行容器资源预测与调整的步骤包括:
[0129]
s501:利用所述容器资源预测模型进行容器消耗资源预测,获取服务的资源平均消耗预测值和资源峰值消耗预测值,所述资源平均消耗为固定时间段内服务所消耗资源的平均值,所述资源峰值消耗为固定时间段内服务所消耗资源的最大值;
[0130]
在一些实施例中,利用所述容器资源预测模型进行容器消耗资源预测,获取服务的资源平均消耗预测值和资源峰值消耗预测值的步骤包括:
[0131]
根据预设的采集周期,采集预设时间段内某一服务的资源平均消耗和资源峰值消耗;
[0132]
将所述资源平均消耗和所述资源峰值消耗分别输入所述容器资源预测模型,获取
所述资源平均消耗预测值和资源峰值消耗预测值。例如:定期采集某一服务的资源平均消耗c
avg
(k1)和资源峰值消耗c
peak
(k1),c
avg
(k1)表示从k
1-1时刻到k1时刻该服务的资源平均消耗,c
peak
(k1)表示从k
1-1时刻到k1时刻该服务的资源峰值消耗,将c
avg
(k1)和c
peak
(k1)分别输入容器资源预测模型中,获取k时刻的容器资源的资源平均消耗预测值和资源峰值消耗预测值,即相应的服务资源的资源平均消耗预测值和资源峰值消耗预测值。
[0133]
s502:将所述资源平均消耗预测值作为资源需求量,并将所述资源峰值消耗预测值作为资源限制量;
[0134]
s503:根据所述资源需求量和所述资源限制量,对服务的容器资源进行调整。
[0135]
在kebenetes容器系统中,需要调节的资源包括cpu及内存大小,按需求量和限制量进行区分,共有4种维度需要调节,即[cpu需求量,cpu限制量,内存需求量,内存限制量],因此,利用所述容器资源预测模型,进行容器资源预测与调整的步骤还包括:
[0136]
利用所述容器资源预测模型进行容器消耗资源预测,获取服务的cpu资源平均消耗预测值、cpu资源峰值消耗预测值、内存资源平均消耗预测值和内存资源峰值消耗预测值;例如:将某一服务的cpu平均资源消耗、cpu峰值资源消耗、内存平均资源消耗和内存峰值资源消耗分别输入容器资源预测模型,获取对应的cpu资源平均消耗预测值、cpu资源峰值消耗预测值、内存资源平均消耗预测值和内存资源峰值消耗预测值。
[0137]
根据所述cpu资源平均消耗预测值、cpu资源峰值消耗预测值、内存资源平均消耗预测值和内存资源峰值消耗预测值,获取cpu需求量、cpu限制量、内存需求量和内存限制量;即将cpu资源平均消耗预测值作为cpu需求量,将cpu资源峰值消耗预测值作为cpu限制量,将内存资源平均消耗预测值作为内存需求量,将内存资源峰值消耗预测值作为内存限制量。
[0138]
根据所述cpu需求量、cpu限制量、内存需求量和内存限制量,进行容器资源调整。较好地实现了对各阶段的微服务应用或容器的所需资源量的预测与调整,主动调整微服务应用的所需资源量,从而提高资源利用率,自动化程度较高,资源调整效果较优。
[0139]
实施例一:
[0140]
如图6所示,通用微服务框架一般分为业务层、网关层和内部服务,其主要特点是:一、前后端分离,二、统一的api网关,本实施例通过追踪一个典型微服务的访问次数及资源消耗情况,来说明如何动态地预测出各阶段微服务应用的所需资源量,主动地调整相应微服务应用或容器的所需资源量,从而在系统级提高资源利用率。
[0141]
步骤1:通过在网关层的api网关中部署的采集模块,定期采集一定时间段内微服务的前端容器的访问次数,获取服务访问次数序列x
(0)
={x
(0)
(1),x
(0)
(2),...,x
(0)
(n)},其中,x
(0)
为服务访问次数序列,x
(0)
(n)为从第n-1时刻到第n时刻的某一微服务的总访问次数。如每5分钟统计一次微服务的访问次数等。
[0142]
对上述服务访问次数序列进行一阶累加,获取第一一阶累加序列,所述第一一阶累加序列的数学表达为:
[0143]
x
(1)
={x
(1)
(1),x
(1)
(2),...,x
(1)
(n)}
[0144][0145]
其中,x
(1)
为第一一阶累加序列。
[0146]
步骤2:根据所述服务访问次数序列,建立访问次数预测模型,所述访问次数预测
模型为联合灰色代谢模型(metabolic grey model,mgm)及差分自回归移动平均模型(autoregressive integrated moving average model,arima)的拟合模型;
[0147]
具体的,对所述第一一阶累加序列建立白化形式的微分方程;所述微分方程的数学表达为:
[0148][0149]
其中,x
(1)
(t)为第一一阶累加序列中的数据,t为时间序列,a和b是微分方程中的可变常量。
[0150]
根据所述服务访问次数序列和第一一阶累加序列,利用最小二乘法,获取所述微分方程中的可变常量;即利用最小二乘法,得到微分方程中可变常量的取值。获取所述微分方程中的可变常量的数学表达为:
[0151]
[a,b]
t
=(b
t
b)-1btyn
[0152]
其中,
[0153]yn
=[x
(0)
(2),x
(0)
(3),

,x
(0)
(n)]
t
[0154][0155]
由上述数学表达,得到微分方程中的a和b的值。
[0156]
根据所述可变常量和所述微分方程,获取第二一阶累加序列;即将所述可变常量a、b的值代入上述微分方程中,获取第二一阶累加序列;利用所述第二一阶累加序列,进行访问次数预测,获取访问次数预测序列;即利用第二一阶累加序列,得到mgm模型,所述mgm模型的数学表达为:
[0157][0158]
其中,为k3 1时刻的访问次数预测值,
[0159]
利用所述mgm模型,进行访问次数预测,获取访问次数预测序列,所述访问次数预测序列的数学表达为:其中,为访问次数预测序列,为第n时刻的访问次数预测值。
[0160]
获取所述访问次数预测序列和所述服务访问次数序列之间的差值,获取差值序列;即将mgm模型预测的访问次数预测序列减去真实采集的服务访问次数序列x
(0)
={x
(0)
(1),x
(0)
(2),...,x
(0)
(n)},得到差值序列;将所述差值序列用预设的差分自回归移动平均模型arima进行表示,获取自回归方程和移动平均方程;在差分自回归移动平均模型arima(p,d,q)中,ar表示自回归,i为差分,ma为移动平均,p为自回归项,q为移动平均项,d为时间序列成为平稳时所做的差分次数。
[0161]
p阶自回归方程ar(p)的数学表达为:
[0162][0163]
其中,e
t
表示差值序列{ε
(0)
(1),ε
(0)
(2),


(0)
(n)},μ
t
为白噪声序列,p为自回归项,即自回归阶数,为自回归参数。
[0164]
q阶移动平均方程ma(q)的数学表达为:
[0165]et
=μ
t-θ1e
t-1-θ2e
t-2
‑…‑
θ
qet-q
[0166]
其中,q为移动平均项,即滑动平均阶数,θ1,θ2,

,θq为估计参数。
[0167]
根据所述自回归方程和移动平均方程,获取自回归移动平均模型;即结合上述自回归方程和移动平均方程,得到自回归移动平均模型,所述自回归移动平均模型的数学表达为:
[0168][0169]
对所述自回归移动平均模型中的差值序列进行差分处理,获取差分处理后的差值序列;根据所述差分处理后的差值序列,获取差值预测序列;即根据差分处理后的差值序列和预设的差值预测规则,获取差值预测序列,所述差值预测序列的数学表达为:
[0170][0171][0172]
其中,为e
t
的差值预测序列{ε
(1)
(1),ε
(1)
(2),


(1)
(n)},d值可以通过现有的adf(augmented dickey-fluller)方法得到,p,q的值可以通过现有技术中的函数确定,如python中statsmodels库的arma_order_select_ic函数等,此处不再赘述。
[0173]
根据所述访问次数预测序列和差值预测序列,完成所述访问次数预测模型的建立。即将所述访问次数预测序列减去相应的差值预测序列,完成对微服务的访问次数的预测,所述访问次数预测模型的数学表达为:
[0174][0175]
其中,x
*
(k1)为第k1时刻的最终访问次数预测值,为mgm模型输出的第k1时刻的访问次数预测值,ε1(k1)为第k1时刻的访问次数预测差值。
[0176]
步骤3:根据所述采集周期,采集微服务的容器的资源消耗量,获取资源消耗序列;根据所述服务访问次数序列和资源消耗序列,确定资源消耗预测模型;
[0177]
具体的,定期采集一定时间段内各微服务容器的资源消耗量,得到资源消耗序列c={c(1),c(1),

,c(n)},其中,c(n)为第n时刻的微服务容器的资源消耗量。由于微服务的访问次数与其资源消耗量成正相关,因此,设其资源消耗预测线性方程的数学表达为:
[0178]
c=αx
(0)
β
[0179]
其中,x0为采集的服务访问次数,c为资源消耗量,α和β为关联参数。
[0180]
对所述资源消耗预测线性方程进行矩阵转换,获取第一资源消耗预测矩阵方程,所述第一资源消耗预测矩阵方程为资源消耗预测线性方程的矩阵表示;所述第一资源消耗
预测矩阵方程的数学表达为:
[0181]
c=b
**
θ
[0182]
其中,
[0183]
将所述服务访问次数序列和所述资源消耗序列代入所述第一资源消耗预测矩阵方程中,利用最小二乘法,确定所述关联参数的取值;利用最小二乘法,确定所述关联参数的取值的数学表达为:θ=(b
**tb**
)b
**t
c,即[α β]=(b
**tb**
)b
**t
c,完成关联参数的取值的确定;将关联参数的取值代入所述第一资源消耗预测矩阵方程,得到第二资源消耗预测矩阵方程,完成资源消耗预测模型的构建。
[0184]
步骤3:对所述访问次数预测模型和资源消耗预测模型进行拟合,获取容器资源预测模型;利用所述容器资源预测模型,进行容器资源预测与调整。
[0185]
具体的,将第二资源消耗预测方程代入访问次数预测模型中,获取基于访问次数的容器资源预测模型,所述容器资源预测模型的数学表达为:
[0186][0187]
其中,为k1时刻的资源消耗的预测值,α和β为第二资源消耗预测方程中的关联参数,为k1时刻的访问次数预测值,ε1(k1)为访问次数预测差值。
[0188]
利用所述容器资源预测模型进行容器消耗资源预测,获取微服务的资源平均消耗预测值和资源峰值消耗预测值,所述资源平均消耗为固定时间段内微服务所消耗资源的平均值,所述资源峰值消耗为固定时间段内微服务所消耗资源的最大值;
[0189]
在一些实施例中,利用所述容器资源预测模型进行容器消耗资源预测,获取微服务的资源平均消耗预测值和资源峰值消耗预测值的步骤包括:
[0190]
根据预设的采集周期,采集预设时间段内某一微服务的资源平均消耗和资源峰值消耗;
[0191]
将所述资源平均消耗和所述资源峰值消耗分别输入所述容器资源预测模型,获取所述资源平均消耗预测值和资源峰值消耗预测值。例如:定期采集某一微服务的资源平均消耗c
avg
(k1)和资源峰值消耗c
peak
(k1),c
avg
(k1)表示从k
1-1时刻到k1时刻该微服务的资源平均消耗,c
peak
(k1)表示从k
1-1时刻到k1时刻该微服务的资源峰值消耗,将c
avg
(k1)和c
peak
(k1)分别输入容器资源预测模型中,获取k时刻的容器资源的资源平均消耗预测值和资源峰值消耗预测值,即相应的微服务资源的资源平均消耗预测值和资源峰值消耗预测值。
[0192]
进一步地,由于在kebenetes容器系统中,需要调节的资源包括cpu及内存大小,按需求量和限制量进行区分,共有4种维度需要调节,即[cpu需求量,cpu限制量,内存需求量,内存限制量],因此,利用所述容器资源预测模型,进行容器资源预测与调整的步骤还可以为:利用所述容器资源预测模型进行容器消耗资源预测,获取微服务的cpu资源平均消耗预测值、cpu资源峰值消耗预测值、内存资源平均消耗预测值和内存资源峰值消耗预测值;例如:将某一微服务的cpu平均资源消耗、cpu峰值资源消耗、内存平均资源消耗和内存峰值资
源消耗分别输入容器资源预测模型,获取对应的cpu资源平均消耗预测值、cpu资源峰值消耗预测值、内存资源平均消耗预测值和内存资源峰值消耗预测值。根据所述cpu资源平均消耗预测值、cpu资源峰值消耗预测值、内存资源平均消耗预测值和内存资源峰值消耗预测值,获取cpu需求量、cpu限制量、内存需求量和内存限制量;即将cpu资源平均消耗预测值作为cpu需求量,将cpu资源峰值消耗预测值作为cpu限制量,将内存资源平均消耗预测值作为内存需求量,将内存资源峰值消耗预测值作为内存限制量。根据所述cpu需求量、cpu限制量、内存需求量和内存限制量,进行容器资源调整,实现对微服务中容器资源的动态调整,精确度较高,资源利用率较高。
[0193]
如图7所示,本实施例还提供一种容器资源调整系统,包括:
[0194]
访问次数预测模型构建模块,用于预先设置采集周期,采集服务的前端容器的访问次数,获取服务访问次数序列;根据所述服务访问次数序列,建立访问次数预测模型;
[0195]
资源消耗预测模型构建模块,用于根据所述采集周期,采集服务的容器的资源消耗量,获取资源消耗序列;根据所述服务访问次数序列和资源消耗序列,确定资源消耗预测模型;
[0196]
容器资源预测模型获取模块,用于对所述访问次数预测模型和资源消耗预测模型进行拟合,获取容器资源预测模型;
[0197]
资源调整模块,用于利用所述容器资源预测模型,进行容器资源预测与调整;所述访问次数预测模型构建模块、资源消耗预测模型构建模块、容器资源预测模型获取模块和资源调整模块连接。本实施例中的容器资源调整系统,通过按照预先设置的采集周期,采集服务中前端容器的访问次数,获取服务访问次数序列,根据服务访问次数序列,建立访问次数预测模型,根据采集周期,采集服务中容器的资源消耗量,获取资源消耗序列,根据服务访问次数序列和资源消耗序列,确定资源消耗预测模型,并对访问次数预测模型和资源消耗预测模型进行拟合,获取容器资源预测模型,进而利用容器资源预测模型进行容器资源预测与调整,实现了访问次数和资源需求的有机结合,同时,实现了对微服务应用的资源量的动态调整,有效提高资源利用率,成本较低,自动化程度较高。
[0198]
在一些实施例中,所述服务为微服务,根据所述服务访问次数序列,建立访问次数预测模型的步骤包括:
[0199]
对所述服务访问次数序列进行一阶累加,获取第一一阶累加序列;
[0200]
对所述第一一阶累加序列建立白化形式的微分方程;
[0201]
根据所述服务访问次数序列和第一一阶累加序列,利用最小二乘法,获取所述微分方程中的可变常量;
[0202]
根据所述可变常量和所述微分方程,获取第二一阶累加序列;
[0203]
利用所述第二一阶累加序列,进行访问次数预测,获取访问次数预测序列;
[0204]
根据所述服务访问次数序列和访问次数预测序列,建立访问次数预测模型。
[0205]
在一些实施例中,根据所述服务访问次数序列和访问次数预测序列,建立访问次数预测模型的步骤包括:
[0206]
获取所述访问次数预测序列和所述服务访问次数序列之间的差值,获取差值序列;
[0207]
将所述差值序列用预设的差分自回归移动平均模型进行表示,获取自回归方程和
移动平均方程;
[0208]
根据所述自回归方程和移动平均方程,获取自回归移动平均模型;
[0209]
对所述自回归移动平均模型中的差值序列进行差分处理,获取差分处理后的差值序列;
[0210]
根据所述差分处理后的差值序列,获取差值预测序列;
[0211]
根据所述访问次数预测序列和差值预测序列,完成所述访问次数预测模型的建立。
[0212]
在一些实施例中,根据所述服务访问次数序列和资源消耗序列,确定资源消耗预测模型的步骤包括:
[0213]
构建资源消耗预测线性方程,所述资源消耗预测方程包括用于表示服务访问次数和资源消耗之间的关联关系的关联参数;
[0214]
对所述资源消耗预测线性方程进行矩阵转换,获取第一资源消耗预测矩阵方程,所述第一资源消耗预测矩阵方程为资源消耗预测线性方程的矩阵表示;
[0215]
将所述服务访问次数序列和所述资源消耗序列代入所述第一资源消耗预测矩阵方程中,利用最小二乘法,确定所述关联参数的取值;
[0216]
根据所述关联参数的取值,确定第二资源消耗预测矩阵方程,完成资源消耗预测模型的构建。
[0217]
在一些实施例中,对所述访问次数预测模型和资源消耗预测模型进行拟合,获取容器资源预测模型的步骤包括:
[0218]
根据所述访问次数预测模型和所述资源消耗预测模型中的第二资源消耗预测方程,获取基于访问次数的容器资源预测模型;
[0219]
所述容器资源预测模型的数学表达为:
[0220][0221]
其中,为k1时刻的资源消耗的预测值,α和β为第二资源消耗预测方程中的关联参数,为k1时刻的访问次数预测值,ε1(k1)为访问次数预测差值。
[0222]
在一些实施例中,利用所述容器资源预测模型,进行容器资源预测与调整的步骤包括:
[0223]
利用所述容器资源预测模型进行容器消耗资源预测,获取服务的资源平均消耗预测值和资源峰值消耗预测值,所述资源平均消耗为固定时间段内服务所消耗资源的平均值,所述资源峰值消耗为固定时间段内服务所消耗资源的最大值;
[0224]
将所述资源平均消耗预测值作为资源需求量,并将所述资源峰值消耗预测值作为资源限制量;
[0225]
根据所述资源需求量和所述资源限制量,对服务的容器资源进行调整。
[0226]
在一些实施例中,利用所述容器资源预测模型,进行容器资源预测与调整的步骤还包括:
[0227]
利用所述容器资源预测模型进行容器消耗资源预测,获取服务的cpu资源平均消耗预测值、cpu资源峰值消耗预测值、内存资源平均消耗预测值和内存资源峰值消耗预测值;
[0228]
根据所述cpu资源平均消耗预测值、cpu资源峰值消耗预测值、内存资源平均消耗预测值和内存资源峰值消耗预测值,获取cpu需求量、cpu限制量、内存需求量和内存限制量;
[0229]
根据所述cpu需求量、cpu限制量、内存需求量和内存限制量,进行容器资源调整。
[0230]
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本实施例中的任一项方法。
[0231]
本实施例还提供一种电子终端,包括:处理器及存储器;
[0232]
所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行本实施例中任一项方法。
[0233]
本实施例中的计算机可读存储介质,本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0234]
本实施例提供的电子终端,包括处理器、存储器、收发器和通信接口,存储器和通信接口与处理器和收发器连接并完成相互间的通信,存储器用于存储计算机程序,通信接口用于进行通信,处理器和收发器用于运行计算机程序,使电子终端执行如上方法的各个步骤。
[0235]
在本实施例中,存储器可能包含随机存取存储器(random access memory,简称ram),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0236]
上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0237]
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
再多了解一些

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

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

相关文献