一种基于Docker技术的容器调度方法与流程

文档序号:13421561阅读:377来源:国知局

本发明涉及一种基于docker技术的容器调度方法。



背景技术:

docker自开源以来,就受到了广泛的关注和讨论,docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。后期还发布了原生态容器集群管理工具swarm,用于管理docker集群,使docker集群对于用户而言当于一个虚拟的整体。swarm主要完成的工作是:根据调度策略将容器运行在合适的节点上,由于节点上运行容器的不同,其资源利用率也有所差别。而每个节点的资源利用率又决定了整个集群的负载情况。因此,集群调度策略的优略就显得尤为重要。

不同的容器需求不同维度的资源,当一个节点任意维度的资源耗尽时,如果有多维资源需求的容器被启动,那么该节点将不能满足创建容器的需求,也就不能运行此容器。在这种情况下,其他维度的剩余资源就被闲置了下来,而这些未被利用的资源就称为资源碎片,这是一种极大的浪费。所以就需要减少资源碎片的大小。同时,集群整体负载的均衡情况决定了集群在服务时的整体表现,为了提高集群的服务质量,需要保证整个集群的负载均衡。

技术实现要素:

本发明所要解决的技术问题是,提供了一种可以调高资源利用率以及保持集群资源均衡负载的容器调度方法。

为解决上述技术问题,本发明采用的技术方案为:

一种基于docker技术的容器调度方法,在调度模块中增加信息收集模块,所述信息收集模块用于周期性的获取容器在节点中的资源分配信息,生成相应的周期性的时间序列;

计算容器在节点中分配的静态资源利用权值;

根据前一段时间序列,建立动态权值预测模型,然后对后一周期容器在节点中动态资源利用权值进行预测;

根据所述静态资源利用权值与所述动态资源利用权值进行综合排序;

根据所述综合排序结果,对容器部署节点进行分配;

根据周期性时间序列得到的新的动态资源利用权值,进行动态调整容器的资源分配。

所述资源分配信息包括容器的cpu、内存和宽带信息。

所述静态资源利用权值采用所述分配资源利用率方差进行赋值。

所述动态资源利用权值基于灰色模型建立动态权值预测模型,求得周期性的动态权值。

所述静态资源利用权值算法如下:

节点资源维度为d[1,2,…,d],节点已分配的资源为u[u1,u2,…ud],节点资源总量为t[t1,t2,…td],节点待分配资源为p[p1,p2,…pd],节点资源利用率为r[r1,r2,…rd],根据式(1)计算每个节点分配此容器的静态资源利用率:

(1)

根据式(2)计算多维度平均资源利用率:

(2)

根据式(3)计算每个节点资源配置资源方差值:

(3)

所述动态权值预测模型建立方法如下:

获取节点前n时刻内的多维度资源利用率,组成原始时间序列

将所述原始时间序列经累加生成法生成新的序列

对所述新的序列建立gm(1,1)模型对应的微分方程,见下式(4),:

(4)

式中,α为发展灰数,为内生成控制灰数;

,利用最小二乘法求解,得:

(5)

对b矩阵(6)和y矩阵(7)进行矩阵运算,根据式(5)求出发展灰数α以及内生成控制灰数

(6)

(7)

将发展灰数α以及内生成控制灰数代入预测模型公式(8)中,根据预测模型公式(8)计算出时间区间[1,n+1]的分配资源的预测模型值

(8)

根据公式(9)将相邻预测模型值相减,得出分配资源在时间区间[1,n+1]的预测值值

(9)

根据公式(10)对预测模型进行残差检验,评估模型是否达到要求;

(10)

对下一周期的分配资源预测值求和得出动态权值。

本发明所达到的有益效果:本发明结合静态资源利用权值与动态资源利用权值,可以在节点分配上,显著提高资源利用率,并在后期动态的调整资源分配,确保能够均衡集群的动态负载。

具体实施方式

下面对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。

一种基于docker技术的容器调度方法,在调度模块中增加信息收集模块,所述信息收集模块用于周期性的获取容器在节点中的资源分配信息,生成相应的周期性的时间序列,所述资源分配信息包括容器的cpu、内存和宽带信息,

计算容器在节点中分配的静态资源利用权值;所述静态资源利用权值采用所述分配资源利用率方差进行赋值,静态资源利用权值算法如下:

节点资源维度为d[1,2,…,d],节点已分配的资源为u[u1,u2,…ud],节点资源总量为t[t1,t2,…td],节点待分配资源为p[p1,p2,…pd],节点资源利用率为r[r1,r2,…rd],根据式(1)计算每个节点分配此容器的静态资源利用率:

(1)

根据式(2)计算多维度平均资源利用率:

(2)

根据式(3)计算每个节点资源配置资源方差值:

(3)

根据前一段时间序列,建立动态权值预测模型,然后对后一周期容器在节点中动态资源利用权值进行预测;所述动态资源利用权值基于灰色模型建立动态权值预测模型,求得周期性的动态权值。

所述动态权值预测模型建立方法如下:

获取节点前n时刻内的多维度资源利用率,组成原始时间序列

将所述原始时间序列经累加生成法生成新的序列

对所述新的序列建立gm(1,1)模型对应的微分方程,见下式(4),:

(4)

式中,α为发展灰数,为内生成控制灰数;

,利用最小二乘法求解,得:

(5)

对b矩阵(6)和y矩阵(7)进行矩阵运算,根据式(5)求出发展灰数α以及内生成控制灰数

(6)

(7)

将发展灰数α以及内生成控制灰数代入预测模型公式(8)中,根据预测模型公式(8)计算出时间区间[1,n+1]的分配资源的预测模型值

(8)

根据公式(9)将相邻预测模型值相减,得出分配资源在时间区间[1,n+1]的预测值值

(9)

根据公式(10)对预测模型进行残差检验,评估模型是否达到要求;

(10)

对下一周期的分配资源预测值求和得出动态权值。

根据所述静态资源利用权值与所述动态资源利用权值进行综合排序;可以采用分次排序或者是进行权重加和排序,根据所述综合排序结果,对容器部署节点进行分配;

根据周期性时间序列得到的新的动态资源利用权值,进行动态调整容器的资源分配。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1