APP下载

云系统中能量感知任务的整合策略及调度方法

2021-03-15张栋梁康宝生董仕

关键词:能源消耗利用率集群

张栋梁,康宝生,董仕

(1 周口师范学院计算机科学与技术学院,河南 周口 466001;2 周口师范学院信息安全研究所,河南 周口 466001;3 西北大学信息科学与技术学院,陕西 西安 710069;4 华中科技大学计算机科学与技术学院,湖北 武汉 430074)

由于网络设备、应用程序和硬件性能等相关技术的成熟,云计算技术变得越来越受欢迎[1]。目前,云系统资源分布十分广泛,涉及的范围从单个服务器到整个大型数据中心。为了整合和充分利用各种资源,需要有效的方法对云系统资源进行统一数据管理[1],所以如何降低云系统资源能源消耗成为近年来云计算领域研究的焦点问题。

根据需求动态创建虚拟机[2]是解决云系统资源管理的有效方案,不断出现的新技术[3-4],如压缩存储技术、请求识别技术、资源阈值的定义、虚拟机之间的任务分配、资源利用与能源消耗之间的关系等旨在提高CPU利用率、减少能源消耗、降低数据中心成本,并在一定程度上节省部分资金,但能源消耗随着CPU利用率的改变也发生了较大变化,较高的CPU利用率意味着较大的能源消耗,这逐渐使越来越多的研究者通过控制CPU利用率节省能源消耗[5-8]。因此,本文提出一种能量感知任务整合方法(energy-aware task integration,ETI),其基本思想是通过分配CPU利用率和管理虚拟集群之间的任务整合来实现云系统资源负载均衡。本文阐明ETI方法管理云系统中的任务降低系统功耗的过程,提出的能源成本模型综合考虑了任务迁移到其他虚拟集群时的网络延时,且能最大限度降低云系统中的能源消耗,比较分析了本文提出的ETI方法、改进的Min-Min算法[9]、虚拟机部署算法(ant colony optimization simulated annealing,ACOSA)[10]的结果,并通过实验证实了该方法的有效性和可靠性。

1 云系统模型

1.1 虚拟集群和任务分配

本文研究的模型是由多个虚拟集群组成的云系统,每个虚拟集群提供有限数量的虚拟机,虚拟机是执行任务的基本单元,CPU判断虚拟机是否有足够的资源提供服务。

假设云系统中有p台虚拟机和q个虚拟集群,VM={vm1,vm2,…,vmp}是云系统中虚拟机的集合,VC={VC1,VC2,…,VCq}是云系统中虚拟集群的集合。不同链接下集群的网络带宽范围从0.1~1 Gb/s,每个集群的节点数取决于释放的资源,在云任务中通过队列提交任务,并将这些任务分配给合适的VM。每个集群都有其工作队列,包含所有任务信息,主要有任务tj到达时间Taj、任务tj的CPU处理时间Tpj、任务tj的数据大小DSj和CPU利用率。

由于不同时间每个集群上可用的资源不同,故每个集群都有其自己的策略整合任务,以达到能源消耗最小化。LIEN C H等[11]研究结果表明,负载任务虚拟集群上的CPU利用率能显著影响能源消耗,且系统模型的CPU利用率和能源消耗之间的关系也不是线性的。

本文把系统中的VM能耗分为6个不同等级,包括一个CPU空闲状态和6种CPU利用率状态,这6种状态依次用等级1~6表示(表1)。由于系统能耗与CPU利用率的关系不是线性的,若多个CPU共享工作负载,则能源的消耗会减少,所以本文通过在多台VM上均匀地重分配任务尽可能实现CPU利用率最小化。因为每个集群上的资源有限,单个虚拟机集群任务量过重或者负载过大须进行虚拟集群任务迁移,而任务迁移会带来额外开销,所以任务整合产生的能源效率与任务迁移花费的成本之间需要平衡。本文基于BALIGA J等[12]的研究把云系统网络设施看作一个无源光网络,即光纤到节点或点到点的光学系统,网络访问和通信能量消耗计为2βW/s,接入速率从0.1~1 Gb/s不等,设定网络传输发生在虚拟集群上时,所有的虚拟集群和VM都位于同一个数据中心,且虚拟集群之间网络传输恒定。

