MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}}); function MyAutoRun() {    var topp=$(window).height()/2; if($(window).height()>450){ jQuery(".outline_switch_td").css({ position : "fixed", top:topp+"px" }); }  }    window.onload=MyAutoRun; $(window).resize(function(){ var bodyw=$win.width(); var _leftPaneInner_width = jQuery(".rich_html_content #leftPaneInner").width(); var _main_article_body = jQuery(".rich_html_content #main_article_body").width(); var rightw=bodyw-_leftPaneInner_width-_main_article_body-25;   var topp=$(window).height()/2; if(rightw<0||$(window).height()<455){ $("#nav-article-page").hide(); $(".outline_switch_td").hide(); }else{ $("#nav-article-page").show(); $(".outline_switch_td").show(); var topp=$(window).height()/2; jQuery(".outline_switch_td").css({ position : "fixed", top:topp+"px" }); } }); 面向云计算环境的能耗测量和管理方法
  软件学报  2016, Vol. 27 Issue (4): 1026-1041   PDF    
面向云计算环境的能耗测量和管理方法
林伟伟, 吴文泰     
华南理工大学 计算机科学与工程学院, 广东 广州 510006
摘要: 云计算引领了计算机科学的一场重大变革,但与此同时,也不可避免地带来了日益凸显的能源消耗问题,因此,云计算能耗管理成为近几年的研究热点.云计算系统的能耗测量和管理直接关系到云计算的可持续发展,能耗数据不仅关系到能耗模型的建立,而且也是检验云计算资源调度算法的基础.为此,在广泛研究现有能耗测量方法的基础上,归纳总结了当前云计算环境的4种能耗测量方法:基于软件或硬件的直接测量方法、基于能耗模型的估算方法、基于虚拟化技术的能耗测量方法、基于仿真的能耗评估方法,并分析和比较了它们的优势、缺陷和适用环境.在此基础上,指出了云计算能耗管理的未来重要研究趋势:智能主机电源模块、面向不同类型应用的能耗模型、混合任务负载的能耗模型、可动态管理的高效云仿真工具、动态异构分布式集群的能耗管理、面向大数据分析处理和任务调度的节能方法以及新能源供电环境下的节能规划,为云计算节能领域的研究指明了方向.
关键词: 云计算    能耗测量    能耗管理    虚拟化    
Energy Consumption Measurement and Management in Cloud Computing Environment
LIN Wei-Wei, WU Wen-Tai     
School of Computer Science & Engineering, South China University of Technology, Guangzhou 510006, China
Foundation item: National Natural Science Foundation of China (61402183); Natural Science Foundation of Guangdong Province of China (S2012030006242); Guangdong Provincial Science and Technology Projects (2014B010117001, 2014A010103022, 2014A01010 3008, 2013B090200021, 2013B010202001); Fundamental Research Funds for the Central Universities, SCUT (2015ZZ098)
Abstract: Cloud computing is leading a revolution in computer science. However at the meantime, the large-scale ecosystem of cloud infrastructure brings about the problem of huge energy consumption. Therefore, the energy consumption management has been a research hotspot in recent years and to a large extent, the sustainable development of cloud computing has been tightly associated with the techniques of energy consumption measurement and management. Furthermore, the technique of power measurement in cloud environment is the foundation for the building of energy models as well as the evaluation of resource scheduling algorithms. In this paper, based on a survey of a wide range of methods measuring energy consumption of VMs, hosts or the whole system, four effective approaches that are widely applied in cloud system are addressed. The approaches include direct measuring techniques based on hardware or software, energy consumption estimate based on energy model, energy consumption measurement under virtualized environment, and energy consumption assessment based on simulation technology respectively. The paper analyzes and compares the advantages, drawbacks and best-fit situations of these methods. In addition, it discusses and points out the trends of future researches on energy management. These trends include smart power supply module, application type oriented energy consumption models, energy consumption model designed for mixed workloads, efficient cloud simulation toolkit for dynamic management, energy management in dynamic heterogeneous distributed cluster, energy preservation with resources scheduling towards tasks processing big data, and power provision scheduling with green energy.
Key words: cloud computing    power measurement    energy consumption management    virtualization    

云计算的出现使得迫切需要计算能力的人们看到了曙光,云计算可以被归类为一种范型,动态地提供由最先进的数据中心支撑的计算服务[1].云计算促进了大规模数据中心的飞速发展.但与此同时,云计算数据中心产生了巨大的能耗.另外,云计算所具有的弹性服务和可扩展性等特性,以及云计算数据中心的硬件规模近年来极度膨胀,这些都使得过去分散的能耗问题变成了集中的能耗问题.更多的计算资源和存储资源集中在云端,给能耗的高效管理带来更大的挑战[2, 3].据统计,2006年,美国6 000个左右的数据中心消耗了大约610亿千瓦时的电能,总值高达45亿美元,超过了当年美国所有彩色电视机的总能耗.随着各个行业对能源危机重视程度的提高,云计算带来的能耗问题逐渐成为了研究的重点[4].

面向云计算的动态资源调度是减少一定任务负载下的能源消耗的一项关键技术.一方面,基于动态电压频率调整(dynamic voltage and frequency scaling,简称DVFS)技术的调度方法能够动态地调整组件的运行频率并可直接地降低能耗,但前提是需要CPU对DVFS的完全支持.另一方面,及时关闭或睡眠空闲与低负载的服务器或虚拟机同样可以达到降低整体能耗的效果,这一思想是许多动态资源调度和虚拟化资源调度算法[5, 6, 7, 8]的核心,这类研究往往需要根据资源利用率估算系统能耗,从而选择最佳的调度策略.因此,在运行某种资源调度算法时,必须要采用一种或多种能耗测量或估算的方法来对某种调度方案进行评估,进而验证算法的有效性.目前,云计算服务性能上的提升(效益的提高)不再是研究的唯一重点,为了使得云计算朝绿色的方向发展,我们在兼顾计算性能和服务质量的同时必须有效地降低系统能耗,因此,针对不同环境、负载和需求的能耗管理方法和优化策略已经成为热门的研究主题.

云计算系统的能耗测量和管理直接关系到云计算的可持续发展,但目前国内外的相关研究仍然有所欠缺.一方面,在单个主机或集中式集群上使用的能耗检测的技术和方法需要被改进才能被应用到高度分布式的云计算架构中.另一方面,近几年出现的动态异构分布式计算集群[4]等复杂系统不仅要求性能上的提升,还要求资源利用率的最大化,这就需要我们对云计算环境下的能耗管理进行更加深入的研究和探索.

为了更好地了解云计算环境的能耗测量和管理方面的研究现状与趋势,本文把已有的能耗测量方法归纳为如下4类:基于软件或硬件的直接测量方法、基于能耗模型的估算方法、基于虚拟化技术的能耗测量方法以及基于仿真的能耗评估方法.详细论述见第1节.在此基础上指出,云计算能耗管理的未来研究方向与趋势:智能主机电源模块、面向不同类型应用的能耗模型、混合任务负载的能耗模型、可动态管理的高效云仿真工具、动态异构分布式集群的能耗管理、面向大数据分析处理和任务调度的节能方法、新能源供电环境下的节能规划,详细论述见第2节.

1 能耗测量和估算方法分析与比较 1.1 基于软件或硬件的直接测量方法 1.1.1 基本原理

直接测量能耗的方式主要有两种:使用额外的测量仪器和利用能耗数据采集系统.

使用额外的物理仪器获取从电源供给到整个系统的电量或能耗是一种最为直接的方法.具体的连接方式是将能耗测量装置(如功率表)串联在外接电源和系统之间;同时,需要将数据线从测量装置连接到终端设备上的接口上,以便将实时数据记录下来.测量装置有多种,主要包括功率表(power meter)、电流计和电压计的组合以及智能电源模块.功率表在硬件测量实时功耗技术中最为常见,系统的功耗数值可以直接从仪表读取,但这种方法的一个缺陷是有最大功耗的限制,即待测系统(system under test,简称SUT)功耗过高可能会超出可测范围而导致测量失效.为解决这个问题,一个简单、直接的方式是使用电流计和电压计的组合对SUT进行测量,这种方法直接得到的是供电电压和经过系统的直流电流,根据式(1)得到系统功率P.

