基于混合蛙跳算法的容器云资源低能耗部署方法

2023-10-26 06:19徐胜超
关键词:蛙跳低能耗容器

徐胜超

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

0 引 言

云资源[1-2]是云计算平台利用虚拟化技术向外共享的资源。随着信息技术的不断提升,云计算平台[3]的规模逐渐扩大,云资源的异构性也随之增多。诸多云资源数据在运行过程中所消耗的能量过高,而高能耗就会直接提高企业的经济成本。为了降低企业能耗,需要对云资源实行低能耗部署与调度,以此减轻云平台的负担,提升云资源的整体利用率,从而实现数据中心绿色节能。为了达到理想部署效果,需要对容器云资源低能耗部署方法展开研究。

文献[4]提出边云协同计算中基于预测的资源部署与任务调度优化算法,优先对云计算能力实行扩展操作,将其扩展到与其相对应的边缘设备中,以此设计出一个协同计算框架,并预测部署任务,把预测结果与分类聚合相结合,以此完成资源任务的部署;再对边缘器实行划分,从中取得服务目标曲线,以此完成对任务的调度优化。该方法设计的计算框架不够完善,导致最终部署效果不理想。

文献[5]提出面向大数据复杂应用的虚拟集群动态部署模型方法,在容器技术支持情况下建立了一个部署模型,依据资源的动态变动,利用该模型对虚拟群体实行调整和计算,其中包含节点类型的计算和节点规模的调整,并利用该模型完成对用户作业的部署,实现资源部署的目的。该方法建立的模型不够全面,存在请求接收率差的问题。

文献[6]提出移动网络部署与计算资源分配联合算法,针对在虚拟网络中对资源实行分配处理时出现的时延问题,结合资源的分配与部署,实现时延加权和最小化的目的,并采用策略梯度算法对学习策略实行资源指导和部署。该方法的分配处理效果不佳,存在平均可靠性差的问题。

蛙跳算法是一种全新的后启发式群体进化算法,具有高效的计算性能和优良的全局搜索能力。混合蛙跳算法在蛙跳算法基础上进行改进,在全局范围内通过重新排序、分组,加快种群的收敛速度,从而获取最优解。为了解决容器云资源部署中存在的问题,本文利用混合蛙跳算法对容器云资源低能耗部署方法展开研究,并通过仿真实验验证了本文方法的有效性,解决了已有的方法中存在的某些问题。

1 容器云资源能耗优化分析

1.1 容器云资源部署概况

云服务提供商[7-8]对网络的应用需求越来越多,需要选取云资源配置对网络资源部署,通常情况下选取的云资源配置分为两种:①容器部署[9];②由虚拟机与容器结合后的资源部署,其部署性能最佳。

当云资源数据任务输送到云数据中心后,就会对云资源实行初始配置,配置完成后云资源任务在运行期间会通过虚拟机的方式[10]实行迁移,从而完成容器云资源部署。

1.1.1 虚拟机资源配置

物理服务器在系统数据中心内总量较多,当虚拟服务器向物理服务器发出请求时,就需要按照设定的策略利用物理服务器对虚拟服务器实行部署。其部署流程如下。

步骤1分别选取一台物理机和虚拟机,物理机中存在部署的资源。

步骤2利用物理机[11]向虚拟机分配内存资源。

步骤3利用物理机向虚拟机分配带宽资源。

步骤4利用物理机向虚拟机分配CPU资源[12]。当物理机中存有不同的处理核时,虚拟机就需要与其相对应的处理核数量,分配CPU资源时应按照特定顺序将物理机的处理核分配到虚拟机内。

步骤5利用物理机向虚拟机分配磁盘资源。

步骤6重复步骤1—步骤5,直至全部资源分配完成结束。

1.1.2 容器云资源配置

一般来说容器的部署流程与虚拟机相似,但容器属于云资源任务的实际载体,因此,容器中的CPU需要以实际CPU负载量和虚拟服务器的可用CPU对比。基于实际情况,容器CPU的利用率一般低于虚拟机。

1.1.3 迁移容器或虚拟机

云资源任务种类繁多,执行云资源任务有两种方式:①迁移容器方式,具备处理时间短的优势,但其需求波动较大;②迁移虚拟机方式,对任务处理的时间较长,且需要执行的数据总量多。

1.2 容器的迁移

有些物理机在执行任务时,执行速度较快,若此时没有被部署新任务,物理机就会因为过于空闲而导致资源利用率低[13-14],资源利用率低于设定的临界值时,物理机的状态就会转换成欠载状态。而有些物理机在执行任务时所用时间较长,接收到新任务的部署后就会过于繁忙,导致资源的利用率过高[15],资源利用率超出设定的临界值时,该物理机的状态就会变换成过载状态。这两种状态都存在弊端,欠载状态容易浪费资源,过载状态更容易对系统的稳定性产生影响。因此对任务实行部署时,要考虑到物理服务器之间的负载均衡条件。

