基于双层规划的容器云资源动态配置算法

2022-12-30 14:09周永福徐胜超
计算机与现代化 2022年12期
关键词:双层资源配置容器

周永福,徐胜超

(1.河源职业技术学院电子与信息工程学院,广东 河源 517000; 2.广州华商学院数据科学学院,广东 广州 511300)

0 引 言

在云计算网络环境中,容器云资源的动态配置主要解决如何调用不同的资源来连接云计算终端,并在此基础上提供可靠、高效的服务[1-2]。容器云资源动态配置的目标是实现各种资源在网络上的有效共享。云资源规模在不断扩增的同时,手动或人工管理资源的方式变得非常不现实,必须研究一种有效的管理手段,来适应云计算网络负载的变化,降低资源管理人员的工作难度[3]。

在上述背景下,相关学者对资源配置问题进行了深入研究,并取得了一些研究成果,如:文献[4]提出了一种容器云环境虚拟资源优化配置方法,根据资源配置方案,分析物理机选取策略对资源配置能耗的影响;构建主机利用率、容器利用率与数据资源能耗之间的关系,建立数学模型,并设置相应的目标函数;根据建立的目标函数,通过最佳能耗优先物理机选择算法实现资源配置。实验结果表明,该方法在数据中心节能方面具有一定的优势,但是存在资源利用率较低的问题。文献[5]提出了一种大数据环境下基于谱机器学习的云物流资源配置方法,该方法将云物流资源作为研究对象,依据多粒度理论建立云资源配置模型,并采用机器学习算法对该模型进行求解,最后通过实验研究验证该方法的有效性。结果表明,该方法的资源配置准确率较高,但是需要消耗大量的时间,配置效率较低。

基于以上研究背景,本文将双层规划应用到容器云资源动态配置算法设计中,从资源利用率和完成时间2个方面提升算法的性能。

1 容器云资源动态配置算法设计

1.1 容器云资源动态配置决策问题分析

采用动态的方式配置容器云资源时,需要先在容器云资源配置行为的应用场景中分析容器云资源动态配置决策问题[6-7],容器云资源配置行为的应用场景如图1所示。

图1 容器云资源配置行为的应用场景

从图1可以看出,容器云资源配置行为的应用场景提供的中间层包括代理申请模块和配置决策模块,代理申请模块是根据接收到的命令,自动执行对容器云资源进行添加、删除等行为操作[8];容器云资源配置决策模块是将容器云资源的运行状态作为输入,根据云资源配置决策算法的设计,将云资源的动态配置命令传输给代理申请模块。

根据以上描述,容器云资源动态配置决策模块在容器云资源配置行为的应用场景中是一个核心组成部分[9-14],因此,容器云资源动态配置决策模块在容器云资源动态配置中是一个需要重点解决的问题。先将容器云资源动态配置过程看成是一个强化学习的过程,再针对容器云资源构建调度模型,达到容器云资源动态配置的目的。

基于容器云资源配置行为的应用场景,将中间层划分为代理申请模块和配置决策模块,利用模块间的关系,分析容器云资源动态配置决策问题。

1.2 容器云资源调度模型构建

容器云资源能否进行动态配置,决定着云计算服务的质量。当云计算服务被多个用户使用时,容器云资源在调度过程中就会根据不同用户的需求,将容器中不同的云资源分配给不同的用户[15-20]。容器云资源调度模型的构建步骤如下:

Step1计算出容器云资源调度任务的表达式,构建计算调度时间矩阵。

假设容器云资源参与调度任务的集合为J,P表示容器云资源的待分配集合,那么容器云资源的调度任务可表示为:

(1)

其中,Ji表示第i个调度任务,Pj表示第j个调度任务中的待分配容器云资源。

Step2求解容器云资源调度时间矩阵。

假设ETC,ij表示容器云资源的调度任务Ji在分配容器云资源Pj时消耗的时间,那么可以计算出容器云资源调度时间矩阵,表示为:

(2)