$ P = V \cdot I $

其中,V是供电电压,I是经过系统的直流电流.此外,一些供应商开发的智能电源模块(smart power strip)附带功耗感知和测量功能,并且提供数据传输接口(如RS232、USB和基于以太网的接口).

使用外接仪器并不是直接测量系统功耗的唯一方法,事实上,一些技术成熟的厂家和开发商会为自己的服务器产品开发能耗数据采集(DAQ)系统,一些机构也在此方面进行过研究,如,加州大学伯克利分校开发的Ganglia[9].这类软件运行在实体服务器集群上,通过与硬件兼容的底层代码直接获取或间接计算整个集群的用电情况、每个工作节点的运行状况甚至节点中组件的功耗和运行时间.通过这类系统软件,我们可以准确地获取系统性能指标的动态变化以及实时的功耗数据,如被应用到服务器动态合并算法研究[10]中的MDMS(model driven monitoring system)[11].不仅如此,DAQ系统支持高频的数据采集,一些实验中会设置高达1kHz的采集频率,如文献[12].但DAQ系统很多情况下是由开发商定制的,也就是说,一些监测系统只能安装在特定类型集群上,例如使用IBM刀片服务器集群的环境会安装IBM Active Energy Manager APIs[13, 14].基于硬件的能耗测量的方式为一些硬件层面的能耗优化机制提供了方便,如动态电压频率调整(DVFS)技术,与这一技术相关的资源调度算法已有较广泛的应用[15].

1.1.2 方法的优势和适用环境

(1) 结果准确、可信

基于硬件设备测量的方式可以获取到非常精确的能耗数据,无论是直接得到的功耗还是从电压、电流值间接得到的功耗,都是属于“最底层”的测量.另一方面,能耗数据监测系统也常用于收集系统能耗数据,这类应用是属于仅次于或相当于最接近底层硬件的系统软件,硬件兼容性好的DAQ系统可以提供与实际功率无差别的测量数据.

(2) 适用于系统整体测试和评价

在有关能耗模型评价以及调度算法验证的实验中,往往需要直接测量方式提供的数据.在资源调度算法(如文献[16])的设计中,我们往往通过控制资源利用率来管理能耗,或者建立能耗模型来估算出组件的能耗,但这些方式利用的是能耗的估计值,而非确切的数据.当需要定量地评价一种算法或模型时,就必须有直接测量获取的真实能耗数据,与由模型计算出的结果进行对比和误差评估,这样的实验才具有说服力.

1.1.3 方法的缺陷和问题

(1) 低部署难度和细测量粒度难以兼得

测试系统可以仅包含单一工作节点,也有可能是工作节点的集群.因此,能耗监测的粒度从大到小可以是整个系统、单个工作节点、一个组件等等.如果选择直接测量的方式获取能耗数据,要实现细测量粒度往往意味着高部署难度.

为了保证实验数据获取的自动化和测量粒度,很多研究者趋向于使用DAQ系统软件来获取功耗数据.但事实上,部署DAQ系统是十分复杂的工作,因为大多权威的监测系统是为开发商指定的品牌服务器设计的,兼容性并不理想.另一方面,如果使用外接仪器对SUT进行能耗监测,则测量的粒度一般是整个系统,明显地,这种方式的测量粒度较粗.当SUT仅包含一个工作节点或少数工作节点时,尚可对每个节点的能耗进行粗略的估计;但当需要对大型系统(工作站集群)进行能耗监测时,测量的结果会因粒度过大而失去意义[17].只有在节点相对独立的超级计算机中,可以使用功率表(如插拔式功率计Watts up? Pro[18])对单个工作节点进行监测,如图 1所示,这已经是功率表能够测量的最小粒度.

Fig. 1 Measuring the power consumption of a single node by power meter 图 1 功率表测量单一节点功耗
1.2 基于能耗模型的能耗估算方法 1.2.1 基本原理

既然直接测量整个系统的能耗过于粗略且不利于虚拟化,而获取所有组件各自的能耗难以实施,那么是否可以仅考虑部分组件来估计总体能耗?其实,这种做法是可行的,因为如果能利用关键资源的利用率(如CPU的利用率)与系统整体能耗建立关联,就可以实时估计系统能耗的变化.那么,如何通过工作节点的各组件的利用率来计算系统能耗呢?一般来说,利用工作节点组件模型进行能耗估算的基本步骤如下:

(1) 建立能耗模型:这是最关键的步骤,任务是建立一个具体的数学模型.组件的指标可以是CPU的利用率、内存的吞吐量、网络的带宽以及磁盘的读/写字节数.一般来说,考虑到模型的可用性和建模的难易度,往往仅选择最重要的组件来进行建模,即不考虑相对能耗贡献率较低的其他组件.最直观的估计方法是使用单个组件资源进行建模,如CPU利用率.单纯使用CPU利用率进行建模的方式很早就被提出,并且有很高的实用性,因为CPU是工作节点中耗能比例最高的部件,并且其他资源的占用率提高往往会导致CPU利用率的攀升,因此以CPU利用率来评价系统负载,进一步估计系统能耗是可行的.但是仅根据CPU利用率一项指标来估算系统能耗存在较大的误差:文献[19]指出,对于一台带本地存储的主机,处理器的能耗约占37%,而内存、主板和外存能耗则分别占了17%、12%和6%.因此,忽略除CPU外的其他组件的能耗会导致能耗估算不准确,尤其是在I/O密集型负载情况下,磁盘频繁读写产生的能耗可能会超过CPU[20].现在更多的学者使用多个组件的能耗之和来估算系统总体能耗,如文献[17, 19, 21].CPU的能耗模型可以是线性或非线性的,我们需要利用不同的回归分析方法来确定以CPU利用率为自变量的表达式,在文献[19]中,使用的就是线性的CPU模型,而Luo等人[22]提到了3种统计学方法来确定CPU能耗模型中使用的核函数.此外,内存的能耗模型[19]与生厂商、总的大小、模块数和频率等多种参数相关,而磁盘设备的能耗[23]则取决于旋转速率(RPM)、盘面半径和缓冲区大小等等,同时也有基于读写概率和空闲概率对磁盘驱动器进行建模的文献[19].

(2) 获取组件的指标:建立以系统组件为自变量的能耗模型后,必须要通过某种手段获得组件的指标,比如可以通过能耗监测系统获取CPU利用率、内存吞吐量等指标,而在虚拟机的操作环境下,也可以利用监测软件实时地获取虚拟机的资源占用率.

(3) 评估系统能耗情况:得知组件的指标后,一般来说有两种方式进行总体能耗评估.第1种方式是利用单一组件来完成,比如直接通过CPU的利用率来计算能耗,这种方式有其科学依据,并且在计算密集型任务下有较好的准确度.更多的情况是综合多个组件的能耗来估计系统总体的能耗,一些文献指出,CPU和内存是能耗贡献最多的两个组件,而为了保证精确度,甚至可以考虑更多的组件.

1.2.2 方法的优势和适用环境

(1) 灵活性高

直观来说,利用能耗模型进行估计是一种非常灵活的方法,因为模型本身是人为建立或选择的,同时我们可以增加所考虑的组件数来提高最终预测的精确度.在有些研究[24]中,直接将运行状态的主机数作为能耗指标,这确实是一种可取的最大粒度的估计方法.当然,如果需要,也可以对工作节点的每一个组件(CPU、内存、磁盘和风扇等)进行建模,分别计算出各部分的功耗后进行汇总,因为一般来说,考虑更多的资源意味着更高的精确度.总之,能耗模型方式的灵活性就在于我们可以选择考虑的组件类型和数目,并且可以利用统计学的分析方法建立多种模型.

(2) 单一类型任务负载下的功耗估计比较可靠