表1 虚拟机状态和CPU利用率关系表

1.2 能源效率的任务整合

云系统中的资源可以分为物理机资源和由程序管理的虚拟资源二大类,每台物理机管理多个虚拟机资源,云系统中任务和物理机存在两级映射关系,一级是任务和虚拟机之间的关系,另一级是虚拟机和物理机之间的映射关系。把虚拟机作为中介,可以找到任务和物理机的关系,这为研究云系统中能量感知的任务整合方法和优化云资源调度过程提供了理论基础。

假设VM在空闲状态下能源消耗为αW/s,当CPU利用率在0%~20%时,执行任务需要额外消耗βW/s的能源;当CPU利用率在20%~50%时,额外消耗的能源增加到3βW/s;随着CPU利用率的增加,能源消耗的速度也会加快,例如,当VM的CPU利用率为70%时,其消耗能源为α+5βW/s。因此VMVi的能源消耗计算公式可表示为:

(1)

令α=β,当CPU利用率低于50%时,VM每消耗βW/s能源时CPU利用率增加约25%;当VM的CPU利用率为70%时,消耗能源约3βW/s,VM每消耗βW/s能源时CPU利用率增加约23.3%;当CPU利用率为80%、90%、100%时,能源效率分别为20%、18%和16.6%。所以,在t0~tm期间VMVi总的能源消耗为:

(2)

给定一个有n台VM构成的虚拟集群VCk,虚拟云在时间段t0~tm的能源消耗为:

(3)

1.3 能源感知任务整合策略

ETI的主要思想是整合任务且保持VM的CPU利用率低于某个特定的CPU利用率阈值。实际应用中,由于负载的动态变化,传统的整合机制会造成虚拟机群的频繁调度、任务重复移动和不必要的能耗损失,从而影响云系统的稳定性。针对此问题,本文研究设计一个多虚拟集群VCA、VCB、VCC组成的云系统,在虚拟集群VCA内任务的整合策略、步骤如下:

第1步:VCA的调度器把任务tj分派给VM,如果有多个VM可用,匹配策略选择最适合的VM;

第2步:如果没有可用VM,并且VMVi低于设定的CPU利用率阈值,则VCA会请求其他虚拟集群,如VCB或VCC提供资源支持;

第3步:如果VCB和VCC都能提供CPU利用率阈值以下的VM,则使用式(4)从虚拟集群里选择迁移和执行任务消耗能源最少的VM;

第4步:如果所有虚拟集群都不能提供低于CPU利用率阈值的VM,则将任务tj分配给本地消耗能源最少的Vi,即VCA。

表2 虚拟机中任务基本情况

图1 虚拟集群VCA上分配任务t5

任务整合策略使用最合适的方法优化资源利用率,最佳匹配策略通过把任务迁移到最接近CPU利用率阈值的VM上实现资源优化。CPU利用率阈值取决于硬件体系结构,而且不同云系统上的阈值不同,本文把CPU利用率阈值设定为Tv作为合适分界点,并将Tv作为CPU利用率的默认阈值。

假设在虚拟集群VCA中有3个VM(V0,V1,V2)。在VM上分配t0~t45个任务,任务的处理时间、数据规模和CPU利用率情况如表2所示,现在确定把第6个任务t5是分配给V0还是分配给V1。如图1所示,设CPU利用率阈值为70%,由于V1和t5的CPU总利用率接近70%,应用最佳匹配策略,故将任务t5分配给V1。如果分配和执行任务t6时出现问题,是因为任务t6的CPU利用率为50%,将t6分配给VCA中的任何VM都将超过CPU利用率阈值70%。为了使CPU利用率保持在70%以下,虚拟集群VCA请求VCB和VCC的资源支持,同时进行任务整合工作,因为VCB和VCC的可用资源都低于阈值70%,故VCA根据任务整合策略需要识别哪个集群可以节省最多的能源,当把任务与集群中的资源进行整合时,为了估算任务与集群资源合并时消耗的能量,需同时考虑CPU利用率和网络传输等情况。若给定一个任务tj,该任务从VCP迁移出去与VCQ内Vi进行整合,则预期的能源消耗为

