APP下载

基于资源延迟感知的云计算实时任务调度仿真

2021-11-17吴誉兰

计算机仿真 2021年9期
关键词:任务调度利用率调度

吴誉兰,黄 卫

(南昌航空大学科技学院,江西 南昌 332020)

1 引言

云计算利用网络将庞大的计算处理任务分割成多个不同的子任务,再通过服务器搜索分析,最终反馈给用户,提供资源的网格被称为“云”[1]。云计算具有计算速度快、范围广的特点,在各个领域都得到了广泛的应用,因此计算服务需求急剧增加。为了能够满足这些需求,在云计算数据中心部署了更多的主机。据资料统计,一个数据中心的主机数量可以达到几万,甚至几十万台。这些主机在运行时,云服务系统会消耗大量电能,高能耗不仅会提高工作成本,同时也会带来一定的环境污染。如何解决云计算数据中心的高能耗问题已经成为当前学术界的研究热点[2]。

虽然目前针对云计算任务调度和资源分配进行了一定的研究,但是并未取得显著的研究成果。云计算是一种收费计算,根据云的使用时间来判定收取费用额度,因此当前所研究的资源调度算法的关注点多是在缩短任务时间上。文献[3]提出一类柔性流水调度与平行机调度相结合的两阶段流水调度模型,模型中第1阶段有1台机器,第2阶段有m台同构并行机,每个任务在第2阶段需要size_i台机器同时并行执行,目标是所有任务都完成的完工时间最小化。详细分析了前人近似算法基本过程,给出该算法近似比分析的局限性。给出近似比为3的算法,摒弃了前人给出的约束条件。研究了当第2阶段机器数为2和3时的两种特定情况,采用列表调度思想完成任务调度,但此方法存在调度时间长的问题。文献[4]提出了基于反向自适应量子粒子群算法(RAQPSO)的云计算任务资源调度方法。通过调整惯性权值参数并加入反向学习算子来提高算法的全局搜索能力。采用自适应机制,将适应度函数的变化程度作为惯性权值的更新因子,从而使粒子不易陷入局部最优。加入粒子反向学习算子,加强了粒子全局搜索能力。经过实验表明,RAQPSO算法节约任务完成时间,但资源利用率较低。文献[5]提出基于蜂群算法的云计算任务资源调度方法。引入高斯变异和自适应因子改进人工蜂群算法,兼顾算法前期全局搜索能力和后期局部细致搜索。引入自适应交叉概率改进差分进化算法,提出差分进化人工蜂群算法。两种改进算法并行寻优并及时交流最优解及位置信息,使两算法能够快速靠近最优解,减少算法迭代次数,提高算法收敛速度和精度,但是该方法在调度过程中耗时较长。

鉴于此,基于资源延迟感知提出了一种新的实时任务调度方法,根据感知的机器启动时间来提高云计算数据中心保障实时任务调度的实效性,较低云计算能耗。

2 云计算的实时任务调度问题

云计算以分布式并行处理的方式处理大规模计算任务,将一个大任务分解成多个小任务。在分析任务信息后,将不同的任务分配到不同的节点上,所有子任务的处理结果即是大任务的处理结果,这一结果最终会反馈给用户[6]。云计算使用的编程模型通常为Map/Reduce编程模型,该模型运行机制如下图1所示:

图1 Map/Reduce编程模型运行机制

分析图1可知,一个并行处理任务包括多个Map任务和多个Reduce任务,运行机制将任务执行阶段分为两个结算,分别是Map阶段和Reduce阶段[7]。

Map阶段:计算分配到自身的数据,根据Map输出的key值,将所有得到的结果映射到对应的Reduce任务中;

Reduce阶段:聚集处理Map阶段传输的数据,得到最终的输出结果。

在云计算环境中,有多种不同的服务类型,不同服务类型的资源使用指标、负载类型指标和性能评价指标有很大的不同,因此服务类型会直接影响资源调度效果[8]。云计算服务包括数据计算密集型服务和交互密集型网络处理服务两种,研究的资源调度方法主要是针对第一种服务类型。

在进行资源调度时,将资源自身因素考虑在内,通过划分资源等级确保短时间内平衡资源。分类云计算中的资源后,通过可标识资源自身属性的资源可见度β这一指标判断云计算资源的计算能力和通讯能力,β的计算公式如式(1)所示

β=a×m×p+b×D+c×B

(1)