相比直接测量的方式,利用能耗模型估计的方式固然会有较大的误差.但许多研究表明,单一类型任务负载下使用组件的能耗模型进行估计是有很高的置信度的.例如,当全部提交的任务都是计算密集型任务时,利用CPU利用率来建模就可以达到不错的效果[25].但针对数据密集型的任务,因为任务本身产生大量的磁盘I/O和内存的读写,所以必须要在考虑CPU能耗的基础上增加内存和磁盘的能耗,才能使模型的准确度达到要求.

事实上,单一任务类型主导的系统并不少见,比如在存储区域网络(storage area network,简称SAN)中,大量的主机是作为文件服务器来使用的,它们配置有巨大容量的RAID阵列,但不需要高性能的CPU,因为这些节点往往是作为数据备份或归档来使用的.所以,在对这类功能专一的系统进行建模时,可以仅考虑主要工作组件的模型,而忽略对能耗贡献比例很低的其他资源.

1.2.3 方法的缺陷和问题

(1) 准确性不足

建立模型的最大目的就是估计或预测,而这种方式的误差来源是多方面的.首先,对每个组件进行建模时就存在误差,因为我们往往考虑到的组件特性是有限的,例如磁盘驱动器能耗的建模可以细分到旋转速率、盘面半径和磁头类型等参数,而在实际实验中,一些文献(如文献[21])中介绍利用读写操作数来简化磁盘的能耗建模,这种方式对不同读写方式(如顺序读、随机写)下的I/O能耗考虑不足.其次,一个优秀的能耗模型通常不会将所有组件都考虑在内,因为这违背了建模就是为了简化计算而进行估算的初衷.即使在优秀模型的基础上,误差仍然是不可避免的,如文献[19]在评估模型时发现相对误差可能高于5%,但当CPU利用率提升时,相对误差会有所下降.误差的大小是相对的,关键要看实验者所能接受的范围.

(2) 复杂或混合任务负载下建模困难

在工作节点承担复杂或混合类型任务负载的情况下,能耗模型的准确性会难以保证,这给决定能耗建模所采用的模型和训练方法都带来困难[26].我们说像SAN这样功能专一的集群,在建立能耗模型时会有明确的重点,如磁盘能耗和主机上NIC的能耗.但是如果需要对综合型的服务器进行建模时,就会遇到一个棘手的问题:提交给主机的任务有时是计算密集型的,有时是数据密集型的,甚至有时属于其他情况.在这种情况下,仍然简单地考虑CPU利用率或磁盘驱动器的读写字节数等组件指标就会带来较大的误差;如果不断增加考虑的因素或者说资源的种类,带来的负面影响就是建模的难度加大,因为不同组件之间并非相互独立的,它们往往互相影响,例如磁盘I/O频繁的时候会间接地增加CPU的负载[17].

1.3 基于虚拟化技术的能耗测量方法 1.3.1 基本原理

虚拟化技术提高了云计算基础设施的利用率,并且允许对物理资源进行灵活的配置,因此一种比较好的解决方案就是在虚拟机环境中进行模型验证或算法实验,例如很多学者选择在XEN虚拟环境下完成算法评

[27, 28].虚拟机环境为实验者提供诸多便利.首先,虚拟机的CPU核数、内存和磁盘大小等参数可以动态配置,这极大地方便了实验环境的调控.同时,有很多技术相对成熟的虚拟机能耗监测软件,可以实时获取较为准确的能耗数据和各类资源利用率,可以为实验者建立组件能耗模型提供基础.

在虚拟化环境下,我们无法直接获取虚拟机的能耗,因为虚拟机实际上属于软件层面,VM通过占用资源(如CPU和硬盘空间)的方式产生能耗.因此,在虚拟化环境下,我们需要采用间接的测量机制来监测VM的能耗.Kansal等人[29]在2010年提出了在虚拟机上监测能耗的工具Joulemeter[30],并将其成功应用在各类操作系统中.Joulemeter实际上是通过建立能耗模型来估算组件和系统能耗的,如图 2所示,它通过对服务器的硬件和虚拟机管理程序插桩来建立基于真实平台的模型.Joulemeter的一个特点是应用范围广,它可以对普通PC、实体服务器、虚拟机甚至是应用程序进行能耗的测量,并且误差能控制在3W以内.不仅如此,这种轻量级软件的最大优点是其运行开销很小[30].

Fig. 2 The mechanism of Joulemeter 图 2 Joulemeter的测量原理
1.3.2 方法的优势和适用环境

(1) 虚拟机配置灵活

虚拟化的最大优势就在于灵活性和可控性.在虚拟化的环境中,现有的技术能够实现资源对应用程序完全透明,也就是说,一个好的虚拟机环境可以很好地保证SLA(service level agreement)的水平.此外,虚拟服务供应商都可以提供极为灵活的虚拟机“硬件”配置,比如在Xen和VMWare中,用户不仅可以对虚拟机的内存和磁盘容量进行配置,如果服务器的CPU有多个核,还可以控制核心的分配情况,从而达到控制实验变量或节省资源的目的.值得一提的是,一些虚拟机管理程序(如KVM[31])支持分配超额的CPU核数.

(2) 测量粒度细

一些虚拟机能耗监测软件可以提供详细的资源占用率和能耗数据,如微软公司开发的Joulemeter,它实际是利用建立组件能耗模型的原理,使用自适应学习的能耗模型[32],将组件的使用情况转化成其能源消耗.所以这类能耗监测软件能够提供多个组件的利用率和相应能耗.

(3) 虚拟化环境下的能耗可视化

毋庸置疑,在虚拟机上运行的能耗监测软件促进了虚拟化环境下的能耗可视化,提高了硬件资源的利用率.对虚拟化环境下的能耗管理来说,每一台正在运行的虚拟机的资源占用率和当前功耗是十分重要的数据,这不仅反映出虚拟机的负载情况,更帮助我们权衡资源利用最大化和能耗最小化两个目标.

1.3.3 方法的缺陷和问题

(1) 数据准确性有限

在原理上,虚拟机能耗监测软件是通过测量系统组件的各项指标(如CPU利用率),然后通过能耗模型来估计结果的.这种方式本质上与上一节介绍的能耗模型估算方法是一样的,只不过测量工具提供有内置的模型,这些模型经过大量数据的验证并且可以根据硬件环境的变化而自动调整,但总而言之,使用能耗测量工具软件获取的能耗数据与真实数据有一定的误差(尤其是在资源利用率很低的情况下).

(2) 虚拟机的低能耗效率

虚拟机的灵活配置和启闭使得硬件资源利用率可以逼近理论的最优,如文献[24]中提出的虚拟化环境调度算法.那是不是虚拟机就没有缺点了呢?当然不是,作为运行在服务器OS之上的程序,虚拟机的低能耗效率(power efficiency)是不可否认的.能耗效率e的定义如下:

$ e = \frac{{Performance}}{{Power}} $ (2)

其中,Performance是执行指令的速度,比如可以取每秒百万浮点运算数(MFLOPS),而Power是任务执行期间的能耗.在文献[33, 34]中指出,虚拟机的能耗效率要明显低于主机,这很大程度上是因为虚拟机上计算任务的执行效率要低于物理主机,或者说同样的任务在虚拟机上的完成时间要更长,这意味着要耗费更多的电能.

1.4 基于仿真的能耗评估方法 1.4.1 基本原理

直接在实体服务器集群上提交任务和测量能耗,还是利用虚拟机中的能耗测量工具来对虚拟化环境中的任务调度结果进行评估,一旦在实验过程中对变量或参数控制出现差错或中间结果失效都会直接导致一次实验的失败,而临时中断任务的执行比较困难,重启服务并提交任务的过程也需要花费很多时间.