(4)

式(4)中,BWPQ表示VCP到VCQ的带宽,DSj为任务tj的数据集大小。

如果把任务t6迁移到虚拟集群VCB和VCC,用式(4)计算出消耗的能源为 (3β+α)×10+210/250×2β和(2β+α)×10+210/500×2β,得出VCC消耗的能源最少,因此将任务t6整合到VCC中的VM上。

图2是虚拟集群VCB和VCC没有足够资源支持VCA中任务t6时发生的情况。因为虚拟机群VCB和VCC的负载较高,CPU利用率都不低于阈值70%,虚拟集群VCB和VCC没有足够资源支持VCA中任务t6,所以VCA不会寻求外部资源支持,而会根据任务整合策略将任务t6分配给本地资源,选择虚拟机V0,但任务t6分配给VCA中虚拟机V0后与低于CPU阈值70%不符,故需检查VCA作业队列中所有任务的CPU利用率阈值,若VCA中资源都大于CPU利用率阈值,则执行任务tj,若不超过CPU利用率阈值,则多个资源执行任务tj,把任务tj分配给消耗最少能源的虚拟集群,否则把任务tj整合给VCA中消耗能源最少的VM。

图2 不符合70%CPU利用率时把任务t6支配给VCA中的虚拟机V0

表3 不同的工作负载和资源情况

2 实验部分

2.1 实验设置与方法

