APP下载

基于粒子群算法的容器云平台低能耗部署方法*

2023-05-12徐胜超毛明扬

计算机与数字工程 2023年1期
关键词:低能耗适应度容器

徐胜超 陈 刚 毛明扬

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

1 引言

随着移动互联网技术的迅速普及和发展,对网络用户和业务的需求急剧增长,使得云平台上的数据集成服务更加复杂、更加多样化,对云资源调度提出了更高的要求[1~2]。当前的容器云平台部署方法在面临开发、集成、部署、运维等情况时,在已经无法满足集中化管理与自动化运维。为了充分发挥容器易分发、易部署的优势,相关国内外专家针对容器云平台的低能耗部署方面的内容展开了不同方向的研究。

文献[3]将虚拟机放置在物理主机上,这样可以最小化功耗,最大化资源利用率。因此该文献在考虑优化能源消耗和资源利用的情况下,解决了CaaS 环境中容器和虚拟机的放置问题,并提出了一种基于鲸鱼优化算法来进行求解。该算法在一个搜索空间中搜索虚拟机和虚拟机的最优数量,实验结果表明,该方法在测试环境套件上优于常见的方法。但是该方法受服务器分配的影响,造成部署方案能耗较高。文献[4]通过边缘计算节点部署的位置选择,采用穷举方式选择最佳网络节点,最终实现需求响应边缘云部署。文献[5]通过马尔科夫链模型描述单一容器的资源需求情况以及资源需求态势,最终通过资源预留方法实现集群容器部署。文献[6]采用Harmony 的搜索算法移动虚拟机,减少云平台的能耗,通过对节点和虚拟机按优先级降序排序的方法实现定位,完成工作负载计算,以此降低能耗。文献[4~6]方法实现了容器云或边缘云低能耗部署,但是其部署效率有待进一步提升。文献[7]引入雾计算理论基础,提出了一种混合整数线性规划公式,在考虑服务功能链概念、不同低功率广域网技术和多个优化目标的基础上,完成无线网络需求,实现在雾计算环境中的资源配置优化,但是该方法在容器云资源部署过程中的资源综合利用率较低。

粒子群算法是一种基于随机求解的演化方法,通过相互传递各自信息,判断是否得出最优解,即问题收敛。粒子群算法易于实现,精度高,收敛速度快,因此可以用于容器云平台低能耗部署。为此,本文提出了基于粒子群算法的容器云平台低能耗部署方法,并通过仿真测试验证了该方法可以有效提升容器云平台低能耗部署性能。

2 容器云平台低能耗部署方法

2.1 建立容器云平台低能耗部署模型

在建立容器云平台低能耗部署模型的过程中,待部署的资源以服务的形式存在。随机任务集合根据任务等待序列被部署到云服务资源节点执行相关操作。为了进一步达到容器云资源低能耗部署的目的,需要通过建立目标函数降低容器云平台能耗,在约束条件下构建低能耗部署模型。下面的式(1)为目标函数,式(2)和式(3)为约束条件,式(4)为能耗模型。

2.1.1 建立目标函数

云资源调度过程中不仅需要降低网络存储开销和计算开销,还需要为内存优化、运行安全提供最大限度的保障。因此,可以利用指数函数构建容器云平台低能耗部署模型,分析低能耗动态负载情况,达到优化负载均衡调度的目的,本文设计的具体目标函数可以表示为式(1)的形式:

上式中,Eit代表网络节点i在时刻t的低能耗动态负载;αi代表网络节点i的配置权值;pit代表网络节点i在时刻t的传输幅值。

2.1.2 创建约束条件

以目标函数为基础,创建约束条件,在满足约束条件下构建低能耗部署模型。低能耗部署平衡约束(等式约束)和时间约束(不等式约束),能够有效降低网络节点失衡度,如式(2)、式(3)所示:

上式中,Q代表低能耗部署平衡约束;ki代表有效的负载电容;Gi代表网损;Tc代表用户期望获取的最长时间;Ti代表时间约束;Ta代表用户提交的任务计算时间。忽略网损Gi,在云资源调度结构优化过程中,完成分布式网络节点分配。

2.1.3 构建部署模型

结合以上分析,构建容器云平台低能耗部署模型。低能部署耗模型是结合目标函数,利用约束条件分析综合用户提交的任务计算时间及用户期望获取最长时间的一种部署模型。通过低能耗模型可以有效权衡提交时间和期望时间之间的关系,以此获取最短任务执行时间,有效解决容器云平台低能耗部署任务执行时间最小化的问题。

在随机任务执行过程中,需要获取容器云平台低能耗部署的最短时间。但是单一的时间优化模型会导致网络负载增加,同时容器云整体服务效率也会大幅度下降,所以需要设定任务时间的具体取值范围为tk[t,tbegin-tend],其中,tk代表容器云平台低能耗部署时间;t代表部署时间总和;tbegin和tend分别代表任务起始时间和任务结束时间。

