基于粒子群优化的Docker容器调度方法技术

技术编号:19857057 阅读:14 留言:0更新日期:2018-12-22 11:36
本发明专利技术揭示了一种基于粒子群优化的Docker容器调度方法,包括如下步骤:S1、粒子编码步骤,将粒子群算法应用到Docker容器的调度中,通过自然数编码,将粒子群中的粒子编码长度与容器的任务相对应;S2、种群初始化步骤,在问题解空间内随机初始化NP个粒子的位置和速度,设定粒子群算法参数;S3、适应度函数步骤,使用适应度函数评价粒子的好坏,粒子以适应度函数大小为目标,不断迭代更新,直至满足停止条件,根据适应度函数的结果,更新粒子最优值和总体最优值;S4、模拟退火步骤,对已更新的最优值进行模拟退火,避免粒子群算法陷入局部最优解。本发明专利技术所提出的调度方法不仅仅实现了Docker集群各节点的负载均衡,还能完全发挥集群的整体性能。

【技术实现步骤摘要】
基于粒子群优化的Docker容器调度方法
本专利技术涉及一种调度方法,具体而言,涉及一种基于粒子群优化的Docker容器调度方法,属于云计算虚拟化

技术介绍
随着近年来信息技术以及互联网行业的快速发展,云计算己经成为当今信息
中最重要的概念之一,被称为IT产业的第四次革命,成为了未来互联网和移动互联网相结合的一种新兴的计算模式。Docker是基于Linux容器(LXC)创建的一个应用容器引擎,属于操作系统层虚拟化,主要用于解决服务器应用快速构建、部署和分享的问题。Docker自诞生以来发展迅速,现在主流的Linux操作系统都已经支持Docker,同时该引擎也得到了包括谷歌、微软、IBM、亚马逊以及VMware在内的众多企业的大力支持,并在这些公司的云平台及服务产品中得到了广泛地应用。应用程序开发者可使用Docker打包应用和运行所需的依赖包到一个可移植的容器中,然后发布到任何支持Docker的机器上,从而实现轻量级的虚拟化。目前云计算的基石是操作系统级别的隔离,在同一台物理服务器上虚拟出多个主机。Docker的出现,实际上是完成了一种应用程序级别的隔离,它改变目前基本的开发、操作单元,由直接操作虚拟主机(VM),转换到操作程序运行的容器上来。此外,Docker集群管理工具Swarm的出现进一步促进了Docker在集群中的使用,为云计算平台及数据中心的虚拟化方法提供了一种新的思路。当前的Docker容器调度主要基于两种方式,一种是传统的调度方法,另一种是启发式调度算法。如何将上述这两种方式进行适当的结合,更好地实现集群各节点的负载均衡、发挥集群的整体性能,从而充分地体现出利用轻量级虚拟化Docker的优势,也就成为了目前本领域内技术人员所亟待解决的问题。
技术实现思路
鉴于现有技术存在上述缺陷,本专利技术的目的是提出一种基于粒子群优化的Docker容器调度方法。一种基于粒子群优化的Docker容器调度方法,包括如下步骤:S1、粒子编码步骤,将粒子群算法应用到Docker容器的调度中,通过自然数编码,将粒子群中的粒子编码长度与容器的任务相对应;S2、种群初始化步骤,在问题解空间内随机初始化NP个粒子的位置和速度,设定粒子群算法参数;S3、适应度函数步骤,使用适应度函数评价粒子的好坏,粒子以适应度函数大小为目标,不断迭代更新,直至满足停止条件,随后根据适应度函数的结果,更新每个粒子的粒子最优值和所有粒子的总体最优值;S4、模拟退火步骤,对已更新的粒子最优值和总体最优值进行模拟退火,避免粒子群算法陷入局部最优解。优选地,所述S1粒子编码步骤,包括如下操作:设有m个任务,一个任务对应于一个Docker容器,Docker集群中有n个节点资源,则粒子可编码为n为向量,表达式为,P={p1,p2,…pi…,pm},其中,1≤pi≤n,粒子的每一维坐标均表示一个Docker容器的编号,每个Docker容器均有一个任务,任意一维分量pm表示分配给此容器的资源号。优选地,所述S2种群初始化步骤,包括如下操作:设种群规模为NP,对m个任务在n个资源节点上进行调度,种群初始化时系统随机产生NP个粒子,每个粒子的位置均由向量P表示,第i个粒子的表达式为,pi={pi1,pi2,…,pij,…,pim},其中,1≤pij≤n表示任务j分配到第pij号节点上,pij初始化为(1,n)之间的随机整数,第i个粒子的速度由向量v表示为,vi={vi1,vi2,…,vij,…,vim},其中,1≤i≤NP,-n≤vij≤n,vij初始化为(-n,n)之间的随机数。优选地,所述S3适应度函数步骤,包括如下子步骤:S31、利用节点的CPU使用率对服务等级协议进行评价;S32、利用剩余资源利用率对资源使用率进行评价;S33、依据对目标优化的要求设定相应的权值,获得综合适应度函数。优选地,S31中所使用的基于CPU使用率的服务等级协议评价函数的表达式为:其中,Ucpu为节点的CPU使用率,p为规定保证服务等级协议的阈值范围。优选地,S32中所使用的剩余资源利用率函数的表达式为:其中,Ri为第i维剩余资源,Rmin为剩余资源的最小值。优选地,S33中所获得的综合适应度函数的表达式为:f(Ucpu,Umem)=K1fsLA+K2fr,其中,Ucpu为节点的CPU使用率,Umem为节点的内存使用率,K1、K2为权值。优选地,在所述S4模拟退火步骤中,退火过程的表达式为:T(t+1)=α×T(t),其中,α为退火模拟中冷却衰减因子,T为温度,t为控制参数。与现有技术相比,本专利技术的优点主要体现在以下几个方面:本专利技术采用优化过的粒子群算法来完成Docker容器的调度,通过自然数编码将任务放置到相应的资源节点上,同时利用解码来找到资源节点拥有哪些任务,整个过程逻辑清晰,效果显著。同时,本专利技术中使用了模拟退火思想,防止粒子群算法陷入局部最优解,有效地提高了粒子群的全局搜索能力、效率和最优解的准确度。此外,本专利技术也为同领域内的其他相关问题提供了参考,可以以此为依据进行拓展延伸,运用于领域内其他调度方法的技术方案中,具有十分广阔的应用前景。总体而言,本专利技术所提出的调度方法不仅仅实现了Docker集群各节点的负载均衡,还能完全发挥集群的整体性能,从而充分地发挥出Docker容器轻量级的优势,具有很高的使用及推广价值。以下便结合实施例附图,对本专利技术的具体实施方式作进一步的详述,以使本专利技术技术方案更易于理解、掌握。附图说明图1为本专利技术的算法流程图;图2为虚拟机与Docker容器的对比图;图3是将优化粒子群算法融合到Docker容器中图;图4为Docker集群中容器任务调度图;图5为Docker集群中容器的性能图。具体实施方式如图1~图5所示,本专利技术揭示了一种基于粒子群优化的Docker容器调度方法,包括如下步骤:S1、粒子编码步骤,将粒子群算法应用到Docker容器的调度中,通过自然数编码,将粒子群中的粒子编码长度与容器的任务相对应;S2、种群初始化步骤,在问题解空间内随机初始化NP个粒子的位置和速度,设定粒子群算法参数;S3、适应度函数步骤,使用适应度函数评价粒子的好坏,粒子以适应度函数大小为目标,不断迭代更新,直至满足停止条件,随后根据适应度函数的结果,更新每个粒子的粒子最优值和所有粒子的总体最优值;S4、模拟退火步骤,对已更新的粒子最优值和总体最优值进行模拟退火,避免粒子群算法陷入局部最优解。具体而言,所述S1粒子编码步骤,包括:将粒子群算法应用到Docker容器的调度中,由于在Docker容器调度中任务只能取离散值,对粒子的编码也只能是离散的值。所以,首先要对粒子进行编码,将粒子的位置、速度与Docker调度任务结合起来。在本实施例中采用自然数编码,让粒子的编码长度与容器的任务相对应。设有m个任务,一个任务对应于一个Docker容器,Docker集群中有n个节点资源,则粒子可编码为n为向量,表达式为,P={p1,p2,…pi…,pm},其中,1≤pi≤n,粒子的每一维坐标均表示一个Docker容器的编号,每个Docker容器均有一个任务,任意一维分量pm表示分配给此容器的资源号。举例而言,当任务个数为m=12时,Docker节点资源个数n=5时,即本文档来自技高网
...