为了评价ETI策略性能,本文在墨尔本大学网格实验室和Gridbus项目开发的Web 平台CloudSim上分别实现ETI方法和改进的经典Min-Min算法(Imp Min-Min)、ACOSA算法进行比较,其中Imp-Min-Min算法是在Min-Min算法基础上综合考虑了云系统中服务质量以及能耗因素进行优化得到,其中服务质量主要包括任务完成时间和系统可靠性,而ACOSA算法是基于优秀的蚁群算法的虚拟机部署算法,在模拟退火算法的基础上进行优化,提高了算法求解的全局寻优能力和搜索速度。设Imp Min-Min算法、ACOSA算法的CPU利用率阈值为ATv,且ATv>Tv,在测试VCA中5、10、15个节点数量分别表示数量资源较少(LR)、中等 (MR)和较大 (HR),VCB和VCC有中等数量的资源(MR)分配给虚拟集群不同数量任务表示不同工作负载,其中任务个数1 000、2 000和3 000分别表示低负载(LL),中负载(ML)和高负载(HL),任务开始时间在0~9 s内,不同工作负载代表不同任务密度,任务平均处理时间、CPU利用率和数据大小分别为50 s、50%、100 Mb,共使用27个案例测试ETI性能,结果如表3所示,其中虚拟集群的参数用(δ1,#,δ2)表示,δ1为本地集群VCA的工作负载,#表示VCA上可用节点数量,δ2表示VCB和VCC的工作负载,例如(L,5,L)表示VCA是低负载、在VCA上有5个节点、VCB和VCC也是低负载的。

2.2 实验结果与分析

为了验证ETI方法的性能,对Imp Min-Min和ACOSA算法在平台CloudSim上进行类扩展,分别实现2种算法的方法类Imp()和ACOSA(),同时在主机类中设置了6个成员变量用于表示物理机的在不同状态下的能耗情况。在VCA上的工作负载和资源级别不同的情况下,表4是云系统中ETI方法和Imp Min-Min算法管理云系统资源进行虚拟机分配时的能耗状态结果,表4中数据和下图所示结果是通过在CloudSim 平台上运行12次测试数据得到的平均值;图3~5是本文ETI方法、ACOSA算法对比的能耗结果。如上节所述,VMVi在空闲状态下可能消耗αW/s能量,也可能消耗β~5βW/s能量,这取决于执行任务时CPU利用率的5个级别中哪个是活跃的,本文参考文献[11]将α设定为7β。

当虚拟集群VCB和VCC负载较低时ETI方法和ACOSA算法的能耗对比结果(图3)表明:

图3 VCB和VCC是低负载时的结果

(1)对(L,5,L)来说,VCA的资源非常有限,只有5个节点,VCA为了降低能源消耗,需要从VCB和VCC寻求资源支持,把任务迁移到邻近集群VCB和VCC,对资源进行统一整合,为实现虚拟机负载均衡,在满足不超过阈值Tv情况下,ETI方法的性能优势较明显。

(2)对(L,10,L)和(L,15,L)这2种情况来说,因为VCA有足够资源,不需要任何资源支持,故任务整合不会发生,ETI策略和ACOSA算法性能基本相同;当VCA为高负载时,不管其节点数多少,通常会发生大规模任务整合,此情况下ETI方法比ACOSA算法的能耗优势更突出。

(3)综上所述,在大多数情况下ETI策略的性能更好。这是因为和VCA邻近低负载集群VCB和VCC相比,其工作负载较高,这会使相邻集群进行大规模任务整合。

表4 ETI方法和Imp Min-Min算法的能耗对比 单位:×105β /W

当虚拟集群VCB和VCC中负载时ETI方法和ACOSA算法的能耗对比结果(图4)表明:

图4 VCB和VCC是中负载时的结果

(1)对于(L,5,M)、(L,10,M)、(L,15,M)这3种情况,因为虚拟机群VCA本身负载较低,而VCB和VCC为中负载,所以不会发生任务整合;另外,对于(M,10,M)、(M,15,M)、(H,15,M),虽然VCA为中高负载,但是节点数较多,同时VCB和VCC也为中负载,所以也不会发生任务整合;

(2)对于(M,5,M)、(H,5,M)、(H,10,M)这3种情况,ETI策略和ACOSA算法性能优势差距较大,因为对于(H,5,M)和(H,10,M)这2种情况,VCA的工作负载高于VCB和VCC,任务整合会经常发生,当VCA工作负载高于其相邻集群(H,15,M)时,ETI策略并没有显著改进,因为VCA已经有足够资源(15个节点)去处理其作业队列中的任务。

(3)当VCA工作负载明显高于邻近集群工作负载时,为了实现虚拟机负载均衡,在满足虚拟机整合策略步骤(4)和不超过CPU利用率设定阈值Tv情况下,VCA会把任务迁移到邻近集群VCB和VCC(除VCA中节点数较多之外),对资源进行统一整合,故在此情况下ETI方法的性能优势较突出。

当虚拟集群VCB和VCC高负载时ETI方法和ACOSA算法的能耗对比结果(图5)表明:

图5 VCB和VCC是高负载时的结果

(1)对于(M,5,H)和(H,5,H)这2种情况,因为VCA资源极少,虽然邻近集群VCB和VCC高负载,为了实现负载均衡,在满足不超过阈值Tv情况下会在云系统中进行大量任务整合。

(2)除上述情况之外,因为邻近集群VCB和VCC处于高负载状态,不管VCA是何种情况,一般不会将任务迁移到邻近集群VCB和VCC,除非VCA资源低于它的邻近集群。

使用超高工作负载测试案例,超高工作负载包括4 000个任务,参数设置情况如表5所示,结果(图6)显示:超高负载迫使VCA向VCB和VCC请求资源支持,故会发生大规模任务整合,在此情况下ETI策略在大多数情况下明显优于ACOSA算法。

表5 VCA超高工作负载(EHL)情况

图6 VCA超高工作负载(EHL)时结果

总之,以虚拟集群VCA、VCB和VCC为例,云系统中任务整合通常在以下情况下进行:

(1)当虚拟集群VCA中资源较少时,为了处理任务负载,VCA会借助临近资源分担负载;

(2)当虚拟集群VCA中工作负载明显高于集群VCB或VCC时也会发生任务整合。如果同时符合以上两点,则会发生大规模任务整合。

(3)以上两点同时需要满足任务整合策略和云系统中CPU利用率阈值不超过设定阈值Tv等条件。经过多次试验测试证实,在云系统中任务整合规模越大,系统资源利用率越高,平均能耗越小,ETI方法优势越明显,并实现系统负载均衡。据统计,在能耗方面ETI方法比Imp Min-Min算法和ACOSA算法平均减少约18%的能源消耗,系统成本节约9%左右。

3 讨论

(1)本文研究的能耗问题不仅在云环境下受到重视,在很多节能领域都是一个重要问题,尤其是消费者和企业都希望自己的产品使用更少能耗来降低成本。但是随着系统规模增加,相应能源消耗逐渐增大,这个问题从一般网络延伸到云系统[12],由于计算机数据中心由大量计算机集群组成,故能源消耗在任何方面的减少都能带来巨大的经济节约。

(2)计算机软硬件在系统运行过程中产生能耗。ALIZAI M H等[13]提出了影响能源消耗的硬件和软件组件,其中CPU是最重要组件,因为在计算机系统中它对能源消耗有重大影响,这和本文研究的CPU利用率对能耗的影响一致。LIEN C H等[11]收集能耗和CPU利用率数据,并利用这些数据生成反映两者关系的模型,解释了CPU利用率和能源消耗之间关系不是线性增加的,这些研究结果被本文提出的ETI方法所用。

(3)系统在处理任务过程中会产生大量能耗,如何把能耗降到最低又保证系统可靠性和鲁棒性最优是主要研究问题。胡志刚等[14]把任务抽象成粒子群,利用粒子群优化算法对任务进行自动分配,这种方法减轻了部分服务器负载过重问题,与本文提出的任务整合策略相比,缺少规则的调度策略和算法程序对资源进行分配。FAN X B[15]等研究数千台集群级别服务器的能量利用率发现,即使在调优良好的应用程序中也存在明显能源消耗问题,这是在静态的系统中对能耗进行的测试,而本文研究的动态任务整合系统的优势在于,任务负载可以在系统间根据物理机能力大小进行动态分配工作量,减少因局部信息处理速度过慢造成整个系统效率低下问题,从而可节约了系统能源消耗。

(4)系统能耗测算也是能耗优化的一部分,而本文的另一特点考虑了网络带宽和迁移整合能耗的测算方法。BERL A[16]等对集成系统如何管理能源节约的深入研究发现了影响云计算环境的节能因素,且在物理机上的能量消耗可以直接测量,但虚拟机的功耗不能直接测量。对此本文定义了计算虚拟机、虚拟集群和任务迁移整合网路的能耗公式,能够实时计算出云系统中任意时间段服务器和虚拟机能量消耗值,方便根据问题采取针对性节能措施减少能源消耗。

4 结论

本文分析了当前大规模数据系统中能耗过高的原因,提出了减少系统能耗的ETI新方法,该方法与系统优化能耗算法Imp Min-Min、ACOSA相比有以下明显的优势:

(1)设置的CPU利用率阈值Tv是可变的,能灵活解决不同系统硬件和架构上决定的系统性能问题。

(2)系统对任务负载的处理不仅涉及迁移和整合,还能对系统资源进行优化处理。

(3)系统中能耗的统计更精确,考虑了网络传输情况以及在此基础上的任务转移所消耗的能量。

(4)ETI方法不仅考虑了整个系统中虚拟集群间的负载均衡,还包括每个集群中虚拟机的CPU利用率问题,能有效提高云环境实时工作的系统可靠性和数据处理的效率,在ETI方法支持下系统总能耗比原来减少约18%,系统成本节约9%左右。

猜你喜欢

能源消耗利用率集群
海上小型无人机集群的反制装备需求与应对之策研究
化肥利用率稳步增长
做好农村土地流转 提高土地利用率
一种无人机集群发射回收装置的控制系统设计
浅议如何提高涉烟信息的利用率
Python与Spark集群在收费数据分析中的应用
勤快又呆萌的集群机器人
需求驱动我国能源消耗效应研究——基于改进的两级分解法
板材利用率提高之研究
工业制造项目新增能源消耗影响的对比研究