王詠梅,施培蓓,劉 磊,周媛媛
(1.合肥師范學院 計算機學院,安徽 合肥 230031;2.合肥市公安信息中心,安徽 合肥 230001;3.安徽大學 計算機學院,安徽 合肥 230036)
在信息技術的高速發展過程中,隨著企業用戶和數據的爆炸式增長,能源效率已經成為一個突出的矛盾.如何減少碳排放和節約成本已成為大數據運營商越來越關注的問題[1].隨著云計算的計算服務向普及化方向發展,對云計算的需求不斷擴大,需要建立大規模的數據中心,而數據中心的運行維護需要消耗大量的能量[2].保證云計算系統的高性能,提高資源利用率,降低能耗已成為亟待解決的問題.綠色云計算為云計算技術的發展提供了契機,它通過構建合理的資源分配環境和高效的任務執行環境來降低能耗、提高效率,以達到節能環保的目的[3].資源分配是綠色云計算的關鍵技術之一.目前,資源分配的研究主要集中在通過平衡數據中心的負載來提高整體性能這一方面.這些研究沒有把如何降低系統的能耗充分考慮進去.在資源配置過程中優化資源分配策略可以減少服務器產生的熱量,降低散熱成本,從而提高系統的穩定性和延長硬件[4,5]壽命.資源利用率的提高能有效節約能源,降低二氧化碳的排放,對緩解溫室效應具有一定的貢獻,對整個生態環境保護也具有重要意義,它符合當今社會的“綠色IT”概念.因此,研究綠色云計算環境下的資源分配優化策略具有重要的理論意義.
隨著云計算技術的蓬勃發展,谷歌、Amazon、IBM等大公司紛紛開發了自己的云計算平臺,而云計算相關技術的研究與實現也呈現出快速發展的趨勢.作為云計算的關鍵技術,資源配置仍處于研究階段,到目前為止,還沒有一個統一的行業標準[6].國內外研究有代表性的有:
文獻[7]采用了演化博弈的方式對整個云計算市場進行建模分析,最終通過動態演化整個市場可以達到演化穩定.但是作者只是考慮了資源的價格,忽略了用戶所關心的QoS問題.S.S.Manvi等人最早提出了面向市場的云計算架構,以及基于該架構的云計算資源分配方式[8].M.Macia等人采用遺傳算法解決云計算市場中的定價問題,使得每一個云服務提供商能在整個市場中制定合理的服務價格[9].S.AT等人提出了基于市場機制的資源分配策略[10],通過利用市場機制來尋找資源需求與分配的平衡點.但以上策略都側重在運用市場機制方面對各種角色進行優化,對資源的分配方式沒有提出具體的方案.
Shuai Ding等人通過動態分配虛擬機到服務器,證明了在保證服務質量的前提下可以通過虛擬機的遷移和關閉空閑服務器來降低功耗[11].S.T.Maguluri等人將虛擬資源分配問題建模為多維背包問題,并找到服務器執行單位事務功耗的最優點[12].文獻[13]提出了一種基于云計算虛擬機初始分配的節能算法,設計了一種基于網絡感知的虛擬機再調度算法.這些研究側重從虛擬化應用方面考慮如何充分發揮虛擬化技術的優勢,以實現硬件資源利用的最大化.
在資源分配算法的設計方面,為了實現資源分配的負載均衡,Florin Pop等人設計了一種基于遺傳算法的能量感知優化模型和資源分配策略[3].Y.J.Chiang等人提出一種高效的綠色能耗控制資源分配方法[14],但均沒有充分考慮到資源分配中的能耗優化問題.J.T.Tsai等人提出了一種基于差分進化算法的云計算資源分配方法(IDEA),實驗證明了該算法比其他云計算資源分配方法具有更優的效率,但是該算法只考慮帶寬占用、網絡負載和響應時間等因素對云端資源分配的影響[15],沒有充分考慮系統能耗情形下,如何構建動態能耗優化模型、資源分配優化模型的問題.
針對上述綠色云計算環境下的資源分配問題,本文提出了一個等價黃金分割資源分配優化算法(Equivalent Golden Partition Resource Allocation Optimization,EGPRAO),該算法能實現全局和局部搜索的平衡,在構建合理的資源分配環境和高效的任務執行環境方面,該算法比目前已有的資源分配策略具有更低能耗、更高效率的優點.
為了避免算法陷入局部最優值,實現全局和局部搜索的平衡,本文將算法的初始種群構建為一種等價區間劃分優化模型.其目的是盡可能地將冗余個體劃分為一個區間塊,然后對不同的區間塊進行不同的操作,從而指導相關算法算子進行引導搜索.圖1描述的是該算法的種群等效區間劃分模型流程圖.
在圖1中,N表示等價區間劃分的個數,a表示種群中個體最小的適應度值,b表示種群中個體最大的適應度值,c表示種群中個體平均的適應度值.
黃金分割策略是利用區間消去法的原理,通過不斷縮小單峰區間長度,即每次迭代都消去一部分不含極小值點的區間,使搜索區間不斷縮小,從而逐漸逼近目標函數極小值點的一種優化方法.黃金分割策略是直接尋優法,通過直接比較區間上點的函數值的大小來判斷區間的取舍,這種方法具有計算簡單,收斂速度快等優點.
黃金分割策略是基于選擇區間內計算點的位置,它具有以下通用的策略:
(1)點α1和α2相對于區間[a,b]的邊界要對稱分布,即區間[a,α1)的區間大小和(α2,b]的區間大小相等.
(2)每次計算一個新點,要求保留的區間長度l與原區間長度L之比等于被消去的區間長度L-l與保留區間長度之比,即滿足以下條件:

