于俊洋,胡志剛,周 舟,楊 柳
(1. 中南大學軟件學院 長沙 410075;2. 河南大學軟件學院 河南 開封 475001)
計算機系統能耗估量模型研究
于俊洋1,2,胡志剛1,周 舟1,楊 柳1
(1. 中南大學軟件學院 長沙 410075;2. 河南大學軟件學院 河南 開封 475001)
為了解決計算機能耗估量問題,本文分析了計算機各部件的參數對能耗變化的貢獻程度和參數之間的相關度,選取最能代表系統能耗變化的可監測參數建立了CMP模型,CMP模型可根據計算機系統處理任務時的狀態不同而選取不同的能耗變化主導元件,利用這些元件的監測參數對計算機系統能耗進行估量。本文在各種任務狀態下進行了實驗,結果證明,CMP模型在計算機能耗估量中要優于常用的FAN模型和Cubic模型,尤其是在計算機做數據密集型任務的時候。
CMP模型; 能耗模型; 能效; 能耗估量
傳統的數據中心規模有限,對能耗和能效關注度不夠,而云計算及大規模數據中心的興起使得服務節點規模巨大,能耗成為成本控制中一個不可缺少的研究問題。云計算的發展受電力成本的制約[1]。研究表明,服務節點4年的能耗基本上等同于其硬件成本。云平臺可通過虛擬機的遷移,基于能效的副本管理等策略進行節能,但仍有一個關鍵性的問題需要進一步研究:如何建立起準確的計算機系統能耗估量模型。
數量較少的計算機系統可通過測量設備來對計算機集群能耗進行度量,但對于云計算平臺和大數據中心來說,完全依賴測量設備無論是從經濟上還是部署上來考慮都是比較困難的。
目前,對于單個計算機系統能耗估量的模型大致可以分為兩類:比例型和兩段型,這兩種類型都是根據資源利用率進行評估。比例模型比較直觀,認為計算機的能耗和其硬件設備的利用率成正比。兩段模型認為計算機能耗是由固定能耗和可變能耗兩部分組成。固定能耗是開機就引起的能耗,例如風扇、二極管的啟動等;可變能耗與計算機的負載相關,如CPU利用率、磁盤轉速等。相比較而言,兩段模型更為準確,因為計算機只要開機就會耗電。文獻[2]研究表明,8核Xenon處理器在其空閑狀態下是所有核都運轉狀態下能耗的60%。但是,無論是比例模型還是兩段模型,都認為計算機的能耗和負載相關。
基于資源利用率的計算機能耗模型已經有了一些,例如:文獻[3]用硬件計數器獲得CPU使用情況,進而建模估量預測計算機的整體能耗。文獻[4]提出了基于硬件性能計數器的線性模型,目前最為流行的是文獻[5]提出的線性模型,該模型通過CPU利用率來進行能耗估量?;颈磉_式如下:
文獻[6]在此基礎上提出了以CPU利用率為基礎的Cubic模型。Google在其數據中心也使用了基于CPU利用率的線性模型估量各服務器節點能耗[7]。實際情況是,目前CPU能耗在整個計算機系統中的能耗約占25%[8],在分布式數據中心,該比例更低[9]。因此單純以CPU利用率作為主要變量設計的能耗模型在數據密集型事務越來越多的今天,對系統能耗的估量并不準確。
圖1顯示了三種典型的服務器IBMP670、Sun Ultra SparcT2000和Google自己設計的服務器各部件所占能耗比例[10]??梢钥闯觯⒎鞘悄骋环N部件完全主導能耗。
基于此,本文提出了CMP模型。模型設計思想是計算機系統在不同任務狀態時,CPU、Disk和Memory對能耗變化的主導作用是變化的,選取能代表三者負載的盡可能少的參數來建模,模型目標不僅要能估量計算密集型任務下服務器的能耗,而且要在WEB事務型和數據密集型任務下保持較高準確度。
2.1 各部件的能耗度量參數
針對計算機能耗模型,選擇度量參數直接關系到能耗模型的準確程度。計算機系統中最重要,且能耗變化范圍最大的3個主要部件是CPU、Disk和Memory。其他部件,要么功率變化有限,比如電扇電源,要么功率波動范圍小,比如網卡。所以,能耗模型參數就從這3個主要部件中選取。
參數選擇的標準:1) 有足夠的代表性,能夠代表這些主要部件的能耗變化;2) 容易監測,在Windows系統和Linux系統下均可獲得這樣的參數;3) 參數盡可能少,因為在能耗估量中,用太多的參數既不利于能耗模型的移植,也會給計算機系統帶來額外的負擔。
設P為計算機系統的功率,則:
式中,σ表示計算機系統中除CPU、Disk和Memory之外的其他部件功率。CPU的功率和它的利用率有關,所以可以得到:
所以在選擇代表CPU能耗變化的監控參數時,選擇%Processor Time。%Processor Time是處理器用來執行非閑置線程時間的百分比。對處理器是否空閑的計算是在系統時鐘的內部采樣間隔期間(10 ms)執行的,這個參數是CPU最常用的計數器,它表明了CPU的使用率。
內存的能耗首先還是和其利用率有關,每增加512 M的內存,其能耗增加1~3 W。對于內存的能耗可以用下式表達[11]:
式中,Pread為讀狀態功率;Pwrite為寫狀態功率;Pactive為活動狀態;Pref為刷新狀態;Ppre為預充電功耗,由于內存的刷新是自動刷新,刷新頻率是固定的,可以和預充電一起看作常量。這樣就可以得出,內存的能耗除了和內存利用率有關,最大的關聯對象是內存的讀寫頻率,所以本文選擇了%Memory used和Page Faults/sec作內存能耗代表。
%Memory used是內存實際利用率,代表內存被使用的空間。Page Faults/sec是每秒鐘出錯頁面的平均數量。每個錯誤操作中只有一個頁面出錯,計算單位為每秒出錯頁面數量。一般來說,內存讀寫頻率越大,內存越活躍,Page Faults值越大。Page Faults和內存的讀寫頻率直接相關,它包括硬錯誤和軟錯誤,硬錯誤必須訪問硬盤,所以這個參數不但反映內存的讀寫頻率,也間接反映硬盤讀寫狀況。
在線性模型中,硬盤能耗的變化考慮比較少,這是因為線性模型從根本上來說還是計算密集型模型,它所計算的能耗變化主要是CPU的能耗變化,認為其他的部件能耗變化對系統能耗變化影響有限或和CPU能耗變化是一致的。但實際情況并不如此,在數據密集型任務中,由于CPU的利用率有限,變化也有限,對計算機系統能耗變化影響有限,而這時硬盤負載會有變化,能耗也有變化。硬盤能耗的研究,是根據硬盤的狀態和該狀態下的磁頭操作來進行分析。硬盤的操作一般分為定位、讀、寫和空閑,而硬盤的能耗一般由下式計算:
所以本文采集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個指標的樣本均值為第j個指標的樣本方差標準化為經過標準化處理之后可以得到標準化矩陣:
通過標準化的數據,可以計算相關系數矩陣R=(rij)m×m,其中:
本文根據上述步驟編程解得這4個參數的相關系數矩陣為:
式(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模型。在進行建模的時候,重點考慮兩種情況:計算密集狀態和非計算密集狀態下計算機系統的能耗變化。計算密集狀態是CPU在能耗的變化中占據主導地位,內存和硬盤處于低負載,對能耗影響較小。非計算密集狀態一般是處理WEB事務型任務和數據密集型任務時產生的,此時的CPU、內存和硬盤都有一定的負載,能耗是由它們共同決定的。以往的能耗模型偏重于考慮計算密集型的情況,因為在計算密集型任務中CPU變化比較多,但是內存和硬盤變化有限。在數據密集型的狀況下CPU變化小,對計算機系統整體能耗影響有限,而硬盤能耗變化較多。
為什么要在研究中把這兩種狀態分開來?因為在內存和硬盤低負載的狀況下,它們對計算機整體能耗的影響接近I/O、主板等設備,如同聲音被背景噪聲所湮沒。而CPU在低利用率狀態下仍舊保持一定能耗,顯然,在計算密集狀態下,主導計算機系統能耗變化的就是CPU。在非計算密集型任務狀態下,由于內存和硬盤的利用率達到一定的值,或者說能耗超出了一定范圍,這個狀態下,計算機系統能耗就由CPU、內存和硬盤共同主導。
計算密集狀態和非計算密集狀態的閾值如何界定?本文定義式(3)中(Pcpumax?Pidle)為ΔPcpu,在本例中操作系統啟動必要服務后(非測試任務),CPU負載波動就超過5%。對于本服務器來說,5%的利用率是個基本變動量,并且,ΔPcpu的5%占計算機系統的能耗比例比較低,如果硬盤和內存的負載能耗低于ΔPcpu的5%之后,它們就已經不構成影響計算機系統能耗的最主要元素,所以本服務器的能耗變化閾取ΔPcpu的5%(CPU性能越高,此閾值越低)。據此,該閾值可表達如下:
式中,ΔPmemory、ΔPdisk分別為內存、硬盤滿負載和Idle狀態下能耗的差值,Memoryutilization為內存利用率,Pf為Page Faults/s,Pfmax為硬盤滿負載時Page Faults/s的平均值。在此例子中,可以解得計算密集狀態的區間是:Memoryutilization≤40% And Pf≤1 094。兩者關系是And,只有同時滿足這兩個條件的時候,CPU在能耗變化過程中才起到主導作用,任何一方超過此閾值,主導因素就是三者。
表3是該服務器在不同負載下能耗的值,根據已有數據,通過閾值劃分狀態,繪制計算密集狀態下CPU和能耗的PLOT圖像如圖3所示,y代表能耗,x代表CPU利用率。FAN模型認為CPU的變化主導了計算機系統的變化,并且建立了線性模型。根據圖3并結合SPEC[12]公開發布的一些服務器CPU和能耗關系數據,發現即使在計算密集型任務中,CPU的利用率和能耗之間的關系并不是簡單的線性關系。在CPU負載進行增加時,能耗明顯收斂于某個固定的值,且有一定的曲度。因此,這種情況下的建??梢钥紤]線性回歸模型、指數回歸模型和冪回歸模型。
根據現有數據分別選擇線性回歸、指數回歸和冪回歸進行建模,計算得到這3種模型的擬合優度R2在冪回歸模型中最高,為0.991 7。所以,在典型計算狀態下能耗模型采用冪回歸模型。求解出模型為:
式中,x為CPU非閑置線程時間的百分比。對于非計算密集型計算狀態,建立多元線性回歸方程。
對于n組觀測值,其方程組的形式為:
即:
將表中數據帶入該方程即可得到方程組,根據該方程組在誤差平方和最小的情況下,利用最小二乘法求解參數,進而得到模型。解出模型為:
綜上,DELL2950的CMP能耗模型為:
本文用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和HPProliantDL380G5也進行了同樣建模,測試結果表明在計算密集任務中,CMP比FAN模型估量準確度平均要提高1個百分點左右,在數據密集任務中,要提高2~3個百分點左右。并且,服務器的配置中磁盤的配置量越大,CMP的優勢越明顯。在存儲系統占據數據中心能耗27%~40%[15-16]的今天,用這種方式對各服務節點進行能耗估量,將具有很大潛力。
實驗結果說明了在計算機系統中,由于任務類型不同,計算機所處的狀態不同,計算機的組成元件對能耗變化起到的作用也會發生變化,其能耗變化主導元件并不單一。
通過實驗可以看出,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.
編 輯 蔣 曉
A CMP Energy Consumption Estimate Model for Computer Systems
YU Jun-yang1,2, HU Zhi-gang1, ZHOU Zhou1, and YANG Liu1
(1. Software School, Central South University Changsha 410075; 2. Software School, Henan University Kaifeng Henan 475001)
As the development of cloud computing and the emergence of large data centers, computer system energy consumption and efficiency increasingly become a focus of research. This paper aims at solving the problem of computer’s energy estimation. The energy-consumption contributions of the all components in a computer are analyzed. A CMP energy consumption model which reflects the dominant monitored parameters of system energy consumption is constructed. This model could choose different dominant parameters according to the state of the computer’s major components. Experiments show that during a variety of workloads and different task types, the CMP model can achieve a higher accuracy on power estimation than FAN and Cubic model, especially when computers doing data intensive tasks.
CMP model; energy consumption model; energy efficiency; power estimation
TP301.41
A
10.3969/j.issn.1001-0548.2015.03.018
2013 ? 11 ? 21;
2014 ? 03 ? 20
國家自然科學基金(61272148,61301136,60970038);博士點基金(20120162110061,20120162120091)
于俊洋(1982? ),男,博士生,主要從事云計算、并行與分布式系統方面的研究.