在容器云平台低能耗部署过程中,还需要考虑超时忍耐函数,同时也代表任务服务的关键程度。当超时忍耐函数的取值越好,则说明节点利用率就越高,任务在同一时间段内可以被更多资源部署。当网络服务压力的取值越大,需要通过云网络和忍耐函数均衡因子条件不同参数的取值,确保忍耐值最小。对于已经参与服务的云计算节点总数量、任务数量以及忍耐函数值而言,当任务等待队列中有任务不仅满足资源能力需求同时也满足任务约束时间时,则直接执行该任务;反之,则需要引入松弛时间相关概念,使其满足以上需求,最终完成任务请求。

通过上述分析可知,由于需要制定一个容器云平台低能耗服务器分配方案[8],才可以得到对应的部署方案,所以在不考虑散热的情况下,计算容器云数据中心的能耗,从计算结果中同时获取最低能量消耗,获取对应的容器云平台低能耗部署模型可以表示为式(4)的形式:

上式中,minN代表容器云平台低能耗部署模型;fmax和fmin分别代表最高和最低分工频率;Fmax代表服务器最大占用频率,n代表节点总数量。在执行随机任务的过程中,由于数据传输会给数据中心带来一定的负载,所以需要设定负载函数θ[9-10]。

以最低能量消耗和最短任务执行时间为目标,组建容器云平台低能耗部署模型,同时设定对应的约束条件。根据通过负载函数和超时忍耐函数的优化求解可以获取最佳部署方案。

2.2 基于粒子群算法的容器云平台低能耗部署模型求解

粒子群算法[11~12]属于全局优化算法的一种,粒子群的个体对应于容器云平台低能耗部署问题的可能解,各个粒子存在位置、速度两种变量,粒子位置坐标表示的目标函数值就是此粒子的适应度。粒子群算法里,各个粒子都存在一个可能的最优解,因此容器云低能耗部署过程中,将一个任务划分为多个大小相同的子任务,并将其分配到对应的部署节点上。对任务编码的方式主要使用间接编码方式,其中编码的长度主要根据子任务长度体现。利用图1给出粒子编码解码规则。

图1 粒子编码解码规则

粒子群算法的适应度函数会直接关系到算法的收敛速度以及全局最优解。在确保容器稳定性的前提下,需要兼顾多个优化目标,进而获取更加满意的优化结果。基于容器云平台低能耗部署实际需求,利用粒子位置完成容器云平台低能耗部署实数编码,使编码形式更加直观、更便于解码。假设表示粒子状态,则推导出粒子群编码格式为,其中,xmD代表粒子的位置,g(xm)代表粒子的适应度函数值,m代表粒子数量。

给定粒子数量m与迭代次数k后,对粒子群中各粒子位置与速度进行初始化处理,设置节点编码与速度是1,两者分别与容器云资源低能耗部署的任务起始时间和任务结束时间相对应,适应度函数值是+∞,其他指标的初始化值均是0。

考虑到容器云平台低能耗部署过程中存在总负载均衡度、总任务完成时间等诸多限制信息,只有在粒子群优化算法中加入相应的约束条件,才能确保容器云平台低能耗部署方案具有一定的有效性与实用性。因此,在考虑负载均衡的前提下[13],设定如式(5)所示的适应度函数:

上式中,L代表总负载均衡度;tmax代表总任务完成时间;Numvm-cup代表单一CPU的处理能力;λ代表限制信息。

在采用粒子群算法[14~15]求解容器云平台低能耗部署模型的过程中,由于种群规模比较大,会导致算法出现早熟的现象。所以实行早熟判断和处理是十分重要的环节,可以增加收敛速度的同时,避免早熟现象,该过程通过迭代方式实现。

假设迭代更新的时间间隔是Δt,惯性权重为ω,则采用式(6)和式(7)更新粒子位置与速度:

上式中,k代表迭代次数;代表更新后的粒子速度。根据式(5)计算出的解码过程中适应度函数值,留存多个理想粒子,在每次迭代过程中,及时更新各个粒子的位置和速度信息[16],当粒子的适应度取值大于历史适应度值,则需要展开替换操作。在整个群体中,可以通过种群中粒子适应度值的个体或者全局描述对应的位置信息[17~18],进而判定算法是否陷入早熟。

通过上述分析,在粒子群算法[19]的基础上,充分考虑容器云平台低能耗部署限制信息,在其中加入相应的约束条件并通过限制粒子移动区域,实现基于粒子群算法的容器云平台低能耗部署,图2 给出了粒子群算法求解容器云平台低能耗部署模型的详细操作流程。

图2 容器云平台低能耗部署模型求解流程图

步骤1:参数初始化处理;

步骤2:对各个粒子解码处理,主要由容器云平台低能耗部署任务和计算节点之间的分配关系获取对应的矩阵;

步骤3:计算各个粒子的适应度值;

步骤4:根据设定的适应度函数筛选最佳个体位置,依据式(5)优先筛选负载均衡度最小的粒子作为最优个体位置,假设有多个粒子,则进入二级筛选阶段,将总任务完成时间加权最大的粒子设定为当前最佳粒子;

步骤5:通过适应度函数筛选全局最优粒子位置;