本文設計的等價黃金分割資源分配優化算法的實現步驟如下:Step 1. 在[a,b]內取兩點 α1和 α2,使
α1=a+0.382×(b-a),α2=a+0.618×(b-a)
Step 2. 計算 f1=f(α1),f2=f(α2).
Step 3. 當 f1<f2時,消去區間(α2,b].同時,令 b=α2,α2=α1,f1=f2.令 α1=a+0.382×(b-a),f1=f(α1).
Step 4.當f1≥f2時,消去區間 [a,α1).同時,令 a=α1,α2=α1,f1=f2.令 α2=a+0.618×(b-a),f2=f(α2).
Step 5.當b-a≤δ,算法結束;否則,返回到Step 3.
為了驗證本文設計的EGPRAO算法的可行性和優越性,從算法的執行時間、資源分配的能耗和資源平均利用率三個方面設計了不同的目標函數,利用實驗仿真平臺CloudSim,進行仿真測試實驗.考慮到單個數據中心的數據具有一定的不確定性,該綠色云計算平臺設置了8個數據中心,每個數據中心包含10GB的RAM和2TB的存儲,8核CPU,每個CPU的計算能力是10000MIPS.文獻[15]的IDEA算法在多種不同平臺環境下都取得了較好的實驗結果,因此,在相同的測試條件下本文將EGPRAO算法與文獻[15]的IDEA算法進行性能對比,實驗結果分別如圖2、圖3和圖4所示.

圖2 兩種不同資源分配算法的執行時間比較

圖3 兩種不同資源分配算法的能耗函數比較
圖2顯示的兩種不同資源分配算法的執行時間函數對比結果,圖3顯示的是兩種不同資源分配算法的能耗函數對比結果,圖4顯示的是兩種不同資源分配算法的資源平均利用率函數對比結果.

圖4 兩種不同資源分配算法的資源平均利用率函數比較
通過圖2-4的實驗結果,我們不難看出:在執行時間、能耗優化和資源平均利用率等方面,本文設計的EGPRAO算法比傳統的IDEA算法表現出更良好的性能.
信息技術日新月異的變化,導致人類對云計算技術的應用越來越普及.本文針對綠色云計算中日益嚴重的能耗問題,設計了一種新的資源分配算法.該算法利用黃金分割策略和等價區間劃分優化模型資源的優點,能實現全局和局部搜索的平衡.在構建合理的資源分配環境和高效的任務執行環境方面,該算法具有更低能耗、更高效率的優點.在CloudSim測試平臺中,該算法取得了比較理想的實驗結果.