【技术保护点】
1.一种基于粒子群优化的Docker容器调度方法,其特征在于,包括如下步骤:S1、粒子编码步骤,将粒子群算法应用到Docker容器的调度中,通过自然数编码,将粒子群中的粒子编码长度与容器的任务相对应;S2、种群初始化步骤,在问题解空间内随机初始化NP个粒子的位置和速度,设定粒子群算法参数;S3、适应度函数步骤,使用适应度函数评价粒子的好坏,粒子以适应度函数大小为目标,不断迭代更新,直至满足停止条件,随后根据适应度函数的结果,更新每个粒子的粒子最优值和所有粒子的总体最优值;S4、模拟退火步骤,对已更新的粒子最优值和总体最优值进行模拟退火,避免粒子群算法陷入局部最优解。

【技术特征摘要】
1.一种基于粒子群优化的Docker容器调度方法,其特征在于,包括如下步骤:S1、粒子编码步骤,将粒子群算法应用到Docker容器的调度中,通过自然数编码,将粒子群中的粒子编码长度与容器的任务相对应;S2、种群初始化步骤,在问题解空间内随机初始化NP个粒子的位置和速度,设定粒子群算法参数;S3、适应度函数步骤,使用适应度函数评价粒子的好坏,粒子以适应度函数大小为目标,不断迭代更新,直至满足停止条件,随后根据适应度函数的结果,更新每个粒子的粒子最优值和所有粒子的总体最优值;S4、模拟退火步骤,对已更新的粒子最优值和总体最优值进行模拟退火,避免粒子群算法陷入局部最优解。2.根据权利要求1所述的基于粒子群优化的Docker容器调度方法,其特征在于,所述S1粒子编码步骤,包括如下操作:设有m个任务,一个任务对应于一个Docker容器,Docker集群中有n个节点资源,则粒子可编码为n为向量,表达式为,P={p1,p2,…pi…,pm},其中,1≤pi≤n,粒子的每一维坐标均表示一个Docker容器的编号,每个Docker容器均有一个任务,任意一维分量pm表示分配给此容器的资源号。3.根据权利要求1所述的基于粒子群优化的Docker容器调度方法,其特征在于,所述S2种群初始化步骤,包括如下操作:设种群规模为NP,对m个任务在n个资源节点上进行调度,种群初始化时系统随机产生NP个粒子,每个粒子的位置均由向量P表示,第i个粒子的表达式为,pi={pi1,pi2,…,pij,…,pim},其中,1≤pij≤n表示任务j分配到第pij号节点...

【专利技术属性】
技术研发人员:陈建新李连万周亮闫午阳
申请(专利权)人:南京邮电大学
类型:发明
国别省市:江苏,32

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

1