容器云资源环境中,考虑到服务器的负载均衡,应对虚拟机实行迁移。由于容器云中包含物理服务器、虚拟机、容器等3种不同层次的对象,因此它与早期的云计算环境大不相同,有着可迁移的特点。各类对象在迁移过程中都要遵循一致策略。

容器在迁移时先要考虑何时才能对服务器实行迁移,这主要由系统数据中心的资源调度策略[16]决定而成,共分为3种触发方式。

定时触发。设定固定的时间点对需要迁移的工作实行处理。

定量触发。设定具体的执行任务,当一定量的任务被执行完成后,即可执行迁移。

监控触发。利用系统数据中心对服务器实行实时监控,根据监测到的情况判断是否对虚拟机实行迁移。依据以上3点,完成容器迁移的触发。

设置过载与欠载临界值,以物理主机的处理器利用率大小为主迁移服务器。同时迁移的位置与设定的物理机策略有关,具体迁移流程如下。

步骤1对物理机的整体资源利用率实行统计,并将超过设定临界值的物理机保存到设定的OverList列表中,根据保存结果对其实行降序排列。

步骤2对OverList列表物理机中的虚拟机资源利用率实行降序排序。

步骤3将没有处于OverList列表的物理机用作迁移对象。

步骤4在OverList列表中以先后顺序为主,挑选一台物理机用作迁移源物理机。以设定的顺序为主,将迁移源物理机中的虚拟机转移添加到迁移目标内,令其满足不过载的条件,直至迁移源物理机不过载为止。若存在虚拟机不被迁移目标接收的情况,就需要返回至步骤3,再次选取一台物理机用作迁移对象,并对其实行迁移,直至在OverList列表的物理机被处理为止。

步骤5对资源利用率出现欠载状态[17]的物理机实行统计,并将其保存到设定的UnderList列表。

步骤6选取一台不存于任何列表中的物理机,看作迁移目标。

步骤7在UnderList列表内挑选一台可以用作迁移源物理机的物理服务器。并对迁移源

物理机部署的虚拟机迁移,移至迁移目标中,保证其满足不过载的条件。若存在不能完全接收迁移虚拟机[18]的问题,则需要重新选取物理机用作迁移目标。

步骤8关闭迁移源物理机,迁移结束。

基于上述迁移流程,得知资源在迁移或部署过程中,都需要选择一个指定的物理机,这样才能实现容器的资源部署。也因此得知物理机是能源消耗最大的服务器,要实现容器云资源低能耗部署,就需要优先降低物理机的能耗,并找到容器之间的能耗值计算关系。

1.3 容器云资源能耗模型

基于上述容器云资源配置分析,得知容器云资源能耗影响因素,为了实现容器云资源低能耗部署,需要获取容器能耗值,因而设立能耗优化及资源调度方案。

1.3.1 建立能耗测量监控平台

为了获取各个容器之间的能耗值,设立一个能耗测量监控平台[19],主要用来对能耗实行测量和计算。采用间接测量方式,对容器的资源利用率及性能数据实行采集,根据资源利用率与能耗之间的关系,取得能耗值或实现对能耗值的预测。本文中各个服务器的能耗可表示为CPU、内存、磁盘存储、网络带宽的总和。

假设在有m个物理主机和n个容器的云平台中,云资源部署的能量损耗主要来自固定和迁移两部分,经实验发现,云资源能耗与物理主机的资源利用率有较大关联,t时刻物理主机的能耗为

Ehost(t)=E(Ucpu(t))+E(Umem(t))+

E(Udisk(t))+E(Ubw(t))

(1)

(1)式中:E(Ucpu(t))表示物理主机CPU的能耗;E(Umem(t))为物理主机的内存能耗;E(Udisk(t))为物理主机的磁盘能耗;E(Ubw(t))为物理主机的网络带宽能耗。第i个物理主机在[ta,tb]时间段的总体能量损耗Ei计算公式为

(2)

容器云资源调度过程中的能耗,除了硬件资源利用率实时变化产生的能耗外,还包括容器迁移能耗。基于系统各部位的资源利用率以及能耗公式得出容器迁移开销,其计算公式为

(3)

(3)式中:j为容器编号;vj(t)为t时刻的第j个容器处理器利用率;t1为容器开始迁移的时间;tkj为容器完成全部迁移所需的时间;Vj为容器迁移开销。由于容器迁移开销是影响容器云资源调度能耗的重要影响因素,因此容器云资源能耗分析过程中重点计算容器迁移开销。整个容器云平台的能量损耗为

(4)

1.3.2 虚拟机管理器对物理机能耗的监测

