云计算环境下基于能耗感知的弹性资源管理机制作者:天天论文网日期:2016-1-249:52:45点击:1摘要:目前云计算环境中弹性资源管理的研究,主要考虑了系统的功能和性能,较少关注到能耗问题。设计了一种结合请求率预测与能耗感知的弹性资源管理方法。该方法首先根据获取的请求变化信息学习基于小波变换的模型以准确预测用户对应用的请求率,然后根据请求率与资源开销信息将任务映射到资源开销相对固定的应用执行单元,以达到对系统能耗的弹性管理。实验通过不同的弹性策略的性能比较,验证了该方法在保证服务质量的前提下能更有效地降低能耗。关键词:云计算;能耗模型;弹性;预测控制对于云计算服务的提供者来说,他们的主要任务是保证针对用户的服务质量,并尽可能地减少系统资源开销。采取弹性的资源管理机制,可以在保证服务质量规约(servicelevelagreement)的前提下,有效地提高系统的资源利用率,从而减少能耗和运维成本。根据美国环保署发布的一项数据表明:当前美国数据中心所消耗的的电力已达到消耗总电力的2%[1]。而根据对典型数据中心耗能分析,实际计算设备占总耗能的52%,而其他辅助系统占总耗能的48%[2]。在现有的数据中心设计之初,由于较少的考虑到能耗问题,为应对突发情况、提高网络的可靠性和保证服务质量采用了冗余设计和留有资源余量的方法,而维持这些设备消耗了大量的能量。云平台的耗能问题作为云计算环境的一个重要问题,已被众多国内外研究者高度关注。通过对作业运行规律的调研,发现具有较大的节能空间。通过运用虚拟化技术和硬件节能技术,该问题可望被解决[3-4]。该问题的研究主要考虑3个方面的问题:1)实现多种能耗监控与测量方法,及时准确获取原始数据;2)设计节能机制并进行优化,在降低能耗、满足性能两方面进行权衡;3)如何建立能耗模型,能预测能量消耗的趋势和逻辑关系。已有研究工作大多基于应用的请求率来优化资源的供给方案。其中有些研究通过实时的请求变化情况,判断当前应用的运行情况,动态地增减系统资源[5];有些研究通过预测应用的请求率来达到提前供给资源,保证服务质量的目的[6];还有一些研究同时依据预测和实时响应来为应用提供弹性资源[6]。Nathuji等[5]实现了VirtualPower系统,综合利用如DVFS等硬件节能技术和减少所使用的硬件数量的软件技术。通过建立软件层面定义的电能状态和硬件的不同状态(ACPI标准,硬件可以并不支持这么多状态)之间的映射,可以很方便地使用软件方法进行CPU的动态调节。在单机支持软件调节的基础上,综合性能、平均负载、最高负载等多种因素,采用重放置和迁移等策略从不同的层次进行配置实现全局最优化节能配置。测试结果表明Virtu鄄alPower系统最高能节省34%的能耗。Wood等[6]实现了Sandpiper系统,通过在线负载预测和过载发现,使用黑盒和灰盒探测结合的方法,并利用时间序列模型,使得应用程序可以根据其在不同情况下对于能耗变化做出相应调整。Wang等[7]提出另一种方法,给出一个混合了慢时标非定常性和快时标随机性的分析模型,能自适应性配置更新服务器的容量,以匹配当前系统负载强度的要求。另外一些工作关注了系统资源的快速分配,降低资源实时分配的时间和性能开销,从而快速对负载的变化进行响应,以提高资源利用率。Xiao等[8]设计并实现了一个可对资源进行自动伸缩的IaaS平台,该方法只适用于CPU密集型应用,对于PaaS上大量的在资源开销方面不同的应用而言,该方法没有充分考虑它们的差异。针对CPU密集型应用,该方法提出一种基于CPU占用情况的弹性策略,系统依据CPU开销情况执行弹性操作。作者参照该方法实现了一个基于CPU占用情况的弹性策略,并与提出的方法进行了实验对比。Gong等[9]对应用进行了基于向量的特性描述,但在其实际系统的实验验证里,并没有对CPU、I/O等多种资源的消耗情况同时进行考虑,其应用部署策略也没有采取资源互补的搭配部署方式。Qin等[10]关注了分布式系统上的I/O密集型应用,分析了I/O密集型应用的特点和原因,提出针对I/O密集型应用的2种调度算法。但是该方法对资源的搭配使用考虑不够,如果系统的I/O资源不是性能的瓶颈的话,也很难证明该方法的有效性。综上所述,目前的相关研究工作较少有对平台上应用的特性进行综合考虑,它们或者忽视了应用往往是对多种资源进行竞争,而只局限地考虑了单一资源,或者忽视了应用请求随时间变化体现出的重要规律。作者提出一种云计算环境下基于能耗感知的弹性资源管理机制,在保证应用服务质量的前提下,尽可能地减低能耗。使用一个名为CloudCRM在线SaaS平台来进行案例研究。该平台的业务部门负责营销策略,其通过多租户(multi鄄tendency)的方法来满足客户个性化定制的需求;该平台的技术部门则负责开发和维护系统。根据历史监测(如图1),其业务负载通常表现趋势性,周期性和随机性。能否将其在保持性能的前提下,降低能耗,并保持系统的稳定性和可靠性?图1摇一日的客户会话数演化Fig.1摇Evolutionofclientsessionsoneday摇摇作者的主要贡献包括:1)通过挖掘应用的访问日志,找出应用请求率随时间的变化规律,以实现对用户请求率的预测。并且,通过结合监测记录,建立起各项资源开销等指标的特征模型。2)提出一种结合请求率的预测与资源开销感知,基于应用执行单元的请求分配机制。该机制根据应用请求将任务映射到资源开销相对固定的应用执行单元,在保证了用户服务质量的同时降低能耗。并且由于引入了请求率的预测,其能有效地减少了弹性操作的频率,从而降低了弹性操作带来的额外开销。1摇问题定义为了能提供可靠、高效的应用服务,SaaS平台上应用的服务往往由多个应用执行单元共同承担完成,并且通常单个应用执行单元不会独自占尽虚拟机上的全部资源。具体地,任务被分发给各个应用执行单元,由其负责管理所在服务器提供的资源,完成对请求的响应和处理,并将结果返回给用户。问题的形式化描述如下:给定D为一个3元组集合,其每个元素表示为(i,t,dit)。其中,i为应用执行单元,t为时刻,dit为主控制节点在时间t对于应用执行单元i的控制操作。控制操作包括当预测结果或监测数据满足特定条件时,会触发的扩展或伸缩操作。给定RC表示为应用资源消耗与其请求率之间的函数关系:RC={C1(r),…,Ci(r),…,Cn(r)}。其中,n为资源种类数,Ci(r)(1燮i燮n)为第i种资源消耗随请求率r的变化函数,特别地,规定C1(r)、C2(r)和C3(r)分别表示CPU、内存和磁盘的能耗情况。给定Y为一个3元组集合,其每个元素表示为(i,t,yit)。其中,i为应用执行单元,t为时刻,yit为主控制节点在时间t观察到的应用执行单元i的请求率。未知的yi(t+1)可以根据日志信息yt=(y1t,y2t,…,yit,…,ykt)来预测,然后根据预测的yi(t+1)、RC与3元组集合D生成时间t+1时的控制操作向量d(t+1)。其目的是将请求的预测、负载均衡和节省能耗结合起来,达到最优。2摇整体框架2.1摇能耗指标的获取运行在SaaS平台上的应用执行单元会消耗系统资源,这些资源主要包括CPU时间、磁盘时间、内存占用等。这些资源的消耗量往往随应用的请求率有规律地变化。根据调研,应用的CPU等资源占用率与请求率存在非线性关系,而IO、内存等资源占用率与请求率则存在明显线性关系。据此,下面分别定义CPU、内存、磁盘等子系统的能耗模型。2.1.1摇CPU能耗模型在t时刻,应用执行单元的CPU单位时间能耗非线性关系模型定义为:C1(r)=琢cpu伊r(t)茁cpu+酌cpu(t)(1)其中,r(t)为在t时刻的请求率,琢cpu、茁cpu和酌cpu为能耗模型中的相关参数,其值可以采用非线性回归的方法拟合得到。当系统处于稳定工作状态时,应用执行单元的单位时间能耗可以表示为:C1(r)=琢cpu伊r茁cpu+酌cpu(2)其中,r为稳定工作状态时的请求率。2.1.2摇内存能耗模型应用执行单元的内存单位时间能耗线性关系模型可以定义为:C2(r)=琢mem伊r+酌mem(3)其中,r为稳定工作状态时的请求率,琢mem和酌mem为能耗模型中的相关参数,其值可以采用线性回归的方法拟合得到。2.1.3摇磁盘能耗模型磁盘能耗模型相对较难建立,在数据中心服务器中,磁盘以RAID的形式存在,有单独的控制器,因此无法知道磁盘的功耗状态以及磁盘硬件缓冲的影响,只能简化处理,这样其模型类似于内存能耗模型,可以定义为:C3(r)=琢disk伊r+酌disk(4)其中,r为请求率,琢disk和酌disk为能耗模型中的相关参数,其值可以采用线性回归的方法拟合得到。2.2摇t时刻请求率r(t)的预测傅里叶变换可以将时间序列数据转换为频率序列数据以抽取时间序列的特征。但是由于傅里叶变换,而其本质上具有时域和频域局部化矛盾,使用小波变换分析和描述应用在各个单位时间内的平均请求率随时间的变化规律,该变换比较好解决了上述矛盾。回顾在问题定义中的内容,未知的yi(t+1)可以根据日志信息yt=(y1t,y2t,…,yit,…,ykt)来预测。具体地,可将时间序列yi(t+1)展开为:yi(t+1)=移lj=1棕jh(j)(5)其中,棕j为隐含层到输出层权值,h(j)为第j个隐含层节点的输出,l为隐含层节点数。更进一步,h(j)定义为式(6):h(j)=hj移ki=1棕ijxi-bjaæèççöø÷÷j摇j=1,2,…,l(6)其中,棕ij为输入层和隐含层的连接权值,bj为小波基函数hj的平移因子,aj为小波基函数hj的伸缩因子,hj为小波基函数。采用Morlet母小波基函数,其定义为:y=cos(1.75x)ex2/2(7)摇摇小波网络权值参数修正公式如下:1)计算预测误差e=yn-y(8)其中,yn为期望输出,y为预测输出。2)根据误差修正相关权值和系数棕ij(i+1)=棕iji+驻棕ij(i+1)(9)aj(i+1)=aji+驻aj(i+1)(10)bj(i+1)=bji+驻bj(i+1)(11)其中,梯度公式如下:驻棕ij(i+1)=-浊鄣e鄣棕iji(12)驻aj(i+1)=-浊鄣e鄣aji(13)驻bj(i+1)=-浊鄣e鄣bji(14)其中,浊为学习速率。算法的时间复杂度为O(nkl),其中,n为迭代次数,k为输入层节点的数目,l为隐含层节点的数目。2.3摇基于能耗指标的弹性机制回顾在问题定义中的内容,将根据预测的yi(t+1)、RC与3元组集合D生成时间t+1时的控制操作向量d(t+1)。为寻求控制操作向量d(t+1),采用代价函数J(t)=Q椰w·C(y(t+1))椰2+R椰d(t+1)-dt椰2(15)其中,Q为能耗系数,R为稳定系数,w为不同子系统能耗的权重,dt、d(t+1)为控制操作向量。采用梯度下降法来获取优化的控制操作向量d(t+1),梯度公式为:鄣J鄣d(t+1)=-2R·(d(t+1)-dt)(16)算法的时间复杂度为O(nk),其中,n为迭代次数,k为应用执行单元的数目。3摇实验评估3.1摇实验设计为了评估该系统,实验采用如下配置环境:1)该集群包括18个节点,每个节点有32位8核CPU和16GBRAM。2)所有节点都用CentOS6.2,Java1.6.022。为达到实验目的,部署了1个名为CloudCRM的SaaS平台来进行验证,是用Java实现的。在该平台上分别实现了4种弹性策略(详见3.2节),并用相应的评测指标(详见3.3节)进行比较。为采集相关信息,在平台上部署了监控程序,其监控系统的状态并将其记录在日志中。3.2摇比较方法对比了以下4种弹性策略,分别是:1)基于CPU占用的弹性策略C(C:CPUbasedelasticapproach)。参照Xiao等的工作[8]实现了该策略,其以单一的CPU开销情况作为系统执行弹性操作的依据。2)基于请求的弹性策略R(R:requestbasede鄄lasticapproach)。参照W