针对这一问题,仿真技术是很好的解决方案.在云计算和大数据研究领域,仿真技术同样有巨大的市场和学术需求,因为在真实集群上完成操作要承担很高额的费用,并且实验周期长.与其他仿真技术(如CAD和工业控制仿真)类似,云计算仿真工具利用软件技术来支持云计算的基础设施的建模,并模拟执行用户的云任务.整个仿真的过程就是代码的执行过程,一些仿真工具支持动态的资源调整和模拟过程的暂停,用户则可以通过程序的输出获取任务执行结果和能耗情况,图 3抽象地描述了这类工具/平台的使用方式.云计算仿真的关键步骤是使用代码实现能耗模型的建立和资源调度的算法[22].一般来说,仿真工具本身只包含事件驱动的仿真引擎和云计算架构的基本组件(如VM和主机)的实现,因此在仿真环境下测试调度算法之前,用户不仅要重写内置的能耗模型,在资源调度层实现调度算法,还要编写云任务来产生负载.一些旧版本的仿真工具(如CloudSim 1.0)没有加入能耗测量的模块,但目前基本的能耗计算和记录功能已被加入到这些工具当中.在仿真工具提供的环境下进行能耗的测量(计算)主要包括以下两种方法:利用在运行虚拟机数估算和测量资源利用率并利用能耗模型来计算.

Fig. 3 Use of cloud environment simulation tool/platform 图 3 云仿真工具/平台的使用

对于第1种方式,根据在虚拟数据中心中正在运行的总VM数(idle状态的VM能耗也可以被考虑进来),程序可以很快速地给出系统当前的能耗情况,但是数据粒度和准确性较差.在VM调度算法的设计中(如CloudSim 3.0.3工具包提供的MC(maximum correlation)、RS(random selection)虚拟机选择算法和THR(static threshold)分配算法),这种估算方式得到广泛应用,因为通过虚拟机的迁移和合并,可以很有效地减少在运行虚拟机数,提高资源利用率,从而降低能耗.

此外,我们还可以通过监视资源利用率来计算组件和系统的能耗.在云计算仿真程序的运行过程中,我们可以获取包括CPU利用率在内的各资源利用率,进而通过能耗模型转化实时功耗.在计算一段时间内的总能耗时,可以采用积分思想,用某一时刻的功耗批p(ti)代替一小段时间(Δti)内的平均功耗,计算出每一段时间内的能耗,然后累加得到总能耗,见式(3).

$ C = \int\limits_0^T {p(t){\rm{d}}t \approx \sum\limits_{i = 1}^n {p({t_i})\Delta {t_i}} } $ (3)

其中,n为划分的时间段数,C即为从0时刻到T时刻的总能耗.

在云计算仿真领域,目前广泛使用的云计算架构仿真工具包括CloudSim[35]、GreenCloud[36]、GSSIM[37]和GridSim[38].其中,CloudSim是由澳大利亚墨尔本大学的网格实验室开发的开源工具包,在Java环境下使用,工具包中提供基本函数操作(如创建数据中心和提交云任务)来实现从创建、部署、配置、任务分配到结果统计的一系列操作,系统的配置、任务执行的情况以及系统的能耗情况都能够输出或保存下来.云计算架构能耗的研究往往需要成百上千次的实验和多样化的配置,这类仿真软件就提供了良好的条件.

此外,我们不仅可以直接对云计算的真实基础设施进行仿真,还有一种可取的思路:将云计算资源分配抽象成一类问题,借助已有的算法模型或在相关基础上进行改进,从而找到适用的资源调度策略.例如,在文献[39]中,利用约束满足问题(CSP)来求解异构云计算集群的资源调度问题,并利用Java约束编程choco[40, 41]实现了相关算法的建模,类似的研究方法也在文献[42]中被加以应用.

1.4.2 方法的优势和适用环境

(1) 支持大规模异构集群上的实验

使用云计算仿真工具或模拟平台的最大优点就是不受硬件资源的限制.在真实服务器主机上,差异化的(虚拟)资源配置有比较大的难度.而使用云计算仿真工具进行实验时,在掌握了必要的创建和配置流程后,整个虚拟计算中心的搭建只需要几百行代码的编写,这大大降低了实验者的工作量,同时也进一步提升了配置的灵活性.

在仿真工具包的帮助下进行基于大型数据中心的实验具有很高的可行性,而且整个仿真过程模拟出的能耗数据可以由程序输出和保存.以CloudSim工具包为例,该项目是利用离散事件模拟包simjava开发的函数库,是GridSim的进一步发展.由于它是一个开源的包,除了使用基本的类外,实验者通过添加类和修改类定义的方式可以灵活地配置出理想的实验环境.

(2) 快速实验和低开销

针对云计算环境的能耗模型建立和资源调度算法设计都必须要经历大量和反复的实验过程,因为决定整个系统的性能以及能耗的因素众多,例如我们需要考虑不同类型的任务下CPU的负载情况,不同CPU核数可用的情况下完成单一任务所需能耗的变化,甚至是(多核)CPU负载分配策略的不同对CPU功耗的影响.此外,能耗模型的建立往往需要大量历史数据作训练样本,因为模型的参数要经历大量实验数据样本的学习后才可能稳定到理想的数值,而且一些模型在使用的过程中仍然有自适应的过程.上述的这些实验特征都要求更快的实验流程,以缩短算法开发和模型建立的时间.在仿真的环境下,从服务器启动、任务提交到数据采集等一系列实验操作几乎都可以变为代码的修改、运行和调试.仿真技术使得实验周期缩短,研究人员可以快速地在自定义的云环境中测试资源调度算法[5].

不仅如此,从经济和环保的角度考虑,使用仿真工具进行实验无疑是花费最少的方式之一.例如,CloudSim支持使用者自行设计的资源调度算法,然后在DataCenterBroker的相应方法中加以实现,就可以在虚拟云环境下进行算法的测试.这一系列工作都可以在一台计算机上执行,显然节省了大量的人力和物力资源,是一种绿色的开发途径.

1.4.3 方法的缺陷和问题

(1) 数据可信度低

直观来说,仿真工具提供的云计算环境是完全模拟的,实验数据由预先设定的规则和表达式计算出来,仅仅考虑了有限的可控因素.从本质上来说,仿真输出的数据也是利用能耗模型估算出来的结果,但因为整个系统架构的完全虚拟导致资源的利用率和其他源数据都是虚构的,再经过能耗模型的转化后得到的数据与真实情况会有更大的差距.

(2) 仿真的硬件环境种类有限

选择仿真工具包来模拟云计算架构的实验目前还有另外一个缺陷——可供选择的硬件环境有限.详细地区别物理资源的固有差异和细微参数的差别有助于更好地达到控制实验变量的目的.例如在文献[19]中关于内存能耗建模的部分,详细地区分了SDRAM的生产商、类型(DDR2和DDR3)和是否带有缓冲.目前,大部分仿真工具不支持这么详细的硬件参数设置,例如对主机的CPU的配置只包括核数、MIPS,对内存的配置只包括内存大小.在实际实验中,有时我们需要考虑更多因素,如负载分配策略(如fixed方式)和RAM的模块数等等,这些参数可能直接影响能耗模型中重要系数的数值.

对于开源的仿真工具,研究者可以进行二次编程.但是对虚拟组件进一步细化具有一定的难度.实际上,优秀的模型必须要有大量历史数据给予支持(比如可以利用样本训练的机器学习方式),因此补充和改写原工具包的组件需要不少工作量.

1.5 能耗测量方法的比较

在第2.1节~第2.4节,我们详细介绍了基于软件或硬件的直接测量方法、基于能耗模型的估算方法、基于虚拟化技术的能耗测量方法以及基于仿真的能耗评估方法的优缺点和适用场景,为了更好地了解4种方法的区别,表 1从4种方法的基本原理、特点等方面对它们进行了详细比较.

Table 1 Features of the 4 methods for measuring or estimating energy consumption 表 1 4种能耗测量或估算方法的特点

表 1可以看出,每一种能耗测量或估算方法都有各自的特点,不能简单地定义它们的优劣.不仅如此,从这张表上可以发现一些规律,例如灵活性高的方法往往在测量结果上会牺牲数据的准确性,这是因为,这些方法是基于能耗模型来间接计算能耗的.譬如虚拟机能耗监测软件Joulemeter使用的就是内置的自适应能耗模型.在进行相关实验时,选择合适的能耗测量手段是很重要的,有时可以结合多种能耗测量的手段.例如设计虚拟机资源调度算法时,使用仿真技术的方式可以更加快速地对算法进行初步的验证,方便对算法进行调整,而验证算法有效性时,往往需要从物理主机或虚拟机直接获取能耗数据.