利用虚拟管理器对物理机能耗实行监测时[20],还需要把物理机能耗打开及能耗关闭状态全部考虑在内。物理机处于开启状态但没有运行时,所产生的能耗要与获取的能耗值相比较。物理机处于就绪状态时所消耗的时间超出设定的时间阈值,就需要及时关闭物理机,使其停止运作。

虚拟机管理器监测到物理机和其余虚拟机工作情况后,将监测到的相关信息输送到建立的能耗测量监控平台中,利用该平台对其实行能耗计算,并把计算结果发送至能耗调度器[21]。采用超时判定法对物理机关闭的时间阈值实行设置,定义为

T=(Poff+Pon)/Ekeep

(5)

(5)式中:T为时间阈值;Poff为物理机在关闭时产生的能耗;Pon为开启物理机时产生的能耗;Ekeep为物理机空闲时间产生的能耗。

本文基于超时判定法衡量物理机在不同状态下产生的能耗,使物理机在工作时一直处于低能耗状态;从容器资源利用率及能耗两个角度出发,建立能耗调度器,对能耗测量监控平台数据获取的资源利用率和能耗值采用混合蛙跳算法取得最佳部署方案。

2 基于混合蛙跳算法的容器云资源低能耗部署

蛙跳算法是一种新兴的群智能优化算法,概念简单,易于实现。而混合蛙跳算法是在蛙跳算法的基础上进行的改进算法,混合蛙跳算法[22]是一种启发式计算技术,其本身具备全局搜索能力最强的优势。这种算法模拟青蛙群体寻找食物时,按族群分类进行思想传递的过程,将全局信息交换和局部深度搜索相结合,局部搜索使得思想在局部个体间传递,混合策略使得局部间的思想得到交换。混合蛙跳算法的基本流程如下。

步骤1基于混合蛙跳算法设置初始种群数目、族群数目及族群最大迭代次数。

步骤2针对青蛙个体编码,得出青蛙个体适应度值,根据计算结果对其实行降序排序,从中划分出若干个族群。

步骤3对青蛙的各个子群实行更新。

步骤4混合青蛙个体与种群,排序适应度值,选出最优青蛙,对其实行混沌优化。

步骤5当优化结果满足终止条件时,结束寻优,若不满足,则需要返回至步骤2继续优化。

步骤6通过获取的最优个体,获取最优解。

基于上述容器云资源部署方案,本文采用混合蛙跳算法对其实行局部搜索,以此取得最优解,得出最佳容器云资源低能耗部署方案;将若干个云资源任务分配到虚拟机资源中,利用混合蛙跳算法的青蛙个体对方案实行编码,并以寻优的方式寻找到最优解。

当容器云资源中共包含3个资源、5个任务时,它的总编码X=[2.3,3.2,2.5,1.8,2.0];对其解码后,X=[2,3,2,1,2]。

根据解码表达式可知,青蛙个体将任务1、任务3和任务5调度到资源2中,任务2和任务4则调度到资源3中执行。

考虑到青蛙运动过程中的变化因素,对多次迭代下的青蛙的运动速度V与位置D进行更新,具体公式为

(6)

(6)式中:Tmax为最大迭代次数;θ为惯性权重;Tg为局部极值点;N′为最佳种群变异概率;dα为青蛙坐标。

任务调度[23]后要在适当时间内完成,因而需要设置适应度函数,定义为

(7)

根据上述适应度函数,经过多次迭代计算,获取最优个体,构建目标优化函数,得到目标函数的优化结果,即获取最佳容器云资源低能耗部署方案,利用该方案对容器云资源实行低能耗部署。目标函数的表达式为

(8)

(8)式中:Ga为寻优速度;la为计算权值。

3 仿真实验与性能分析

3.1 实验设置

实验硬件平台为 CPU-Intel Core i7-8700K 3.7 GHz,内存8 GB,磁盘2 TB,网络带宽100 MB/s。

软件平台基于容器云模拟器 Cloudsim5.0,该软件中所有的服务要求都被打包成一个云任务,一个虚拟机可以在同一时间执行多个云任务[24-26]。根据需要的物理资源,这些初始化的虚拟机依次分配到已打开的物理主机。在容器云中,数据中心是由大量的物理主机节点构成的,主机则是云数据中心的基础实体。在 CloudSim5.0中,可以预先设定云平台的内存、硬盘、预设部署原则以及约束条件。实验设置容器云平台中虚拟机的数量为1 000个,物理主机数量为40台。

实验中容器云执行速度范围为100~500 MI/s,子任务的任务长度范围为10 000~50 000 MI,实验参数如表1所示。

表1 实验参数设置Tab.1 Parameters of experiment

3.2 算法收敛性对比