式(1)中,m代表CPU的个数,p代表云计算环境下CPU的处理能力,a代表资源计算能力在资源可见度中的比重,取值为40%,D代表云计算环境下的磁盘容量,单位为MB,b代表磁盘容量在资源可见度中的比重,取值为20%,B代表云计算资源所在环境的网络带宽,单位为Mb/s,c代表网络带宽在资源可见度中的比重,取值为40%。

根据式(1)计算资源可见度β,从而实现资源等级分类,当β≥35%时,定位为1级;当20%≤β≤35%时,资源定位为2级;当10%≤β≤20%时,资源定位为3级;当β≤10%时,资源定位为4级[9]。

传统的云计算实时任务调度算法会将所有的任务都集中在一个节点上运行,这样就会导致该节点负载过重,单个节点资源利用率高达100%,而其它资源闲置,严重影响资源负载[10]。此次研究通过改进传统算法缺陷,平衡拥塞和闲置的资源,从而达到资源平衡。

3 基于资源延迟感知的云计算实时任务调度

3.1 调度框架

设定虚拟云服务系统的主机集合为H,内部的主机用h表示,则有

H={h1,h2,……,hm}

(2)

式(2)中,m代表主机的数量,所有的主机共同组成硬件平台,在分析硬件平台性能时,要判断主机中最大的CPU频率(MHz),内存(GB)、带宽(Mb/s)和最大功耗(W)。

调度框架中的调度层由滚动窗口来分析新的任务,并判断等待的任务状态;由资源监控器监控云计算环境下资源调度工作状态,所有的监控信息都会反馈到资源底层,从而使资源底层获得丰富的信息;任务调度分析器会将滚动窗口中的任务传到虚拟机上;如果云计算数据中心的负载出现变化,资源调配器会以动态的方式伸缩资源,每一个虚拟机都会放置一个正在执行的任务[11]。

3.2 资源延迟感知的云计算实时任务调度模型

用户提交到云服务系统中的应用具有动态性和随机性,因此研究的任务调度算法是针对实时、非周期性的独立任务开展的。任务集设定为T,则有T={t1,t2,……,tm},每个子任务都是由到达时间、任务长度和截止时间来决定。由于虚拟机CPU处理能力存在异构性,则任务ti在虚拟机上的执行时间可以用式(3)来表示

(3)

(4)

式(4)中,Vi表示主机CPU的工作电压,fi表示主机CPU的工作频率,由式(4)可知,活跃能耗与主机CPU工作电压的平方和工作频率成正比[12]。

CPU的工作电压和工作频率二者呈现线性关系,随着工作频率的增加,工作电压也在增加,因此主机的活跃功率可以只通过工作频率来表示,如式(5)

(5)

(6)

主机hj活跃能耗计算式(7)

(7)

根据主机的活跃能耗计算公式和空闲能耗计算公式,得到整个主机CPU消耗功耗计算公式,如式(8)所示

(8)

整合上述公式,得到主机CPU消耗功耗计算公式为

(9)

式(9)中,设定在执行任务集合的起始时刻为st,结束时刻为et,则处理任务集T的主机总能耗计算式(10)为

(10)

则处理云数据m台主机消耗的总能耗计算公式可以表示为

(11)

在不同的约束条件下,使用的调度模型不同,调度方式也不同。通过不同的调度方法来确保任务能够在短时间内最大程度地完成,减少能量损耗。调度模型如式(12)所示

(12)

式(12)中,xi,jk代表任务与虚拟机之间的映射关系,如果任务能够顺利地映射到虚拟机上,则xi,jk=1;如果任务不能够顺利地映射到虚拟机上,则xi,jk=0。

调度过程中,所有的任务需在截止时间之内完成,才能确保服务质量满足用户要求。所有的任务都是不可分割的。1台虚拟机可以执行多个任务,但是1个任务不可以在2台或2台以上虚拟机上执行,在整个调度过程中,主机分配给虚拟机的CPU能力、内存和带宽都不能超过自身的资源能力。至此,完成云计算实时任务调度模型的构建。

3.3 资源延迟感知的云计算实时任务调度过程

当活跃主机剩余的CPU资源超过应急虚拟机的资源需求,就要将主机频率增加。调度过程图示如图2所示。

图2 资源延迟感知的云计算实时任务调度过程

分析图2可知,在应急虚拟机未得到任务时,虚拟机的工作状态为空闲状态,占用的CPU资源较少,主机内部拥有充足的剩余CPU资源,当应急虚拟机得到任务后,主机频率会迅速增大,确保能够为应急虚拟机提供足够的CPU资源,一旦任务完成,应急虚拟机就会释放资源。由此可知,当主机能够拥有充分的空闲资源,被创建的新虚拟机消耗的时间开销就会很短,实时任务延迟时间也会对应缩短,系统的任务时效性执行能力更强。