在实际应用中,以云计算为例,云计算服务提供商会在不同环节对能耗进行监测以评估一种架构或策略的可行性和经济性,更多的时候,多种能耗测量方法会被同时使用.例如对高度虚拟化的云计算服务提供商来说,基于虚拟化技术的能耗测量技术能够提供每个VM甚至是每个正在运行的应用程序的能耗,这些能耗数据关系到虚拟资源租赁成本的估计,与此同时,虚拟资源管理者需要利用直接测量的方式监控物理主机的能耗情况,从而对当前系统的整体能耗进行评估和记录.多种能耗测量相结合的方式在一些云计算资源管理的研究中也有广泛应用,例如,在Luo等人[22]关于云数据中心能耗模型和相关调度算法的研究当中,为了验证模型的有效性,在实验中将3种能耗模型估算出的能耗数据与使用smart power meter[43]直接测量获取的数据进行了详细的对比.

2 能耗管理方法的研究趋势与展望

随着计算需求的不断增长和数据中心的快速扩张,所有的计算体系必定要朝着绿色、可持续的方向发展.关于能耗测量的研究早在大型机出现时就开始不断发展,那个时候基本的硬件测量方法就可以满足绝大多数的能耗测量需求,因为高性能、高能耗的单节点主机往往就是整个计算资源的提供者,这种模式也被称为单机运算(monolithic computing).随着分布式系统的出现,建立在互联网络基础上的分布式计算得以快速发展,硬件技术的不断更新和分布式架构的变革使得能耗测量和估算的研究向不同的方向发展,能耗管理的方法出现差异化.

2.1 智能主机电源模块

在硬件设计上,服务器和超级计算机的生厂商需要在电源模块的设计上提供更好的可视化和管理功能,除了精确感知系统功耗外,通过USB或以太网接口进行实时数据输送很可能会成为未来智能电源的必备功能之一.此外,一些服务器产品还会在硬件方面进行节能优化,如曙光刀片服务器TC3600的自动智能电源调节模块,可根据系统实时功耗来动态调整电源.另一方面,自带的或高兼容性的能耗数据获取系统会更加普遍,目前大多数服务器厂商选择独立开发数据采集接口,如IBM的Active Energy Manager APIs,这导致的问题就是异构服务器集群的管理难度加大.因此,能够兼容多种硬件环境(主要是电源模块)的能耗数据采集接口有很广泛的市场需求,而标准化是我们面临的主要挑战.

2.2 面向不同类型应用的能耗模型

无论是在集中式计算还是在分布式计算环境中,应用程序都可以看作是服务的对象.近年来,随着应用软件(尤其是移动互联网应用)的爆发式增长,这些应用在其功能和对硬件资源的需求上都出现明显的差异化,这一趋势是用户需求多样化的必然结果,但同时也为能耗模型的研究带来挑战.

应用程序的功能决定了它对计算资源的需求,从而不同类型的应用会对不同资源的利用率产生影响.目前,面向分布式计算环境和应用的能耗模型研究往往针对的是单一应用类型,或者没有对应用类型进行区分.一方面,缺乏对不同应用的资源需求差异性分析会使得在选择组件进行建模时缺乏科学依据.另一方面,使用不合适的模型对应用的能耗进行估计也很难取得良好的效果.例如,在分布式环境中,不考虑通信能耗的模型就不适用于对需要频繁信息交换的分布式应用进行能耗估计.因此,我们有必要根据分布式应用的功能对其进行区分,从而进一步分析应用引起的不同资源利用率的变化.具体地说,我们将应用分为计算密集型应用、数据密集型应用、通信密集型应用以及混合类型应用这4类.在建立不同类型应用的能耗模型之前,我们必须找到利用率变化最大的几类资源,并且需要得到特定类型应用的负载下资源利用率和能耗的关联.此外,在使用能耗模型对应用程序执行所需能耗进行估计时,对应用类型进行区分十分重要,因为只有类型相符的模型才能对应用能耗有准确的估算.

2.3 混合任务负载的能耗模型

目前,大多数优秀的能耗模型都是建立在单一类型任务负载的环境下,如文献[17]中主要使用计算密集型的负载进行测试,其中利用了被称为Dhrystone和Fhourstones的两种基准测试.之所以单一任务负载情况下的能耗建模比较普遍,是因为混合任务负载下的系统能耗难以用少数组件的能耗来计算.更重要的是,即使尽可能多地考虑系统的各个耗能部件(CPU、内存、硬盘和风扇),目前的能耗模型也很难提供与真实数据高度相符的估测数据,这是因为,对各个组件单独建模的方法没有将资源利用率间的关联考虑进来.

能耗模型是基于虚拟技术和仿真技术的能耗测量的重要基础,因此我们需要找到能在复杂或混合任务负载的环境下使用的能耗模型.首先,在尽可能地将全部主要能耗部件(例如能耗贡献>10%)考虑在内的同时,还要挖掘出不同资源利用率变化的关联性(如写磁盘操作引起CPU利用率攀升).包含多个组件的能耗模型可以抽象成表达式(4).

$ {p_i} = {\alpha _i} + \sum\limits_{j = 1}^m {{\beta _j}{\varphi _j}({x_i})} $ (4)

其中,pi代表服务器i的总能耗,xi代表该服务器的组件利用率向量,例如xi=(0.75,065,15)代表当前状态为CPU利用率=75%,内存占用率=65%,磁盘吞吐率为15MB/s.Φj(xi)可以是任何函数形式,代表第j个组件的能耗模型(共m个组件),当前研究中广泛使用幂函数的组合,这样构成的就是一种多项式形式的模型.αiβj均为参数,往往要通过样本训练的方式得到.混合任务负载的能耗建模的关键在于确定表达式中的多个参数,而这些参数有相互依赖关系,并且与系统环境相关.由于线性模型在精确性上的不足,并且没有考虑参数间的依赖性,因此我们可以研究利用更为复杂的回归分析方法来建立非线性的函数模型(相关的研究如文献[22]),以及利用“控制变量”的思想研究组件之间的相互影响.

另外,由网络接口卡(NIC)等通信组件和在节点通信网络上产生的能耗在需要频繁交互的应用负载下是必须要考虑的.而实际上,对通信能耗进行建模时,可以利用通信网络的关键组件,例如在Basmadjian等人[19]的论文中,在对SAN进行建模时,考虑了NIC的能耗.同时,利用网络的吞吐率或者是平均带宽的方式估计通信能耗也是一种方式.

2.4 可动态管理的高效云仿真工具

对于云仿真技术,因为其强大的可扩展性、高度的灵活性以及能够实现快速实验的特点,在云计算环境的模拟上有很好的应用前景,很多资源调度算法的开发和测试会开始转移到仿真技术支持的云计算环境上.

虽然云仿真技术已经能够满足基本的云计算环境设计和模拟运行的需求,但我们仍需要一个更加高效、普适和功能强大的仿真工具.一方面,可动态管理的特性对于云计算仿真技术尤为关键,因为在真实的云计算环境中,空闲节点(如VM或实体主机)的加入和工作节点的宕机等情况都可能出现,那么相应的云仿真工具或软件在运行时要能够提供相应接口,并且对资源分配进行快速调整.目前,CloudSim 2.1支持在运行过程中动态创建SimEntity实体并且能够暂停和重启仿真过程,但由于需要对代码的设计直接进行修改,在“物理”和虚拟资源的动态调整上仍然不够灵活.另一方面,CloudSim的系统资源利用率和运行效率偏低,其使用的Discrete Event Simulation模式导致时间复杂度与需要更新的SimEntity数量直接相关,这就会导致涉及多用户和多个数据中心的模拟运行时间很长,例如在汪俭华等人[44]的研究中,作者提出的CloudSim仿真的时间复杂度为O{z(x+5n)·lg [z·(x+5n)]+z·t+z·(x+5n)·(x+z)+y·n·z},其中,x为数据中心数,y为每个数据中心的主机数,z为发送请求的用户数,而平均每个用户有n个VM需求.同时,这个表达式建立在采用复杂度为O(t)的虚拟资源调度算法的假设上.因此,提高云仿真软件的执行效率是非常重要的研究话题.此外,包括CloudSim在内的仿真工具软件能够模拟的硬件环境仍比较粗略,并没有考虑到很多组件的规格,例如内存的生产商和模块数对内存能耗的建模就有不可忽视的影响.

