基于萤火虫群优化算法的容器云资源低能耗部署方法∗

2022-03-18 06:20徐胜超叶朝武
计算机与数字工程 2022年12期
关键词:低能耗萤火虫容器

徐胜超 叶朝武

(广州华商学院数据科学学院 广州 511300)

1 引言

云计算[1]作为最新的计算技术在各行业中逐步发展,最新的数据中心也是云技术衍生出的产物[2~3],随着人们对资源利用率以及高质量作业的要求,必须加强资源的整合和管理,才能实现容器云资源的灵活部署和利用[4]。容器云技术是虚拟化的关键技术,为了提高其利用率,降低能量消耗,合理部署容器即为实现容器云资源低能耗部署的重要途径。

文献[5]在分析用户的需求以及运行成本的基础上,将底层资源约束条件形象化,通过演示等得出用户需求,通过模拟退火算法计算出云资源部署的初始解,同时运用禁忌搜索算法的记忆功能以及选禁忌表取初始解中的最优解,实现了服务功能链部署。但是该方法在部署时存在运行时间开销较大的问题。文献[6]构建了虚拟机部署模型,详细分析云计算主机负载均衡,根据改进粒子群的虚拟机优化配置算法得出最优虚拟机配置解,实现了云计算虚拟机资源配置优化。但是该方法在实际部署过程中没有将能耗问题转换,不能获取部署过程中的最低能耗。文献[7]提出了基于云计算的海量碎片资源动态调度方法。依据碎片资源的优先级计算结果重组海量碎片资源,确定资源调度的初始位置和速度,并更新信息素、控制资源动态循环迭代次数和区间,实现海量碎片资源的动态调度。但是该方法只能根据实际情况随机设定,导致部署的能耗仍有浪费,存在部署性能差以及运行时间开销大的问题。文献[8]构建了用于数据中心节能容器放置的鲸鱼优化系统,提出了一种基于鲸鱼优化算法的算法,将容器即服务环境中容器和虚拟两个放置阶段作为一个优化问题来解决,但是该方法部署过程中的能耗较高。文献[9]提出了一种基于学习自动机的容器云自适应任务调度算法。通过集群、节点和任务对环境进行建模,通过调度执行优化动作选择的概率,从而增强调度对云环境的适应性。但是该方法中大量空闲节点消耗能量,提高了部署能耗。

容器云合理部署可以保证数据中心整合、处理的稳定性,其可以进一步满足用户对于数据的需求。萤火虫群优化算法可以在目标区域内,提高容器部署覆盖率,实现全方位覆盖的同时,解决容器部署冗余的问题,为此,本文为了解决容器云资源部署过程中存在的部署性能差、运行时间开销较大的问题,提出了基于萤火虫群优化算法的容器云资源低能耗部署方法。

2 容器云资源低能耗部署目标

为了在保证部署性能的同时最大程度地降低能耗,必须实时监测资源能耗情况,因此需要构建能耗模型,进而得出能耗的代价函数以及约束条件,最终对其求解得出最优解完成资源的低能耗部署。

2.1 能耗模型的构建

云计算主机运行时,能量消耗的主要部分是容器云资源的计算过程,即动态能量消耗,令目前云计算系统的主机共有n台,基于容器云资源分配模型得出云计算系统能耗代价函数[10],其主要包括云计算平台中全部容器的最小动态能耗汇总和云计算主机的处理器利用率两部分,其表达式分别式(1)和式(2)为

式中,m代表云计算系统中容器的数量,代表第j台主机的处理器利用率最高的时的能耗,yij代表第i个容器被迁移到第j台主机,fij代表第i个容器在第j台主机中的能耗。

上述两个代价函数对应容器云能耗指标,通过计算代价函数即可得到最优资源部署的最低能耗[11~12],其中最低能耗的约束条件为

由于上述两种代价函数之间存在冲突,所以代价函数也是容器云资源部署的多目标的优化问题[13~14],约束条件就是容器与主机之间的影响关系,所以容器的分配y=yij以及容器的能耗f=fij就是多目标优化问题需要解决的问题。

2.2 多目标优化问题的求解

因为式(1)和式(2)之间存在冲突,所以不存在两个代价函数结果均为最小的唯一解,只能是一组最小解集合,即帕累托最优解集[15]。

根据帕累托占优的特点获取解之间的关系,假设式(1)代价函数得出的解为g1,式(2)代价函数得出的解为g2,当g1帕累托占优于g2,其需要满足的条件为

通过对多目标优化问题的计算即可得出每个主机配置策略的最低能耗配置结果[16~17]。

2.3 低能耗部署要求

