2. 河南大学软件学院 河南 开封 475001
2. Software School, Henan University Kaifeng Henan 475001
传统的数据中心规模有限,对能耗和能效关注度不够,而云计算及大规模数据中心的兴起使得服务节点规模巨大,能耗成为成本控制中一个不可缺少的研究问题。云计算的发展受电力成本的制约[1]。研究表明,服务节点4年的能耗基本上等同于其硬件成本。云平台可通过虚拟机的迁移,基于能效的副本管理等策略进行节能,但仍有一个关键性的问题需要进一步研究:如何建立起准确的计算机系统能耗估量模型。
数量较少的计算机系统可通过测量设备来对计算机集群能耗进行度量,但对于云计算平台和大数据中心来说,完全依赖测量设备无论是从经济上还是部署上来考虑都是比较困难的。
1 相关研究目前,对于单个计算机系统能耗估量的模型大致可以分为两类:比例型和两段型,这两种类型都是根据资源利用率进行评估。比例模型比较直观,认为计算机的能耗和其硬件设备的利用率成正比。两段模型认为计算机能耗是由固定能耗和可变能耗两部分组成。固定能耗是开机就引起的能耗,例如风扇、二极管的启动等;可变能耗与计算机的负载相关,如CPU利用率、磁盘转速等。相比较而言,两段模型更为准确,因为计算机只要开机就会耗电。文献[2]研究表明,8核Xenon处理器在其空闲状态下是所有核都运转状态下能耗的60%。但是,无论是比例模型还是两段模型,都认为计算机的能耗和负载相关。
基于资源利用率的计算机能耗模型已经有了一些,例如:文献[3]用硬件计数器获得CPU使用情况,进而建模估量预测计算机的整体能耗。文献[4]提出了基于硬件性能计数器的线性模型,目前最为流行的是文献[5]提出的线性模型,该模型通过CPU利用率来进行能耗估量。基本表达式如下:
${P_{{\rm{pre}}}} = {c_0} + {c_1}{u_{{\rm{cpu}}}} + {c_2}u_{{\rm{cpu}}}^r$ | (1) |
文献[6]在此基础上提出了以CPU利用率为基础的Cubic模型。Google在其数据中心也使用了基于CPU利用率的线性模型估量各服务器节点能耗[7]。实际情况是,目前CPU能耗在整个计算机系统中的能耗约占25%[8],在分布式数据中心,该比例更低[9]。因此单纯以CPU利用率作为主要变量设计的能耗模型在数据密集型事务越来越多的今天,对系统能耗的估量并不准确。
图 1显示了三种典型的服务器IBMP670、Sun Ultra SparcT2000和Google自己设计的服务器各部件所占能耗比例[10]。可以看出,并非是某一种部件完全主导能耗。
基于此,本文提出了CMP模型。模型设计思想是计算机系统在不同任务状态时,CPU、Disk和Memory对能耗变化的主导作用是变化的,选取能代表三者负载的尽可能少的参数来建模,模型目标不仅要能估量计算密集型任务下服务器的能耗,而且要在WEB事务型和数据密集型任务下保持较高准确度。
2 模型参数的选择 2.1 各部件的能耗度量参数针对计算机能耗模型,选择度量参数直接关系到能耗模型的准确程度。计算机系统中最重要,且能耗变化范围最大的3个主要部件是CPU、Disk和Memory。其他部件,要么功率变化有限,比如电扇电源,要么功率波动范围小,比如网卡。所以,能耗模型参数就从这3个主要部件中选取。
参数选择的标准:1) 有足够的代表性,能够代表这些主要部件的能耗变化;2) 容易监测,在Windows系统和Linux系统下均可获得这样的参数;3) 参数尽可能少,因为在能耗估量中,用太多的参数既不利于能耗模型的移植,也会给计算机系统带来额外的负担。
设P为计算机系统的功率,则:
$P = {P_{{\rm{cpu}}}} + {P_{{\rm{memory}}}} + {P_{{\rm{disk}}}} + \sigma $ | (2) |
式中,σ表示计算机系统中除CPU、Disk和Memory之外的其他部件功率。CPU的功率和它的利用率有关,所以可以得到:
${P_{{\rm{cpu}}}} = ({P_{{\rm{cpumax}}}} - {P_{{\rm{idle}}}}){\rm{cp}}{{\rm{u}}_{{\rm{utilization}}}}$+${P_{{\rm{cpuidle}}}}$ | (3) |
所以在选择代表CPU能耗变化的监控参数时,选择%Processor Time。%Processor Time是处理器用来执行非闲置线程时间的百分比。对处理器是否空闲的计算是在系统时钟的内部采样间隔期间(10 ms)执行的,这个参数是CPU最常用的计数器,它表明了CPU的使用率。
内存的能耗首先还是和其利用率有关,每增加512 M的内存,其能耗增加1~3 W。对于内存的能耗可以用下式表达[11]:
$ \begin{array}{c} {E_{{\rm{memory}}}} = \int_{{\rm{ }}{t_0}}^{{\rm{ }}{t_{{\rm{pre}}}}} {{P_{{\rm{pre}}}}} {\rm{d}}t{\rm{ + }}\int_{{\rm{ }}{t_0}}^{{\rm{ }}{t_{{\rm{read}}}}} {{P_{{\rm{read}}}}} {\rm{d}}t + \\ \int_{{\rm{ }}{t_0}}^{{\rm{ }}{t_{{\rm{write}}}}} {{P_{{\rm{write}}}}} {\rm{d}}t + \int_{{\rm{ }}{t_0}}^{{\rm{ }}{t_{{\rm{ac}}}}} {{P_{{\rm{active}}}}} {\rm{d}}t + \int_{{\rm{ }}{t_0}}^{{\rm{ }}{t_{{\rm{ref}}}}} {{P_{{\rm{ref}}}}} {\rm{d}}t \end{array}$ | (4) |
式中,Pread为读状态功率;Pwrite为写状态功率;Pactive为活动状态;Pref为刷新状态;Ppre为预充电功耗,由于内存的刷新是自动刷新,刷新频率是固定的,可以和预充电一起看作常量。这样就可以得出,内存的能耗除了和内存利用率有关,最大的关联对象是内存的读写频率,所以本文选择了%Memory used和Page Faults/sec作内存能耗代表。
%Memory used是内存实际利用率,代表内存被使用的空间。Page Faults/sec是每秒钟出错页面的平均数量。每个错误操作中只有一个页面出错,计算单位为每秒出错页面数量。一般来说,内存读写频率越大,内存越活跃,Page Faults值越大。Page Faults和内存的读写频率直接相关,它包括硬错误和软错误,硬错误必须访问硬盘,所以这个参数不但反映内存的读写频率,也间接反映硬盘读写状况。
在线性模型中,硬盘能耗的变化考虑比较少,这是因为线性模型从根本上来说还是计算密集型模型,它所计算的能耗变化主要是CPU的能耗变化,认为其他的部件能耗变化对系统能耗变化影响有限或和CPU能耗变化是一致的。但实际情况并不如此,在数据密集型任务中,由于CPU的利用率有限,变化也有限,对计算机系统能耗变化影响有限,而这时硬盘负载会有变化,能耗也有变化。硬盘能耗的研究,是根据硬盘的状态和该状态下的磁头操作来进行分析。硬盘的操作一般分为定位、读、写和空闲,而硬盘的能耗一般由下式计算:
${E_{{\rm{disk}}}} = \int_{{\rm{ }}{t_0}}^{{\rm{ }}{t_{{\rm{read}}}}} {{P_{{\rm{read}}}}{\rm{d}}t + } \int_{{\rm{ }}{t_0}}^{{\rm{ }}{t_{{\rm{write}}}}} {{P_{{\rm{write}}}}{\rm{d}}t + } \int_{{\rm{ }}{t_0}}^{{\rm{ }}{t_{{\rm{idle}}}}} {{P_{{\rm{idle}}}}{\rm{d}}t} $ | (5) |
所以本文采集Disk的%Idle Time和Disk Bytes/s两个参数。%Idle Time是硬盘空闲时间,也就是不执行读写和旋转定位的时间。那么剩余时间就是处于读写和定位的时间。Disk Bytes/s是每秒钟磁盘读写数据量,这是读写操作的具体流量参数。
通过对计算机能耗的分析,选择出5个参数,下一步就要分析这5个参数,选择更少的参数来代表。
2.2 能耗参数的分析和筛选由于CPU在计算机系统的特殊地位,%Processor Time几乎是所有模型中必不可少的参数,所以,这个参数确定。那么就主要分析%Memory used、Page Faults/s、%Disk Idle Time和Disk Bytes/s之间的关系。为了具体说明参数的选择和分析,以配置相应参数的DELL 2950服务器为例,如表 1所示。
表 2是通过HP LoadRunner工具在对DELL 2950服务器逐步增加负载时,服务器相应参数的变化。
由于数据的单位不统一,首先要对表 2中数据进行标准化处理,本文设横向为Y,纵向为X。第j个指标的样本均值为${\bar Y_j} = \frac{1}{m}\sum\limits_{i = 1}^m {{Y_{ij}}} $(j=1,2,…,n),第j个指标的样本方差$S_j^2 = \frac{1}{{m - 1}}\sum\limits_{i = 1}^m {{{({Y_{ij}} - {{\bar Y}_j})}^2}} $(j=1,2,…,n),标准化为${X_{ij}} = \frac{{{Y_{ij}} - {{\bar Y}_j}}}{{{S_j}}}$,经过标准化处理之后可以得到标准化矩阵:
$X = \left[ {\begin{array}{*{20}{r}} {{X_{11}}}&{{X_{12}}}& \cdots &{{X_{1n}}}\\ {{X_{21}}}&{{X_{22}}}& \cdots &{{X_{2n}}}\\ \vdots & \vdots &{}& \vdots \\ {{X_{m1}}}&{{X_{m2}}}& \cdots &{{X_{mn}}} \end{array}} \right]$ | (6) |
通过标准化的数据,可以计算相关系数矩阵$R = {({r_{ij}})_{m \times m}}$,其中:
${r_{ij}} = \frac{{\sum\limits_{k = 1}^n {{x_{ki}}{x_{kj}}} }}{{n - 1}}$ i,j=1,2…,m | (7) |
本文根据上述步骤编程解得这4个参数的相关系数矩阵为:
$\left( {\begin{array}{*{20}{r}} {}&{{x_{\rm{1}}}{\rm{ }}}&{{x_{\rm{2}}}{\rm{ }}}&{{x_{\rm{3}}}{\rm{ }}}&{{x_{\rm{4}}}{\rm{ }}}\\ {{x_1}}&{1.000{\rm{ }}0}&{0.985{\rm{ }}3}&{ - 0.972{\rm{ }}1}&{0.975{\rm{ }}7}\\ {{x_2}}&{0.985{\rm{ }}3}&{1.000{\rm{ }}0}&{ - 0.997{\rm{ }}9}&{0.998{\rm{ }}8}\\ {{x_3}}&{ - 0.972{\rm{ }}1}&{ - 0.997{\rm{ }}9}&{1.000{\rm{ }}0}&{ - 0.999{\rm{ }}9}\\ {{x_4}}&{0.975{\rm{ }}7}&{0.998{\rm{ }}8}&{ - 0.999{\rm{ }}9}&{1.000{\rm{ }}0} \end{array}} \right)$ | (8) |
式(8)是计算出来的各参数之间的相关性矩阵。其中,x1,x2,x3,x4分别代表%Memory used,Page Faults/s,%Disk Idle Time,Disk Bytes/s。通过相关矩阵可以得到x1和其他3个参数相关度最低,用其他参数代表它就不够准确,本文选择%Memory used作为第2个参数。在剩余3个参数中,x2与这4个参数的平均相关度最高,在4个参数中,x2可以兼顾内存和硬盘两个组件的参数,所以,选择Page faults作为第3个参数。
从理论上分析,每当有Page faults的时候,如果是硬性错误,就必然需要从硬盘上读写数据,硬盘读写的频率某种程度反映的就是内存中Page faults,二者是正比关系,并且Page faults和%Memory used的关系在参数组中也占优。图 2是从微观的角度来看Page faults和硬盘负载(读、写与寻址)在同一分钟内的变化趋势,可以看出,二者的变化趋势基本一致。所以,Page faults代表%Disk Idle Time和DiskBytes/s无论是理论上还是实际上都支持,也就是Page faults代表了磁盘的负载和磁盘的读写状况。
于是筛选出%Processor Time,%Memory used和Page Faults/s作为计算机系统能耗估量建模的基本参数。下一步就是根据这些参数建立能耗估量模型。
3 CMP模型的建立通过上述观察和分析,本文提出了选择的3个参数为变量的能耗估量模型——CMP模型。在进行建模的时候,重点考虑两种情况:计算密集状态和非计算密集状态下计算机系统的能耗变化。计算密集状态是CPU在能耗的变化中占据主导地位,内存和硬盘处于低负载,对能耗影响较小。非计算密集状态一般是处理WEB事务型任务和数据密集型任务时产生的,此时的CPU、内存和硬盘都有一定的负载,能耗是由它们共同决定的。以往的能耗模型偏重于考虑计算密集型的情况,因为在计算密集型任务中CPU变化比较多,但是内存和硬盘变化有限。在数据密集型的状况下CPU变化小,对计算机系统整体能耗影响有限,而硬盘能耗变化较多。
为什么要在研究中把这两种状态分开来?因为在内存和硬盘低负载的状况下,它们对计算机整体能耗的影响接近I/O、主板等设备,如同声音被背景噪声所湮没。而CPU在低利用率状态下仍旧保持一定能耗,显然,在计算密集状态下,主导计算机系统能耗变化的就是CPU。在非计算密集型任务状态下,由于内存和硬盘的利用率达到一定的值,或者说能耗超出了一定范围,这个状态下,计算机系统能耗就由CPU、内存和硬盘共同主导。
计算密集状态和非计算密集状态的阈值如何界定?本文定义式(3)中(Pcpumax-Pidle)为△Pcpu,在本例中操作系统启动必要服务后(非测试任务),CPU负载波动就超过5%。对于本服务器来说,5%的利用率是个基本变动量,并且,△Pcpu的5%占计算机系统的能耗比例比较低,如果硬盘和内存的负载能耗低于△Pcpu的5%之后,它们就已经不构成影响计算机系统能耗的最主要元素,所以本服务器的能耗变化阈取△Pcpu的5%(CPU性能越高,此阈值越低)。据此,该阈值可表达如下:
$\left\{ {\begin{array}{*{20}{c}} {\frac{{\Delta {P_{{\rm{cpu}}}}}}{{20}} \ge \Delta {P_{{\rm{memory}}}}{\rm{Memor}}{{\rm{y}}_{{\rm{utilization}}}}}\\ {\frac{{\Delta {P_{{\rm{cpu}}}}}}{{20}} \ge \Delta {P_{{\rm{disk}}}}\frac{{{\rm{Pf}}}}{{{\rm{P}}{{\rm{f}}_{{\rm{max}}}}}}\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} {}&{} \end{array}}&{} \end{array}}&{} \end{array}} \end{array}} \right.$ | (9) |
表 3是该服务器在不同负载下能耗的值,根据已有数据,通过阈值划分状态,绘制计算密集状态下CPU和能耗的PLOT图像如图 3所示,y代表能耗,x代表CPU利用率。FAN模型认为CPU的变化主导了计算机系统的变化,并且建立了线性模型。根据图 3并结合SPEC[12]公开发布的一些服务器CPU和能耗关系数据,发现即使在计算密集型任务中,CPU的利用率和能耗之间的关系并不是简单的线性关系。在CPU负载进行增加时,能耗明显收敛于某个固定的值,且有一定的曲度。因此,这种情况下的建模可以考虑线性回归模型、指数回归模型和幂回归模型。
根据现有数据分别选择线性回归、指数回归和幂回归进行建模,计算得到这3种模型的拟合优度R2在幂回归模型中最高,为0.991 7。所以,在典型计算状态下能耗模型采用幂回归模型。求解出模型为:
$y = {{\rm{e}}^{5.685{\rm{ }}1}}{x^{0.125{\rm{ }}7}}$ | (10) |
式中,x为CPU非闲置线程时间的百分比。对于非计算密集型计算状态,建立多元线性回归方程。
$y = {\beta _0} + {\beta _1}{x_1} + {\beta _2}{x_2} + {\beta _3}{x_3} + \varepsilon $ | (11) |
式中,y代表被解释变量,计算机能耗,是因变量;${x_1}$、${x_2}$、${x_3}$代表解释变量,即CPU执行非闲置线程时间的百分比、内存利用率和Page Faults,是自变量;${\beta _0}$为常数项;$\varepsilon $为随机误差项。
对于n组观测值,其方程组的形式为:
${y_i} = {\beta _0} + {\beta _1}{x_{1i}} + {\beta _2}{x_{2i}} + {\beta _3}{x_{3i}} + {\varepsilon _1}$ |
$\left\{ {\begin{array}{*{20}{r}} {{y_1} = {\beta _0} + {\beta _1}{x_{11}} + {\beta _2}{x_{21}} + {\beta _3}{x_{31}} + {\mu _1}_{}}\\ {{y_2} = {\beta _0} + {\beta _1}{x_{12}} + {\beta _2}{x_{22}} + {\beta _3}{x_{32}} + {\mu _2}}\\ {\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} \ldots &{} \end{array}}&{} \end{array}}&{} \end{array}}&{} \end{array}}&{} \end{array}}&{}&{}&{} \end{array}}&{} \end{array}}\\ {{y_n} = {\beta _0} + {\beta _1}{x_{1n}} + {\beta _2}{x_{2n}} + {\beta _3}{x_{3n}} + {\mu _n}} \end{array}} \right.$ | (12) |
将表中数据带入该方程即可得到方程组,根据该方程组在误差平方和最小的情况下,利用最小二乘法求解参数,进而得到模型。解出模型为:
$\begin{array}{c} y = {\rm{198}}{\rm{.207 37}} - {\rm{6}}{\rm{.235 49}}{x_1} + \\ {\rm{ 200}}{\rm{.288 39 }}{x_2} + {\rm{0}}{\rm{.000 334 79}}{x_3} \end{array}$ |
综上,DELL2950的CMP能耗模型为:
$\left\{ \begin{array}{l} y = {{\rm{e}}^{5.685{\rm{ }}1}}{x^{0.125{\rm{ }}7}}({\rm{Memor}}{{\rm{y}}_{{\rm{utilization}}}} \le \\ {\rm{ }}40\% {\rm{ And }}\begin{array}{*{20}{r}} {{\rm{Pf}} \le 1{\rm{ }}094} \end{array})\\ y = {\rm{198}}{\rm{.207 37}} - {\rm{6}}{\rm{.235 49}}{x_1} + {\rm{ 200}}{\rm{.288 39 }}{x_2} + \\ {\rm{0}}{\rm{.000 334 8}}{x_3}({\rm{Memor}}{{\rm{y}}_{{\rm{utilization}}}} > 40\% {\rm{ Or}}\begin{array}{*{20}{r}} {{\rm{ Pf}} > 1{\rm{ }}094} \end{array}) \end{array} \right.$ |
本文用CMP模型分别和最常用的FAN模型,Cubic模型进行准确度比较。通过第3节建立的DELL2950能耗模型比较这三种模型。对于实验测试,计算密集型本文选择了SPEC[12]的JVM2008测试,该测试囊括了各种类型的算法测试,本文将其作为计算密集型用例,WEB事务型采用的是HP LoadRunner[13]用4000虚拟用户进行测试,数据密集型采用的是iozone[14],能耗测量工具选用的是北电仪表Power Bay-SSM。
其中SPEC是美国的一个第三方标准协会,SPEC-JVM囊括了各种数据密集型的算法测试,iozone是国际通用的文件系统读写测试工具,在能耗研究中也用于数据密集型行为操作的测试。
通过图 4可以看出,在能耗估量模型中,WEB事务密集型的LoadRunner测试中用FAN和CMP能耗估量差别不大,CMP优势些微,几乎持平,用SPEC的JVM2008测试,CMP模型略优于FAN模型,在iozone下进行数据密集型操作时,CMP模型明显要优于FAN模型。说明FAN模型虽然有一定的准确度,但对能耗主导元件考虑没有CMP模型全面,在某些情况下准确度明显低于CMP模型。
本文选择了CMP方法对IBMX3650和HP- ProliantDL380G5也进行了同样建模,测试结果表明在计算密集任务中,CMP比FAN模型估量准确度平均要提高1个百分点左右,在数据密集任务中,要提高2~3个百分点左右。并且,服务器的配置中磁盘的配置量越大,CMP的优势越明显。在存储系统占据数据中心能耗27%~40%[15, 16]的今天,用这种方式对各服务节点进行能耗估量,将具有很大潜力。
实验结果说明了在计算机系统中,由于任务类型不同,计算机所处的状态不同,计算机的组成元件对能耗变化起到的作用也会发生变化,其能耗变化主导元件并不单一。
5 结 论通过实验可以看出,CMP对计算机系统能耗估量,准确度要高于FAN模型和Cubic模型。计算机系统建立CMP模型之后,只需监测计算机系统中3个参数就可以迅速估量出计算机系统的整体能耗,方法的可操作性可移植性都比较强。
通过CMP在建模时的分析,可以看出,控制CPU的利用率,控制磁盘的数据输入输出速度(磁盘转速)都是降低能耗,提高计算机系统能效的方法,同样这些方法也是云计算中提高计算机能效研究的热点。所以,CMP能耗的模型为提高计算机系统的电能利用效率,增加单位耗电量内完成的任务数目提供了研究基础。据此,下一步研究工作的重点是通过这些模型进一步研究计算机任务和能效的关系,设计出提高计算机能效的工作模式和能提高云平台能效的任务调度方法。
[1] | ARMBRUST M, FOX A, GRIFFITH R, et al. A view of cloud computing[J]. Communications of the ACM, 2010, 53(4): 50-58. |
[2] | RIVOIRE S, RANGANATHAN P, KOZYRAKIS C. A comparison of high-level full-system power models[J]. HotPower, 2008(8): 3-4. |
[3] | BIRCHER W L, JOHN L K. Complete system power estimation: a trickle-down approach based on performance events[C]//IEEE International Symposium on Performance Analysis of Systems & Software, 2007. Boston, MA, USA: IEEE, 2007: 158-168. |
[4] | LI T, JOHN L K. Run-time modeling and estimation of operating system power consumption[J]. ACM SIGMETRICS Performance Evaluation Review, 2003, 31(1): 160-171. |
[5] | FAN X, WEBER W D, BARROSO L A. Power provisioning for a warehouse-sized computer[J]. ACM SIGARCH Computer Architecture News, 2007, 35(2): 13-23. |
[6] | ZHANG X, LU J J, QIN X, et al. A high-level energy consumption model for heterogeneous data centers[J]. Simulation Modelling Practice and Theory, 2013, 39: 41-55. |
[7] | FAN X, WEBER W D, BARROSO L A. Power provisioning for a warehouse-sized computer[J]. ACM SIGARCH Computer Architecture News, 2007, 35(2): 13-23. |
[8] | LEFURGY C, WANG X, WARE M. Server-level power control[C]//Fourth International Conference on Autonomic Computing. Jacksonville, FL, USA: IEEE, 2007: 4-5. |
[9] | FAN X, WEBER W D, BARROSO L A. Power provisioning for a warehouse-sized computer[J]. ACM SIGARCH Computer Architecture News, 2007, 35(2): 13-23. |
[10] | MEISNER D, GOLD B T, WENISCH T F. PowerNap: Eliminating server idle power[J]. ACM SIGARCH Computer Architecture News, 2009, 37(1): 205-216. |
[11] | CASTAÑÉ G G, NÚÑEZ A, LLOPIS P, et al. E-mc 2: a formal framework for energy modelling in cloud computing[J]. Simulation Modelling Practice and Theory, 2013, 39: 56-75. |
[12] | The Standard Performance Evaluation Corporation. SPECjvm2008 User's Guide[EB/OL]. (2008-04-16). https:// www.spec.org/jvm2008/docs/UserGuide.html. |
[13] | Hewlett-Packard, HP Software Division. HP LoadRunner[EB/OL].[2014-03-02]. http://en.wikipedia.org/wiki/ HP_LoadRunner. |
[14] | WILLIAM D. Norcott. Iozone Filesystem Benchmark.[EB/OL]. (2006-10-26). http://www.iozone.org/. |
[15] | U.S. Environmental Protection Agency. EPA Report on server and data center energy efficiency[EB/OL]. (2007- 08-02). https://escholarship.org/uc/item/74g2r0vg.pdf. |
[16] | BATTLES B, BELLEVILLE C, GRABAU S, et al. Reducing data center power consumption through efficient storage[EB/OL]. (2007-02-09). http://www.it-executive.nl/ images/downloads/reducing-datacenter-power.pdf. |