2.5 动态异构分布式集群的能耗管理

如今,随着云计算的普及,虽然大规模的数据中心仍然是大部分云计算资源服务商的主要基础设施,但目前利用廉价计算机资源组成动态计算网络的模式开始得到重视.这一概念的提出使得云计算有了更加“绿色”的前景,因为空闲的计算资源被更大限度地利用了起来.但与此同时,这种动态的、异构的复杂分布式集群的能耗测量和监控技术成为我们亟待解决的难题.

为了实现资源利用率的最大化,像Hadoop这样的分布式系统架构支持使用大量的廉价计算节点组成集群,这些计算节点可能是PC机、服务器,也可能是一台虚拟机,它们的配置完全不同,甚至工作时间也不固定,所以在这种分散、异构的集群上对系统能耗进行测量会十分困难,并且监控每个工作节点的能耗也会变得复杂.因此,能够快速部署在动态分布式计算环境的能耗监测工具是当前研究的重点.同时,频繁、远距离通信是这类集群的另一个特点,因此由网络接口卡(NIC)等通信组件和在节点通信网络上产生的能耗需要更多地被加以考虑.如果只是粗略地评估通信能耗,则可以利用整个网络的数据传输量或者是平均带宽来估计.

在云计算中,尤其是IaaS云环境下,虚拟机层面的能耗建模和节能调度能够有效解决负载分配不均、难以扩展以及系统能耗过高的问题.Hsu和Poole[45]对2007年~2010年间主流服务器的能耗曲线的变化进行了研究,通过统计和比较线性能耗模型下的误差,他们得出了新型主机的能耗特性正在发生改变的结论.在这一背景下,面向虚拟机的能耗建模同样需要选择精度较高、可扩展性好的函数模型.一般意义上,作为线性模型的扩展,幂函数模型(PVM=α·uβ)[45]更能准确地描述虚拟机的能耗特性.另一方面,面向虚拟资源的调度策略是IaaS云环境下的有效节能手段,资源调度可以分为两个阶段.第1阶段是云任务到VMs的映射,例如文献[46]量化了任务QoS和虚拟机QoS,并通过非劣排序的方式以贪心策略将VMs分配给云任务,在保证任务QoS的前提下使得总能耗最低.另一方面,文献[39, 47, 48]则主要研究虚拟机的调度(包括放置、迁移)算法,该层面的调度目标是最大化主机的资源利用率,属于第2阶段的资源调度.总而言之,高效的、多目标的两阶段调度策略是优化云计算虚拟资源分配和物理资源利用率的关键研究.

2.6 面向大数据分析处理和任务调度的节能方法

目前,针对一般应用程序在分布式环境的执行效率和能耗的优化研究已经比较完善,例如文献[49].然而,由于大数据在各个行业和领域都开始得到重视,面向大数据分析处理的应用的任务调度方法成为许多云计算服务提供商必须要优化的问题.同时,大数据处理和计算工作往往占用大量的资源(如CPU和内存),这就使得任务执行的能耗大为增加.因此,在研究面向应用的大数据处理任务的调度方法时,要综合考虑执行效率和能耗,譬如使用能耗效率(energy efficiency)作为衡量指标.在大规模的分布式环境下,进行大数据任务调度和分析处理运算时,有效的节能方法显得尤为重要.首先,要发挥分布式架构的优势,就必须有效地对大数据任务进行有效的分割,从而针对承担不同任务的节点的计算需求来分配资源,并充分考虑通信代价,优化通信网络的结构.此外,如果能够充分利用内存计算(in-memory computing)的技术,例如恰当地将数据密集型的任务模块转移到使用该技术的节点集上,利用内存读取的高速率,那么对于大数据的实时分析处理将十分有利.另一方面,面对大数据应用,在能耗测量和估算方法上应有相应的改进.云计算的环境是高度虚拟化的,因此云计算平台上的大数据任务需要使用大量的虚拟机资源,所以对虚拟机能耗测量精度的提升,可以帮助提高系统整体能耗测量的准确性,相关研究如文献[50].

此外,如果不要求高精确度,我们可以根据大数据应用的总数据量来估计执行任务所需的资源总量(如计算资源和存储资源),同时根据该应用在分布式集群上执行的具体策略估算出通信代价和冗余计算的代价,转化为能耗.

2.7 新能源(或混合能源)供电环境下的节能规划

硬件的能耗特性优化、有效的资源调度策略和负载均衡技术都是在不同层面的节能手段,但节能是有限度的,大规模的云数据中心ICT设备集群对电能的消耗必然难以降到很低的水平.在传统电网供电情况下,这就意味着云计算带来的高额负荷会导致过多的碳排放,加剧了温室效应.因此,各大IT企业逐渐开始采用新能源供电,例如微软在芝加哥市的风力发电供电量已经达到了175MW[51].新能源(包括太阳能和风能等)具有低碳排放因子的优点,但其最大的问题在于供电不稳定.邓维等人[52]对新能源的背景、能源特性、应用现状和前景挑战等多个方面进行了调研和总结.他们首先介绍了IT能耗剧增与高碳排放量的背景下,新能源技术的兴起,同时就风能、太阳能等新能源的供电方式、碳排放因子和产量等各方面进行了讨论;根据作者的总结,新能源的技术研究可以按照时间尺度、粒度、种类、信息输入、研究方法以及负载类型7个方面进行分类,他们同时对配额规划[53, 54]和负载调度[55, 56, 57]等多个领域的文献进行了分类总结,并进一步阐述了新能源在数据中心应用的4个方面:新能源模型与预测机制、绿色云数据中心能源配额规划、数据中心作业调度机制和负载均衡机制.在能源规划方面,邓维和刘方明等人[53]针对多供电源情况下的数据中心供电系统,提出了一种基于在线控制的能源规划算法smartDPSS,该算法以当前电能需求数据近似较近的未来数据,并综合长期规划和实时调度使得供电代价接近最优.类似地,文献[58]提出将长期和近期(实时)能源购置规划问题抽象并转化为多个线性约束,通过调整算法参数可以在最小化能耗和保证数据中心可用性之间进行权衡.同时,地缘上分布式的数据中心为供电规划带来困难,首先分布式集群内的虚拟机迁移和带宽限制会导致虚拟机性能的不稳定性(性能波动)[59].同时,多能源供电机制下节能管理需要针对跨地域的负载均衡、服务率调节策略[60]和请求分发控制[61]进行研究,在实际应用中,在能源碳排放模型[60]或相关指标[62]的指导下,云服务提供商往往需要根据新能源和电网的特性,采用基于多目标(如效益+性能)优化的供电规划策略[53, 62]进行电能购置和分配.综上所述,新能源应用趋势下,新能源电站建设规划、供需预测机制、与传统电网的结合以及新能源供电情况下的多目标优化等方面仍需要进一步地加以研究.

3 结 论