Step3求解容器云资源调度任务Ji在分配云资源Pj的最短时间ECT,ij,那么可以得到容器云资源调度任务的最短时间矩阵,即:

(3)

Step4获取容器云资源调度所需的条件。

一般情况下,对容器云资源进行调度就是利用最短的时间解决容器云资源的调度问题[21]。令xij描述云资源调度任务是否可以独立完成容器云资源Pj的分配,容器云资源调度任务的目标函数为:

(4)

那么构建的约束条件为:

(5)

Step5求解容器云资源调度的目标函数。

容器云资源在执行调度任务过程中的约束条件为:

(6)

其中,xij∈{0,1}。

通过定义容器云资源的调度任务,求解得到容器云资源调度时间,利用容器云资源调度任务的最短时间矩阵,获取容器云资源调度所需的条件,求解容器云资源调度的目标函数,构建容器云资源调度模型。

1.3 基于双层规划的容器云资源动态配置算法

在1.2节构建的目标函数基础上,为了进一步提升资源配置效果,提出基于双层规划的容器云资源动态配置算法。多目标优化方法通常通过求取各目标的加权和,然后采用单目标的优化技术,实现目标优化。采用该方法处理优化问题时,会由于不同性质的目标之间单位不一致,存在不易比较的问题,并且优化目标仅为各目标的加权和,优化过程中各目标的优度进展不可操作。因此,本文采用双层规划方法对云资源进行配置研究。虽然与多目标优化方法的目的相同,都是求取问题的最优解,但是在双层规划模型中,该模型以对偶理论为基础,目标函数中的一组变量被约束为另一优化问题的最优解,简单来说,就是一个优化问题的参数受限于另一个优化问题,这2个问题相互影响。上下层的优化问题在优化过程中是相互辅助的,下层优化是在上层优化条件下实现的,反过来下层优化问题的最优反馈能够优化上层的目标函数。该方法可以同时考虑全局和个体的需求,从全局出发,满足不同的目标需求,并且不需要对目标进行求解,具有操作简便的优势。下面通过数学公式的形式对双层规划模型进行描述:

(7)

其中,(A)和(B)分别表示上下层规划;D和d分别表示上下层规划的目标函数;S和s分别表示约束条件;x和y均表示决策变量。

将双层规划模型引入到容器云资源动态配置中,运用双层规划理论来分析容器云资源动态优化配置问题[22-23]。

容器云资源动态配置过程中包含了2个优化目标,其一是容器云资源在每一个节点上的最大利用率,对应双层规划模型的上层规划问题,其二是容器云资源在虚拟机上的最小重复配置次数,对应双层规划模型的下层规划问题,将其称为最小迁移次数,即:

(8)

(9)

(10)

(11)

每一个容器云资源都配置完成之后,针对容器云资源的配置结果是否合理,来对其进行进一步优化[24-25],容器云资源动态配置结果在优化时的目标函数为:

(12)

与优化目标函数对应的约束条件为:

(13)

对目标函数进行求解,得到双层规划模式下的容器云资源进行调度的表达式为:

(14)

根据上述确立的目标函数与约束条件,给出容器云资源动态配置算法的具体实现步骤:

1)确定容器云资源在物理主机和虚拟机上的配置参数;2)在虚拟机上建立物理主机矩阵,对容器云资源的配置状态进行描述,配置完成,用ηij=1描述,否则ηij=0;3)设定上层目标函数,即容器云资源在每一个节点上的最大利用率;4)设定下层目标函数,即容器云资源在虚拟机上的最小重复配置次数[26-27];5)对容器云资源动态配置问题进行约束,若同时满足步骤3和步骤4,则实现目标,若不满足上述目标函数,则返回至步骤1。

综上所述,通过构建容器云资源动态配置结果在优化时的目标函数,结合约束条件,设计容器云资源动态配置算法,实现了容器云资源的调度。

2 实验对比分析

2.1 实验环境与参数设置