上述调度方法仅限于主机空闲状态,如果主机上存在正在执行的虚拟机任务,或者是在等待执行任务,主机就要将能够忍受延迟的资源转移到应急虚拟机,由应急虚拟机完成任务后释放资源,工作过程如图3所示。

图3 特殊条件下云计算实时任务调度过程

分析图3可知,主机的CPU内部资源绝大部分都分给了两个虚拟机。当应急虚拟机得到紧急任务时,主机内部的资源并不能满足应急虚拟机的要求。所以要将其它虚拟机的资源调度出来,使应急虚拟机能够迅速执行任务。

4 仿真与分析

为验证本文研究的云计算任务调度方法性能优劣,设计一次仿真。实验环境为MATLAB环境,操作系统为Windows10,主机频率为3.21GHz。利用文献[4]提出的基于反向自适应量子粒子群算法的云计算任务调度方法和文献[5]方法提出的基于蜂群算法的云计算任务调度方法作为本次实验对照组,与研究方法进行性能对比。实验测试迭代次数为140次,实验设定在云计算任务数分别为50种、100种、200种这三种情况下对比不同方法的云计算任务调度耗时和资源利用率两个指标。具体实验结果以及分析如下:

4.1 不同方法下云计算任务调度耗时对比

为验证论文方法的时间成本性能,进行一次云计算任务耗时对比实验。得到的仿真结果如图4所示。

图4 不同任务种类下三种方法耗时对比

分析图4实验结果可知,当云计算任务种类数为50时,在前期迭代过程中,文献[4]、文献[5]方法和研究方法调度任务完成时间相差较小,在迭代次数到达40次之后任务完成时间趋于稳定。但是从总体来看,随着迭代更新次数的增加,研究方法所用时间小于文献[4]、文献[5]方法,完成时间为100s。当任务增大到100种时,文献[4]、文献[5]方法和研究方法任务完成时间差距逐渐加大,文献[4]方法调度任务完成时间最高,当迭代次数为140个时完成时间为139s,文献[5]方法次之,当迭代次数为140个时完成时间为118s,研究方法完成时间最少,当迭代次数为140个时完成时间为80s,此时研究方法调度任务完成时间对比两种传统方法,其优势逐渐凸显。随着任务量增大,三种方法花费的调度时间相差越来越大,当任务种类数增大到200时,三种任务调度方法的完成时间对比明显,当迭代次数为140时,文献[4]、文献[5]方法的完成时间分别为155s、141s,研究方法的完成时间为64s,对比两种传统方法分别减少了91s、77s。根据上述数据说明研究方法的调度任务时间更短,相比传统方法而言更具有实际应用意义。

4.2 不同方法下云计算资源利用率对比

为了验证研究的调度方法资源利用率情况,运用三种方法在相同的实验环境中,对不同数量的任务进行调度,并计算资源利用率。不同方法的资源利用率如表1所示。

表1 资源利用率

对比表1的数据结果,研究方法能有效提高资源利用率,当任务种类为50种时,文献[4]、文献[5]方法的资源利用率分别为35%、41%,研究方法的资源利用率为51%;当任务种类为100种时,文献[4]、文献[5]方法的资源利用率分别为48%、53%,研究方法的资源利用率为67%;当任务种类为200种时,文献[4]、文献[5]方法的资源利用率分别为75%、80%,研究方法的资源利用率为98%。随着任务数量的增加,两种传统方法的局限性十分明显,研究方法的资源利用率高。

5 结束语

针对传统实时任务调度方法计算时间长、资源利用率低的问题,提出基于资源延迟感知的云计算实时任务调度。为了研究云计算的实时任务调度,通过设立调度模型来提高调度费用和调度效率,实验结果证明,研究的调度方法能够减缓两种传统调度方法资源不平衡的问题,使资源得到最大化利用,同时考虑缩短调度任务时间,从而提高调度效果。未来将从如何提高云计算服务质量方面进行研究,进一步完善云计算实时任务调度方法。

猜你喜欢

任务调度利用率调度
基于智慧高速的应急指挥调度系统
基于半划分调度的Linux 实时调度算法改进*
基于CE-PF算法的舰载机离场调度优化问题
水资源平衡调度在农田水利工程中的应用
基于动态能量感知的云计算任务调度模型
2020年第三季度全国工业产能利用率为76.7%
公共充电桩利用率不足15%
山西省煤炭产业产能利用率测度
山西省煤炭产业产能利用率测度
韩可再生能源利用率倒数