云计算作为一种新的资源使用模式给互联网应用带了新的机遇,同时它也给能耗管理问题带来了诸多挑战.我们不仅要满足持续增长的计算需求,更需要结合多种层面的技术促使云计算朝着更加节能和高效的方向发展.随着能源危机的加剧和云计算研究的不断深入,人们会越来越关注降低云计算系统的能耗这一问题.云计算环境下的能耗测量和估算是对一个云计算系统下资源分配框架进行综合评估的基础,也是云计算节能降耗和实现高效能耗管理的前提.本文研究和阐述了当前云计算环境下主流的4种能耗测量方法的基本原理,并重点分析了这4种方法的优缺点和适用环境等.通过研究和分析对比我们发现:在实验中,研究者需要综合考虑实验条件、数据粒度的要求以及最终实验目的等因素,而且可以在一些情况下结合多种方法,兼顾实验效率数据的质量.在云计算的能耗管理方法方面,我们提出了未来的7个研究方向:智能主机电源模块、面向不同类型应用的能耗模型、混合任务负载的能耗模型、可动态管理的高效云仿真工具、动态异构分布式集群的能耗管理、面向大数据分析处理和任务调度的节能方法以及新能源(或混合能源)供电环境下的节能规划希望能为云计算节能的研究提供有意义的启示.

致谢 在此,我们向对相关项目的进行以及文章撰写工作做出贡献和提出宝贵意见的学者,尤其是华南理工大学计算机科学与工程学院和华南理工大学计算机系统研究所(华系/csAsc)的老师和同学们表示感谢.