大多容器云资源在部署过程中均没有分析云计算平台数据中心的动态变化运行环境[18],由于其中的容器一直处理运行状态,导致容器云平台性能受到影响,为了保证用户的需求,在低能耗的基础上最大程度地提高资源利用率和整体效率[19],容器在部署过程中需要符合以下几种条件。

1)云计算平台中容器的数量必须小于对应主机的最大使用容量。

2)容器对应的主机受运行环境的影响是不可避免的,但其影响范围必须控制在用户可接受范围内。

3)容器整体效率的变化增量必须保证为最大值,即容器对现有主机的性能干预必须降到最小。

式中,mi代表目前投入使用的容器数量,ui代表分配后容器的效率。

由于容器部署更新后其相应的主机运行环境会发生变化,同时对邻近容器性能造成影响,进而得出容器在完成部署前后相应主机的效用变化量ΔU′,其表达式为

式中,uk代表邻近容器的效率。

3 基于萤火虫优化算法的容器云资源部署

通常情况下每个策略均对应一个分配方案,即每个主机都对应一个容器,通过式(4)计算即可得出最低能耗的部署结果,为了得到最低能耗的最优资源部署结果,运用萤火虫优化算法予以计算[20~21],获取到主机分配方案的最优解集。

萤火虫群优化算法(GSO)的特点是捕捉速度快、用时少,将其应用于容器云资源部署中,可以在最短时间内覆盖容器云资源覆盖所有部署区域,通过求解萤火虫群优化算法相关参数等内容[22~23],得到容器云资源低能耗部署方案,具体步骤如下所示。

第一步,在容器云平台任意区域内设置一个部署策略q,即云计算系统主机,将其视为一个萤火虫,进而组成一个萤火虫群。

第二步,在进行计算的初始过程为每个部署策略q设置同一浓度的荧光素。

第三步,对部署策略q的荧光色素进行更新。其中荧光素浓度计算公式为

式中,lq(t) 代表部署策略q经过t地带后的荧光素浓度,β代表荧光素衰减系数,E(∙)代表部署策略q在迭代后的目标函数结果,xq代表部署策略q在t地带中的位置。通过多次迭代获取最新的部署策略q的荧光色素。

第四步,计算容器向低浓度荧光素移动的概率。

概率计算表达式为

式中,lo(t)代表荧光素较低的容器经过t地带后的荧光素浓度。

第五步,针对变化的部署策略位置进行更新。

更新后的部署策略位置计算公式为

式中,c代表部署策略每次迭代的步长,s代表标准欧氏距离,xo(t)代表低浓度荧光素容器在t地带中的位置。

第六步:直到满足迭代次数和部署需求即可停止位置更新,最终的位置即为容器云低能耗最优部署方法,若不满足则返回第三步。根据上述部署步骤即可得出最高效的部署结果。

4 实验结果与分析

为了验证基于萤火虫群优化算法的容器云资源低能耗部署方法的整体有效性,文献[5]和文献[6]在相应领域应用后均获得了较优的部署方案,因此将文献[5]感知服务的容器云资源部署方法和文献[6]云计算虚拟机资源部署方法作为对比方法,对三种方法进行部署性能以及运行时间开销的测试。

4.1 实验设置

采用Cloudsim5模拟容器云资源低能耗部署仿真环境,在实验硬件方面,采用Intel i7 8700CPU 六核心,32 GB 内存的64 位机器搭建24 个节点的物理集群,每个物理机运行Linux3.10 内核的Ubuntu Xenial 16.04。每个物理节点上运行Docker1.7.1 来创建虚拟节点,同时最多运行4 个虚拟容器,虚拟集群的最大规模为64 个节点。在Docker 中用CPU-Share 比重参数将6 个CPU 核心平均分给3 个虚拟节点,即每个Container公平使用两个物理CPU核心。在实验软件方面,使用Docker Swarm 实现容器的动态管理,将系统执行规则转换为Swarm 的管理脚本并且执行。在上述仿真环境的支持下,模拟除了容器云低能耗部署区域如图1所示。

图1 容器云低能耗部署区域

除上述参数外,还需要设定萤火虫优化算法的相关参数。设置迭代次数为500 次,容器感知半径为5m,通信半径为10m,荧光素的起始浓度为400,荧光素的挥发性系数为0.9,适宜度的提取率为0.1。根据上述参数设置和环境,采用三种方法进行对比测试。

4.2 部署性能测试

实验共选取33 个物理节点以及90 个容器,云平台各个容器的动态资源均是根据用户需求自动生成的,假设目前物理节点的初始条件相同,即云平台负载程度相同,分别计算出三种方法容器需要迁移的次数、稳定时间以及物理节点空闲的数量,其中物理节点就是云计算平台的主机。