为了验证基于双层规划的容器云资源动态配置算法在容器云资源动态配置方面的优越性,引入文献[4]方法和文献[5]方法进行实验测试。本次测试在CloudSim云计算环境中搭建容器云资源动态配置的实验测试环境,网络带宽为80 Mbit/s、内存为8 GB,操作系统为Windows10,并通过Matlab7.1仿真软件对实验结果进行处理,以此保证实验结果的准确性。实验所用数据来自Microsoft Azure数据集,容器云资源动态配置实验过程中的具体的实验参数设置情况如下:

1)容器云资源的收费标准为5 元/h;2)用户对容器云资源的需求,模拟的是某网站的访问量;3)划分容器云资源提供的服务类型。

实验参数的具体设置情况如表1所示。

表1 实验参数设置

2.2 结果分析

3种容器云资源动态配置算法的容器云资源利用率测试结果如图2所示。

从图2的结果可以看出,在容器云资源数量一定的情况下,基于双层规划的容器云资源动态配置算法在容器云资源动态配置方面比较均衡,说明虚拟机上的容器云资源利用率比较充分,始终在95%以上;文献[5]的容器云资源动态配置算法的容器云资源利用率也很高,几乎都在90%以上;而文献[4]的容器云资源动态配置算法将动态配置任务执行综合能耗和截止时间作为评价目标,导致虚拟机之间的容器云资源动态配置负载无法均衡,容器云资源利用率的波动偏大。

图2 容器云资源利用率测试结果

3种容器云资源动态配置算法的完成时间对比结果如图3所示。

从图3的结果可以看出,随着容器云资源动态配置任务量的增加,3种动态配置算法的完成时间也越来越长。文献[5]的容器云资源动态配置算法不仅改进了传统方法的寻优劣势,还考虑了容器云资源的动态性,比文献[4]的容器云资源动态配置算法在完成时间上短;文献[4]的容器云资源动态配置算法存在收敛速度慢的问题,导致容器云资源配置的完成时间偏长;而基于双层规划的容器云资源动态配置算法将客户需要等待的最短时间、配置任务完成所耗费用等目标作为单一的目标评价函数,取得了比较好的配置效果。

图3 容器云资源配置的完成时间对比结果

为了进一步验证本文算法的有效性,将云资源在虚拟机上的重复配置次数作为实验指标,对3种方法进行测试,结果如表2所示。

表2 重复配置次数对比结果

由表2中的数据可知,采用本文算法对容器云资源进行动态配置时,云资源在虚拟机上的重复配置次数较低,明显低于文献[4]算法和文献[5]算法。说明本文算法达到了预期目标,即容器云资源在虚拟机上的重复配置次数最小,说明该算法具备一定的实际应用前景。

3 结束语

为了提升云资源的利用率,降低资源配置时间,本文提出了一种基于双层规划的容器云资源动态配置算法,该方法的主要创新点如下:

1)通过分析容器云资源动态配置决策问题,构建了容器云资源调度模型,实现对资源配置问题的初步分析。

2)通过构建双层规划模型,解决了传统多目标优化方法多目标之间不易比较的问题,通过上下层之间的关联,有效解决了目标优化问题,不仅有效提升了云资源利用率,而且减少了资源配置时间。

3)实验结果显示,该配置算法具有较高的云资源利用率和配置效率,验证了其应用价值。

虽然本文方法在一定程度上提升了资源配置效果,但是在双层规划中由于没有考虑到资源的多样性特点,下一步的工作是主要针对资源的多样化特点,研究出适应不同云资源的配置方法。

猜你喜欢
双层资源配置容器
玫瑰小蛋糕
容器倒置后压力压强如何变
人力资源配置与经济可持续发展的关系
辽宁省冰雪场地设施资源配置均等化研究
Palabras claves de China
墨尔本Fitzroy双层住宅
难以置信的事情
“双层巴士”开动啦
如何发挥企业家精神推动经济增长
次级通道在线辨识的双层隔振系统振动主动控制