一种基于双排列遗传算法的容器放置方法技术

技术编号:26417887 阅读:20 留言:0更新日期:2020-11-20 14:12
本发明专利技术公开了一种基于双排列遗传算法的容器放置方法,其过程如下:首先定义问题和数据中心的能耗模型,以及容器调度的优化目标;其次根据模型以及调度优化目标进行种群初始化,对表示容器和虚拟机分配的个体进行双排列染色体编码;并通过计算个体的适应度值进行遗传操作,产生新的个体和种群;最后通过不断的更新个体和种群获得最优的后代,并通过解码得出最优的容器放置策略。该发明专利技术根据容器云资源分配的需求,将容器合理地分配到虚拟机,虚拟机合理地映射到服务器,并在保持云服务质量的同时,通过容器分配、资源配置等来对云计算中心的能耗进行优化。

【技术实现步骤摘要】
一种基于双排列遗传算法的容器放置方法
本专利技术涉及云服务器能耗优化领域,特别涉及一种基于双排列遗传算法的容器放置方法。
技术介绍
近年来,云计算在业界内的应用已经越来越广泛,其运作模式由最开始的基础架构即服务IaaS(InfrastructureasaService)、平台即服务PaaS(PlatformasaService)、软件即服务SaaS(SoftwareasaService),到现在增加的容器即服务CaaS(ContainerasaService)都极大地促进了云计算的发展。容器的出现实现了轻量级的环境和性能的隔离、快速灵活的部署和细粒度的资源共享,使得云计算能够在更多的领域进行应用。同时,由于容器技术无需虚拟化硬件以及完整的操作系统,“敏捷”和“高性能”成为了容器相较于虚拟机最大的优势。特别是在CaaS架构下,容器的使用对云数据中心的资源管理具有很重要的影响。容器的发展极大地促进了云计算的应用领域的推广,但是由于规模效益带来的能耗问题也不容忽视。据统计,2010年位于全世界各地的数据中心产生的能耗已经占全球总能耗的1.5%;在美国,这个数值达到了2.2%,一个大型的数据中心所产生的电力消耗与一座中等城市的家庭电力消耗相当。实时视频流、在线游戏以及移动设备已经占到所有数据量的60%,而2020年这一数字上升到80%。同时,相关的研究报告指出,预计到2025年,全球的数据中心总共的设备将达到500亿,产生的能耗预计会达到总量的20%。大规模的电力消耗极大地限制了云计算的发展,因此如何通过更有效的资源配置以及调度策略来减少能源的消耗,是一个值得研究的课题。虽然目前国内外已有大量学者开始从服务器节点管理(主要通过监控服务器负载变化来进行动态电压频率调整DVFS或者减少空闲主机方式来降低能耗)、任务调度(主要通过将任务分配到不同计算单元来优化任务完成时间和系统能耗)以及虚拟机调度(主要通过在保证系统可靠性以及服务质量的同时对虚拟机进行部署和迁移来降低系统的能耗)三方面研究关于如何降低数据中心能耗的问题,但是随着容器技术的发展、普及和应用,容器化的云服务也成为了云数据中心内被调度的目标,因此研究如何通过优化容器调度来降低数据中心能耗实现节能的目的也有重要的意义。容器的发展提升了云计算的弹性和灵活性。但是由于容器在资源隔离、核心技术上的不同,传统的任务或虚拟机调度方法应用到容器上非常局限。相比于服务器整合、虚拟机调度和任务调度,容器虽然可以实现更细粒度的调度,但是由于容器在资源隔离、核心技术上的不同,容器隔离的不完全也给容器的资源调度带来了一系列的问题。如传统的虚拟机调度程序将虚拟机视为有下层虚拟机管理程序维护的标准化和独立单元,然而容器间彼此更近,存在复杂的依赖关系,意味着隔离没有虚拟机强。此外调度程序为了保持负载平衡,也会导致容器内部之间的资源争用,因此如何改进容器化后云服务的调度程序,就成为了一个问题。目前kubernetes、Mesos等容器编排系统被广泛应用,不过它们所用的调度方法还处于初级阶段,对于业务数据量比较庞大的场景时用户需求很难满足。在容器节能方面的调度,现有的研究主要是基于容器的迁移和放置实现。Shahin等人提出数据中心基于容器的能耗优化的调度,提出的调度方法采用处理整型线性/二次规划优化问题,同时为了减少算法的复杂度和计算时间,提出了基于分割解的算法和回调方法。其提出的方案有效性尚未得到评估。DONG等人提出了基于贪婪算法的容器放置策略,将容器分配到能耗最低且满足资源限制的主机,但是其采用的方法忽略了主机的负载均衡问题。容器调度与其他维度的调度如虚拟机调度、任务调度相比具有更细粒度的调度。不过针对容器的性能研究还比较少,所以对容器云环境实现节能目的是现今云计算领域的重点方向。对于一些容器编排系统本身具有默认的调度策略,如DockerSwarm是当前广泛应用的集群管理工具,Swarm有三种算法来安排集群中的容器:Spread、Binpack和Random。这三种算法在调度容器时存在不同的缺点。例如在Spread算法中可能存在存储空间碎片,无法充分利用集群的空间;Binpack算法进行集中分配,被认为过度处理节点。
技术实现思路
本专利技术的主要目的在于克服现有技术的缺点与不足,提供一种基于双排列遗传算法的容器放置方法,该方法能根据容器云资源分配的需求,将容器合理地分配到虚拟机,虚拟机合理地映射到服务器,并在保持云服务质量的同时,对云计算中心的能耗进行优化。本专利技术的目的通过以下的技术方案实现:一种基于双排列遗传算法的容器放置方法,包括以下步骤:第一步骤、定义问题以及数据中心能耗模型;第二步骤、定义容器调度目标;第三步骤、初始化种群,根据模型以及调度优化目标对容器、虚拟机的分配进行染色体编码;第四步骤、计算适应度函数,获得个体的适应度值;第五步骤、进行选择操作:根据每个个体的适应度值,从种群中选择适应度值高的个体,复制到下一代种群,同时在剩余个体中通过选择相应的父代染色体进行遗传操作,以便产生新的个体;第六步骤、进行交叉操作:根据不同的交叉方法分别对代表容器分配和虚拟机分配的父代染色体进行交叉;第七步骤、进行变异操作:通过不同的变异方法分别对代表容器分配和虚拟机分配的父代染色体进行变异,产生新的个体,形成新的种群;第八步骤、从第四步骤开始重复执行,直到满足终止条件输出最优的容器分配策略。所述第一步骤,具体为:若将问题定义为给定容器集{1,…,N},要求基于容器云的资源分配将容器分配给虚拟机集合{1,…,L},并将虚拟机分配给物理机集合{1,…,M},目标是使所有物理机的聚合功耗Pdc最小;则数据中心的能耗模型被定义为其中Pk表示物理机k的功耗;Ucpu(k)表示服务器k的CPU利用率,为服务器k在利用率为U1时的功耗,由于资源的限制,式(1)和(2)还需满足约束条件其中其分别表示容器和虚拟机只能被分配一次;此外对于容器,认为应用程序和容器之间是一对一映射,也就是说,这里定义容器资源需求范围介于1到VM类型数量的容量。由于两级分配模型主要反映在资源利用率上,因此虚拟机的CPU利用率和内存利用率通过容器的CPU和内存总量以及虚拟机的资源总量计算,计算方式如下:由此可得:所述第二步骤,具体为:由于容器调度的最终目的是减少数据中心的能耗,因此将调度目标定义为:同时满足约束条件:公式(3)、(4)。第三步骤中,所述对容器、虚拟机的分配进行染色体编码,具体为:将表示容器分配以及虚拟机分配的个体的表现形式表示为双排列的染色体,其中一个列表表示容器的分配策略,另一个列表表示虚拟机的分配策略;在容器分配列表中,列表的每一个条目表示容器的索引,其值与索引号对应,在种群初始化时可随机排列容器的索引,其列表长度代表容器的数量;在虚拟机分配列表中,列表的每个条目表示一个虚拟机本文档来自技高网
...