步骤6:判断算法是否达到最大迭代次数,是则执行步骤9;反之,进入步骤7;

步骤7:更新惯性权重ω取值,确保算法的惯性权重在设定区间范围内波动;

步骤8:依据式(6)和式(7)分段更新粒子的位置和速度;

步骤9:输出最佳容器云平台低能耗部署方案,停止计算。

3 仿真测试与性能分析

3.1 粒子群算法参数设置

为了验证基于粒子群算法的容器云平台低能耗部署方法,根据第二部分的计算和分析,得到如表1 所示的种群粒子数量与容器云平台低能耗部署相关性设置。

表1 种群粒子数量与容器云平台低能耗部署设置

根据表1 可知,粒子群算法运行时长随粒子数量的增加而上升,只有当粒子规模是路网节点的1倍~1.5倍时,才能取得较为理想的部署效果。综合上述分析,设定粒子群算法参数分别为:种群粒子数量是1350 个,最大允许迭代次数是220 次,惯性权重ω与迭代次数呈线性负相关,取值范围为[0,1]。

3.2 容器云测试环境

在阿里云Serverless Kubernetes 平台中进行容器云平台低能耗部署测试。具体的测试环境参数设置为:随机选择48h 内的容器云平台低能耗部署任务负载数据作为测试数据,设定容器的缓冲能力取值范围,最大可至10000,最低至2000,同时最多可以分配200 个容器;最大响应时间为1s。测试流程如图3所示。

图3 测试流程图

3.3 测试结果

参考文献中的文献[3~7],这5 种方法都有一定的共通性,选择其中哪种方法进行对比都能确保测试的准确性。由于时间和研究条件的有限性,所以选择了两种方法进行对比。对比本文方法和文献[3]方法、文献[4]方法的容器云平台低能耗部署性能、资源综合利用率和集群资源失衡度。

3.3.1 容器云平台低能耗部署性能分析

测试通过最大任务执行总时间、任务最大响应时间、容器最大平均队列长度和容器在线运行时间总长四个指标对比不同部署方案的性能展开分析和研究。利用图4 给出本文方法与文献[3]方法和文献[4]方法三种不同方法各项指标的测试结果。

分析图4 中的测试数据可知,与另外两种方法相比,本文方法的任务平均最大等待时间、任务最大响应时间和容器在线运行时间明显更低一些,容器最大平均队列长度更长。这是由于本文方法利用粒子群算法根据筛选机制获取历史最好位置,将粒子群的最优位置与容器云平台低能耗部署方案进行对应,以此提升容器云平台低能耗部署性能效果。由此可见,本文方法在容器云平台低能耗部署过程中,不仅考虑到了服务质量保证,同时还考虑了资源利用率,有效确保了容器运行过程中的服务质量。

图4 容器云平台低能耗部署性能测试结果分析

3.3.2 资源综合利用率分析

各个方法的资源综合利用率对比结果如表2所示。该测试结果通过负载均衡度指标进行衡量,容器的负载均衡度越高,代表对应方法下的服务器吞吐性能更好,其资源综合利用率更高。

由表2 中的数据可知,本文方法的负载均衡度相较于对比方法更高,最高负载均衡度达到95%,相较于文献[3]方法的93%和90%更高,其主要原因是本文方法在考虑资源低能耗部署的网络重要程度以及用户期望值的情况下,建立了容器云平台低能耗部署模型,可以更好利用带宽以及存储需求,从而提升了资源综合利用率。

表2 不同方法的资源综合利用率测试结果对比

3.3.3 集群资源失衡度分析

选取集群资源失衡度作为测试指标,利用图5给出详细的测试结果。

图5 不同方法的集群资源失衡度测试结果对比分析

由图5 中的测试数据可知,各个方法的集群资源失衡度会随着虚拟机内存的增加而增加。其主要原因是虚拟机内存的增加,造成容器内需调度和部署的资源增多,导致容器的负载增加,更易导致集群资源失衡。然而在三种方法中,本文方法的集群资源失衡度明显更低一些,最高集群资源失衡度为0.19,其主要原因是本文方法在考虑总负载均衡度的基础上,构建了适应度函数,通过多次迭代找到了粒子最优位置,实现了高效率的容器云平台低能耗部署,降低了容器负载的影响。

4 结语

本文利用了粒子群算法,构建并求解容器云平台低能耗部署模型,有效降低集群资源失衡度,提升了综合资源利用率,同时还能够获取更加满意的容器云平台低能耗部署方案。由于容器云资源低能耗部署问题是一个十分复杂的问题,本文方法仍然存在一定不足,后续进一步研究如何将不同因素的影响降至最低,确保本文方法的性能达到最佳状态。

猜你喜欢

低能耗适应度容器
低能耗建筑和绿色,节能建材会再上层楼
改进的自适应复制、交叉和突变遗传算法
Different Containers不同的容器
低能耗城市污水处理工艺分析
难以置信的事情
被动式低能耗建造技术探析
基于空调导风板成型工艺的Kriging模型适应度研究
八钢烧结低能耗低排放低成本运营实践
取米
少数民族大学生文化适应度调查