采用多峰函数Rastrigrin完成对比实验。Rastrigrin可以采集大量的局部极值点,对搜索过程的整体搜索能力进行判定。为了确保实验的公平性,将函数维数统一设置为30,采用混合蛙跳算法、虚拟集群动态部署算法和移动网络部署算法,测试迭代次数与适应值之间的趋势变化如图1所示。

图1 适应度函数值变化趋势Fig.1 Trends of fitness function value

由图1可知,开始阶段各算法适应度函数值下降均较快,局部最优的现象很快就出现了。但是,混合蛙跳算法使粒子很快跳出了局部最优陷阱,更快地达到了最优。这表明该算法收敛性较好。

3.3 测试指标与比较对象

为了获取容器云资源部署时的测试结果,本文选取3个能够体现出容器云资源部署效果的测试指标,即资源请求接收率、云平台能耗、平均时延。

采用基于混合蛙跳算法的容器云资源低能耗部署方法、面向大数据复杂应用的虚拟集群动态部署模型方法[5]和移动网络部署与计算资源分配联合算法[6]实行比对实验测试。

针对3种方法分别对选取的测试指标实行实验对比,根据测试结果分析与验证容器云资源部署效果。

3.4 实验结果分析

3.4.1 请求接收率测试

负载均衡效果会对容器云资源任务部署请求接收率造成影响,因而设立考虑能源负载均衡及不考虑能源负载均衡两种情况,利用3种方法对不同情况下的请求接收率实行测试,测试结果如图2所示。

图2 请求接收率对比Fig.2 Comparision in request acceptance rate

由图2可见,在考虑负载均衡情况下,3种方法的请求接收率均较高,其接收结果都处于80%以上;但不考虑负载均衡后,3种方法的请求接收率均有所下降,其中虚拟集群动态部署方法和移动网络部署方法运动轨迹下降速度最快。对比而言,混合蛙跳方法的请求接收率最高,同时受到负载均衡影响效果最小,原因是该方法设立了资源调度方案,达到优化能耗的目的,从而提升请求接收率。

3.4.2 容器云平台能耗测试

容器云平台能量损耗影响着云资源任务部署的成效,为了验证容器云资源部署效果,利用混合蛙跳方法、虚拟集群动态部署方法和移动网络部署方法分别对容器云资源能量损耗展开测试。统计了一天24小时内整个容器云平台的能量损耗,测试结果如表2所示。

表2 能量损耗对比Tab.2 Comparision in energy consumption

由表2可知,经过10次实验的反复测试,混合蛙跳方法的容器云平台能量损耗最高值为24 565 kJ,最低值为15 678 kJ,平均能耗为19 990 kJ,但是虚拟集群动态部署方法[5]平均能耗有28 262 kJ,移动网络部署方法[6]的平均能耗有28 519 kJ相对于其他2种方法,混合蛙跳方法的容器云资源能量损耗最低,这说明利用本文提出的基于混合蛙跳算法进行容器云资源低能耗部署的效果最好。分析原因是本文采用混合蛙跳算法对云资源任务实行局部搜索,以此取得最优解,得出最佳容器云资源低能耗部署方案,从而实现容器云资源低能耗的部署。

3.4.3 平均时延测试

容器云资源任务在部署期间,其部署平均时延影响着容器云资源的任务部署效率,所以利用3种方法分别对容器云资源任务实行平均时延测试,具体测试结果如表3所示。

表3 平均时延测试结果Tab.3 Results of experiments in time delay

从表3可知,对容器云资源任务部署时3种方法所消耗的部署时间各不相同。混合蛙跳方法在整体任务部署期间,消耗的时间较少,部署效率高。虚拟集群动态部署方法和移动网络部署方法平均时延上升速度较快,消耗的时间较多,部署效率差。这是因为本文混合蛙跳算法容器云资源低能耗部署能够快速搜索最优解,降低了容器云资源任务部署时间。

4 结束语

容器云中运行过多的数据会导致消耗的能量过高,影响任务部署效果。本文基于混合蛙跳算法的容器云资源低能耗部署方法对容器云资源的配置展开了详细分析,基于能耗监控分析结果设立资源调度方案,采用混合蛙跳算法对方案实行局部搜索,得出最优部署方案。该方法为容器云资源低能耗部署方法提供了重要参考价值,后期的工作将研究其他的群体智能算法运用到容器云资源部署中[27-29]。

猜你喜欢
蛙跳低能耗容器
低能耗建筑和绿色,节能建材会再上层楼
Different Containers不同的容器
“三层七法”:提高初中生三级蛙跳能力的实践研究
低能耗城市污水处理工艺分析
难以置信的事情
被动式低能耗建造技术探析
八钢烧结低能耗低排放低成本运营实践
取米
一种改进的混合蛙跳算法及其在水浴牵伸控制中的应用