4.2.1 容器迁移次数

容器云资源部署方法可转换成对容器的部署,容器的状态转换需要对容器进行迁移,不同方法所需的容器迁移次数也不尽相同,迁移次数越多耗费的时间也就越长,所产生的影响也较多,现设定三种方法更新的容器状态相同,判断在每种进化代数下容器所需的迁移次数,实验结果如图2所示。

图2 三种方法部署所需的容器迁移系数

根据图2 所示的实验结果可知,经过多次进化,容器所需迁移次数最少的是本文方法,最高迁移次数为40 次,感知服务的容器云资源部署方法和云计算虚拟机资源部署方法的最高迁移次数分别为72 次和91 次,即本文方法更新出资源分布状态最高效,较比其余两种方法更加便捷。其主要原因是本文方法将云计算系统能耗代价函数求解问题转化为容器云资源部署的多目标优化问题,通过求解多目标函数,确定最优部署方案,减少容器迁移次数。

4.2.2 稳定时间

以某数据中心为研究对象,对其容器进行更新后,该数据中心可以保持一段时间的稳定状态。而由于容器在不断的分配与再部署,导致数据中心需要平衡容器迁移和容器分布状态,以保证数据中心的运行稳定性。设定该数据中心的CPU 利用率分别为20%~80%的容器,利用三种方法对其进行部署,在经过相同迁移次数(40 次)后判断每种方法下容器保持稳定状态时间。容器稳定状态的时间越长,其部署性能越好,实验结果如图3所示。

图3 三种方法容器的稳定时间

根据图3 的实验结果可知,感知服务的容器云资源部署方法的稳定时间在22s~31s 之间波动,云计算虚拟机资源部署方法的稳定时间在13s~17s之间波动。而本文方法均是保证容器稳定状态时间最长方法,最低稳定时间为35s,受CPU 利用率大小影响较小,从而验证所提方法的性能高。其主要原因是本文方法在构建容器云资源低能耗部署模型时,考虑了CPU 利用率以及容器需要不断更新、迁移的影响,因此通过萤火虫群优化算法求解后,就要较高的稳定时间。

4.2.3 部署能耗情况

为了实现容器云资源低能耗部署思想,在保证部署效果的同时尽可能地减少物理点的使用,为了进一步验证本文方法的有效性,在分别对不同数量的容器进行部署,判断每组实验中三种方法所需的物理点,现已知是三种方法在每组实验下的部署效果均一致,仅对比每种方法的物理节点使用情况即可,物理节点使用数量越少,其能耗越小,部署能力越高。

根据表1 的实验结果可知,物理节点在不同数量容器下的使用数量均不相同,且每组实验下由于容器作用和外界影响因素的不同,每组实验所需的物理节点均不相同,但对比每组实验下三种方法所需的物理节点,本文方法使用的物理节点最少,即保证部署能力的同时耗能最小。产生该结果的原因是,本文算法将单一的能耗的求解问题,转换为了容器分配以及容器能耗的多目标优化问题,因此,在部署过程中所需要的物理节点更少,能耗最优。

表1 三种方法物理节点使用情况

4.3 运行时间开销

在对资源进行部署过程中种群总代数是导致运行时间加长的主要原因,且随着种群总代数的增长,部署时间是呈几何级别数增长,假设三种方法在现有种群总代数下的执行时间均在可承受范围之内,因此不影响容器云资源部署的进程,计算出在不同种群总代数下每种方法所需的运行时间,实验结果如图4所示。

图4 不同方法的运行时间开销

根据图4 的实验结果可知,三种部署方法中更新换代用时最短的就是本文方法,这是因为本文方法在进行部署前构建部署能耗模型,得出部署过程中所需的能耗,并实时管控能耗,将不必要的能耗关闭,降低部署计算量,减少运行时间开销。

5 结语

为了降低云数据中心能源消耗,提出基于萤火虫群优化算法的容器云资源低能耗部署方法,该方法通过构建能量模型和设立部署要求降低能耗,在此基础上利用萤火虫优化算法在全局中得到最优部署策略,实现了容器云资源低能耗部署,经实验测试可知,所提出方法解决了部署性能差以及运行时间开销大的问题,有效降低资源消耗。下一步将具体分析容器云资源部署策略的准确性,以保证容器云资源低能耗部署的同时,提高部署精度,为数据中心调度奠定基础。

猜你喜欢
低能耗萤火虫容器
低能耗建筑和绿色,节能建材会再上层楼
容器倒置后压力压强如何变
低能耗城市污水处理工艺分析
难以置信的事情
萤火虫
被动式低能耗建造技术探析
萤火虫
八钢烧结低能耗低排放低成本运营实践
抱抱就不哭了
取米