【技术保护点】
1.一种基于双排列遗传算法的容器放置方法,其特征在于,包括以下步骤:/n第一步骤、定义问题以及数据中心能耗模型;/n第二步骤、定义容器调度目标;/n第三步骤、初始化种群,根据模型以及调度优化目标对容器、虚拟机的分配进行染色体编码;/n第四步骤、计算适应度函数,获得个体的适应度值;/n第五步骤、进行选择操作:根据每个个体的适应度值,从种群中选择适应度值高的个体,复制到下一代种群,同时在剩余个体中通过选择相应的父代染色体进行遗传操作,以便产生新的个体;/n第六步骤、进行交叉操作:根据不同的交叉方法分别对代表容器分配和虚拟机分配的父代染色体进行交叉;/n第七步骤、进行变异操作:通过不同的变异方法分别对代表容器分配和虚拟机分配的父代染色体进行变异,产生新的个体,形成新的种群;/n第八步骤、从第四步骤开始重复执行,直到满足终止条件输出最优的容器分配策略。/n

【技术特征摘要】
1.一种基于双排列遗传算法的容器放置方法,其特征在于,包括以下步骤:
第一步骤、定义问题以及数据中心能耗模型;
第二步骤、定义容器调度目标;
第三步骤、初始化种群,根据模型以及调度优化目标对容器、虚拟机的分配进行染色体编码;
第四步骤、计算适应度函数,获得个体的适应度值;
第五步骤、进行选择操作:根据每个个体的适应度值,从种群中选择适应度值高的个体,复制到下一代种群,同时在剩余个体中通过选择相应的父代染色体进行遗传操作,以便产生新的个体;
第六步骤、进行交叉操作:根据不同的交叉方法分别对代表容器分配和虚拟机分配的父代染色体进行交叉;
第七步骤、进行变异操作:通过不同的变异方法分别对代表容器分配和虚拟机分配的父代染色体进行变异,产生新的个体,形成新的种群;
第八步骤、从第四步骤开始重复执行,直到满足终止条件输出最优的容器分配策略。


2.根据权利要求1所述基于双排列遗传算法的容器放置方法,其特征在于,所述第一步骤,具体为:若将问题定义为给定容器集{1,...,N},要求基于容器云的资源分配将容器分配给虚拟机集合{1,...,L},并将虚拟机分配给物理机集合{1,...,M},目标是使所有物理机的聚合功耗Pdc最小;则数据中心的能耗模型被定义为



其中Pk表示物理机k的功耗;



Ucpu(k)表示服务器k的CPU利用率,为服务器k在利用率为U1时的功耗,由于资源的限制,式(1)和(2)还需满足约束条件






其中其分别表示容器和虚拟机只能被分配一次;
此外对于容器,认为应用程序和容器之间是一对一映射,也就是说,这里定义容器资源需求范围介于1到VM类型数量的容量;由于两级分配模型主要反映在资源利用率上,因此虚拟机的CPU利用率和内存利用率通过容器的CPU和内存总量以及虚拟机的资源总量计算,计算方式如下:




【专利技术属性】
技术研发人员:林伟伟石方李俊祺
申请(专利权)人:华南理工大学
类型:发明
国别省市:广东;44

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

1