参考文献
[1] Slaven B, Neven V. Cost effectiveness of commercialcomputing clouds. Information Systems, 2013,38(4):495-508 .
[2] Armbrust M, Fox A, Griffith R, Joseph A D, Katz R, Konwinski A. A view of cloud computing. Communications of the ACM, 2010, 53(4):50-58 .
[3] Che K, Zheng WM. Cloud computing: System instances and current research.Ruan Jian Xue Bao/Journal of Software, 2009,20(5): 1337-1348 (in Chinese with English abstract). http://www.jos.org.cn/1000-9825/3493.htm
[4] Smit M, Simmons B, Litoiu M. Distributed application-level monitoring for heterogeneous clouds using stream processing. Future Generation Computer Systems, 2013,29(8):2103-2114 .
[5] Lin W, Wang JZ, Liang C, Qi D. A threshold-based dynamic resource allocation scheme for cloud computing. Procedia Engineering, 2011,23:695-703 .
[6] Lin W, Liang C, Wang J Z, Buyya R. Bandwidth-Aware divisible task scheduling for cloud computing. Software: Practice and Experience, 2014,44(2):163-174 .
[7] Lin W, Zhu C, Li J, Liu B, Lian H. Novel algorithms and equivalence optimisation for resource allocation in cloud computing. Int’l Journal of Web & Grid Services, 2015,11(2):193-210 .
[8] Lin WW, Qi DY. A cloud resources scheduling strategy based on dynamic virtual resources reconfiguration: China. 201010268105. 7[P].2011.01.05 (in Chinese).
[9] Ganglia Monitoring System. http://ganglia.info/
[10] Mehta S, Neogi A. ReCon: A tool to recommend dynamic server consolidation in multi-cluster data centers. In: Proc. of the IEEE Network Operations and Management Symp., NOMS 2008. Salvador: IEEE, 2008. 363-370 .
[11] Krishnamurthy B, Neogi A, Sengupta B, Singh R. Data tagging architecture for system monitoring in dynamic environments. In: Proc. of the Network Operations and Management Symp. (NOMS 2008). Salvador: IEEE, 2008. 395-402 .
[12] Stoess J, Lang C, Bellosa F. Energy management for hypervisor-based virtual machines. In: Proc. of the USENIX Annual Technical Conf. CA: USENIX, 2007. 1-14. https://www.usenix.org/legacy/event/usenix07/
[13] Verma A, Ahuja P, Neogi A. pMapper: Power and migration cost aware application placement in virtualized systems. In: Issarny V, Schantz R, eds. Proc. of the ACM/IFIP/USENIX 9th Int’l Middleware Conf. Leuven: IFIP, 2008. 243-264 .
[14] IBM Active Energy Manager. https://www-01.ibm.com/support/knowledgecenter/SSAV7B_635/com.ibm.director.aem.helps.doc/ frb0_main.html
[15] Raghu HV, Saurav SK, Bapu BS. PAAS: Power aware algorithm for scheduling in high performance computing. In: Proc. of the IEEE/ACM 6th Int’l Conf. on Utility and Cloud Computing. Dresden: IEEE, 2013. 327-332 .
[16] Beloglazov A, Abawajy JH, Buyya R. Energy-Aware resource allocation heuristics for efficient management of data centers for cloud computing. Future Generation Computer Systems, 2012,28(5):755-768 .
[17] Chen Q. Towards energy-aware VM scheduling in IaaS clouds through empirical studies [MS. Thesis]. Amsterdam: University of Amsterdam, 2011.
[18] Watts up? Plug load meters. https://www.wattsupmeters.com/
[19] Basmadjian R, Ali N, Niedermeier F, Meer HD, Giuliani G. A methodology to predict the power consumption of servers in data centres. In: Proc. of the ACM SIGCOMM 2nd Int’l Conf. on Energy-Efficient Computing and Networking (e-Energy 2011). ACM, 2011 .
[20] Feller E, Morin C, Leprince D. State of the art of power saving in clusters and results from the EDF case study. Institut National de Recherche en Informatique et en Automatique (INRIA), 2010. http://hal.inria.fr/docs/00/54/38/10/PDF/RR-7473.pdf
[21] Ye KJ, Wu ZH, Jiang XH, He QM. Power management of virtualized cloud computing platform. Chinese Journal of Computers, 2012,35(6):1262-1285 (in Chinese with English abstract) .
[22] Luo L, Wu W, Tsai WT, Di D, Zhang F. Simulation of power consumption of cloud data center. Simulation Modelling Practice and Theory, 2013,39:152-171 .
[23] Allalouf M, Arbitman Y, Factor M, Kat RI, Meth K, Naor D. Storage modeling for power estimation. In: Proc. of the SYSTOR 2009: The Israeli Experimental Systems Conf., SYSTOR 2009. New York: ACM, 2009. 3:1-3:10 .
[24] Ferreto T, Netto M, Calheiros R, Rose CD. Server consolidation with migration control for virtualized data centers. Future Generation Computer Systems, 2011,27:1027-1034 .
[25] Song J, Li T, Wang Z, Zhu Z. Study on energy-consumption regularities of cloud computing systems by a novel evaluation model. Computing, 2013,95(4):269-287 .
[26] Luo L, Wu WJ, Zhang F. Energy modeling based on cloud data center. Ruan Jian Xue Bao/Journal of Software, 2014,25(7): 1371-1387 (in Chinese with English abstract). http://www.jos.org.cn/1000-9825/4604.htm
[27] Kim N, Cho J, Seo E. Energy-Based accounting and scheduling of virtual machines in a cloud system. In: Proc. of the IEEE/ACM Int’l Conf. on Green Computing and Communications (GreenCom 2011). Sichuan: IEEE, 2011. 176-181 .
[28] Cherkasova L, Gardner R. Measuring CPU overhead for I/O processing in the Xen virtual machine monitor. In: Proc. of the USENIX Annual Technical Conf. Anaheim: USENIX, 2005. 387-390. https://www.usenix.org/legacy/event/usenix05/
[29] Kansal A, Zhao F, Liu J, Kothari N, Bhattacharya AA. Virtual machine power metering and provisioning. In: Proc. of the 1st ACM Symp. on Cloud Computing. Indianapolis: ACM, 2010. 39-50 .
[30] Microsoft Joulemeter. http://research.microsoft.com/en-us/projects/joulemeter/
[31] Kernel Virtual Machine. http://www.linux-kvm.org/page/Main_Page
[32] Joulemeter: Computational Energy Measurement and Optimization. http://research.microsoft.com/en-us/projects/joulemeter/default. aspx
[33] Fenn M, Murphy MA, Goasguen S. A study of a KVM-based cluster for grid computing. In: Proc. of the 47th Annual Southeast Regional Conf., ser. ACM-SE 47. New York: ACM, 2009. 34:1-34:6 .
[34] Che J, He Q, Gao Q, Huang D. Performance measuring and comparing of virtual machine monitors. In: Proc. of the IEEE/IFIP Int’l Conf. on Embedded and Ubiquitous Computing, EUC 2008, Vol. 2. Shanghai: IEEE, 2008. 381-386 .
[35] Calheiros RN, Ranjan R, Rose CAFD, Buyya R. CloudSim: A novel framework for modeling and simulation of cloud computing infrastructures and services. Technical Report, Grid Computing and Distributed Systems (GRIDS) Laboratory, Department of Computer Science and Software Engineering, The University of Melbourne, 2009.
[36] Greencloud-The green cloud simulator. http://greencloud.gforge.uni.lu/index.html
[37] Bąk S, Krystek M, Kurowski K, Oleksiak A, Piatek W, Waglarz J. Gssim—A tool for distributed computing experiments. Scientific Programming, 2011,19(4):231-251 .
[38] Buyya R, Murshed M. GridSim: A toolkit for the modeling and simulation of distributed resource management and scheduling for grid computing. Concurrency and Computation: Practice and Experience, 2002,14(13-15):1175-1220 .
[39] Lin WW, Liu B, Zhu LC, Qi DY. CSP-Based resource allocation model and algorithms for energy-efficient cloud computing. Journal on Communications, 2013,34(12):33-41 (in Chinese with English abstract) .
[40] Jussien N, Rochart G, Lorca X. Choco: An open source Java constraint programming library. In: Proc. of the Workshop on Open-Source Software for Integer and Contraint Programming (OSSICP 2008). 2008. 1-10. https://projects.coin-or.org/Events/ wiki/CpAiOr2008
[41] Choco—A free and Open-Source Java Library for Constraint Programming. http://choco-solver.org/
[42] Van HN, Tran FD, Menaud JM. SLA-Aware virtual resource management for cloud infrastructures. In: Proc. of th 9th IEEE Int’l Conf. on Computer and Information Technology (CIT 2009). Xiamen: IEEE, 2009. 357-362 .
[43] Lui TJ, Stirling W, Marcy HO. Get smart. IEEE Power & Energy Magazine, 2010,8(3):66-78 .
[44] Wang JH, Feng XW, Feng Y, Zhu R. An improved research of simulation platform in cloud computing. Science Technology and Engineering, 2013,13(19):5543-5549 (in Chinese with English abstract) .
[45] Hsu CH, Poole SW. Power signature analysis of the SPECpower_ssj2008 benchmark. In: Proc. of the 2014 IEEE Int’l Symp. on Performance Analysis of Systems and Software (ISPASS). IEEE, 2011. 227-236 .
[46] Lakra AV, Yadav DK. Multi-Objective tasks scheduling algorithm for cloud computing throughput optimization. Procedia Computer Science, 2015,107-113 .
[47] Cheng CL, Pan Y, Zhang DY. Energy saving resource scheduling algorithm in cloud environment. Systems Engineering and Electronics, 2013,35(11):2416-2423 (in Chinese with English abstract).
[48] Beloglazov A, Abawajy J, Buyya R. Energy-Aware resource allocation heuristics for efficient management of data centers for cloud computing. Future Generation Computer Systems, 2012,28(5):755-768 .
[49] Chen F, Grundy J, Yang Y, Schneider JG, He Q. Experimental analysis of task-based energy consumption in cloud computing systems. In: Proc. of the 4th ACM/SPEC Int’l Conf. on Performance Engineering (ICPE 2013). Praguec: ACM, 2013. 295-306 .
[50] Xiao P, Zhao S. A low-cost power measuring technique for virtual machine in cloud environments. Int’l Journal of Grid and Distributed Computing, 2013,6(3):69-80.
[51] ZhouZ, Liu F, Li Z. Pricing bilateral electricity trade between smart grids and hybrid green datacenters. In: Proc. of the 2015 ACM SIGMETRICS Int’l Conf. on Measurement and Modeling of Computer Systems. Portland: ACM, 2015. 443-444 .
[52] Deng W, Liu FM, Jin H, Li D. Leveraging renewable energy in cloud computing datacenters: State of the art and future research. Chinese Journal of Computers, 2013,36(3):582-598 (in Chinese with English abstract) .
[53] Deng W, Liu F, Jin H, Wu C. SmartDPSS: Cost-Minimizing multi-source power supply for datacenters with arbitrary demand. In: Proc. of the 2013 IEEE 33rd Int’l Conf. on Distributed Computing Systems. IEEE, 2013. 420-429 .
[54] Ren C, Wang D, Urgaonkar B, Sivasubramaniam A. Carbon-Aware energy capacity planning for datacenters. IEEE Int’l Symp. on Modeling, Analysis and Simulation of Computer and Telecommunication Systems (MASCOTS 2012). Washington, 2012. 391-400 .
[55] Li C, Qouneh A, Li T. Characterizing and analyzing renewable energy driven data centers. In: Proc. of the ACM SIGMETRICS Joint Int’l Conf. on Measurement and Modeling of Computer Systems. ACM, 2011. 323-324 .
[56] Liu Z, Chen Y, Bash C, Wierman A, Gmach D, Wang Z, Marwah M, Hyser C. Renewable and cooling aware workload management for sustainable data centers. Performance Evaluation Review, 2012,40(1):175-186 .
[57] Li C, Qouneh A, Li T. iSwitch: Coordinating and optimizing renewable energy powered server clusters. In: Proc. of the the 39th Annual Int’l Symp. on Computer Architecture (ISCA). IEEE, 2012. 512-523 .
[58] Deng W, Liu F, Jin H, Wu C, Liu X. MultiGreen: Cost-Minimizing multi-source datacenter power supply with online control. In: Proc. of the 4th ACM Int’l Conf. on Future Energy Systems (ACM e-Energy 2013). Berkeley, 2013. 149-160 .
[59] Xu F, Liu F, Jin H, Vasilakos AV. Managing performance overhead of virtual machines in cloud computing: A survey. Proc. of the IEEE (State of the Art and Future Directions.), 2014,102(1):11-31 .
[60] Zhou Z, Liu F, Xu Y, Zou R, Xu H, Lui JCS, Jin H. Carbon-Aware load balancing for geo-distributed cloud services. In: Proc. of the IEEE 21st Int’l Symp. on Modeling, Analysis & Simulation of Computer and Telecommunication Systems (MASCOTS). 2013. 232-241 .
[61] Liu F, Zhou Z, Jin H, Li B, Li B, Jiang H. On arbitrating the power-performance tradeoff in SaaS clouds. In: Proc. of the IEEE INFOCOM. 2013. 872-880 .
[62] Zhou Z, Liu F, Li B, Li B, Jin H, Zou R, Liu Z. Fuel cell generation in geo-distributed cloud services: A quantitative study. In: Proc. of the IEEE 34th Int’l Conf. on Distributed Computing Systems (ICDCS). IEEE Computer Society, 2014. 52-61 .
[3] 陈康,郑纬民.云计算:系统实例与研究现状.软件学报,2009,20(5):1337-1348. http://www.jos.org.cn/1000-9825/3493.htm
[8] 林伟伟,齐德昱.一种基于动态重配置虚拟资源的云计算资源调度方法:中国,申请号:201010268105.7[P].2011.01.05.
[21] 叶可江,吴朝晖,姜晓红,何钦铭.虚拟化云计算平台的能耗管理.计算机学报,2012,35(6):1262-1285 .
[26] 罗亮,吴文峻,张飞.面向云计算数据中心的能耗建模方法.软件学报,2014,25(7):1371-1387. http://www.jos.org.cn/1000-9825/4604.htm
[39] 林伟伟,刘波,朱良昌,齐德昱.基于CSP的能耗高效云计算资源调度模型与算法.通信学报,2013,34(12):33-41 .
[44] 汪俭华,冯锡炜,冯瑶,朱睿.云计算仿真平台的改进研究.科学技术与工程,2013,13(19):5543-5549 .
[47] 程春玲,潘钰,张登银.云环境下一种节能的资源调度算法.系统工程与电子技术,2013,35(11):2416-2423.
[52] 邓维,刘方明,金海,李丹.云计算数据中心的新能源应用:研究现状与趋势.计算机学报,2013,36(3):582-598 .