徐勝超 毛明揚 陳 剛
(廣州華商學院數(shù)據(jù)科學學院 廣州 511300)
云計算在使用過程中能耗過大是比較棘手的問題[1],近年來國內(nèi)外專家針對降低云計算能耗的方法開展了深入研究,得出能耗高的原因:其一是數(shù)據(jù)量的增多,其二是云資源部署不合理[2]。隨著云計算的廣泛應用,數(shù)據(jù)中心數(shù)量急劇增多,能耗問題愈發(fā)嚴重。為了進一步優(yōu)化云資源部署能力,有效降低資源能耗,相關的云資源低能耗部署方法引起了學者的關注。
文獻[3]比較了不同的容器云調(diào)度算法,考慮了容器云任務調(diào)度的不同細微差別,包括任務長度、任務完成時間、虛擬機配置和任務截止時間,同時還包括容器,這確保調(diào)度器在容器環(huán)境中有效工作,以提高容器云部署的效率。但是該方法調(diào)度過程中能耗消耗較多。文獻[4]提出了帶約束修復的樹形調(diào)度目標模型,采用優(yōu)先級綜合多個子目標并將其歸屬于不同樹形分支下的子空間,構建了容器云資源均衡調(diào)度模型。但是該方法極易出現(xiàn)不可用節(jié)點或主機被開啟的情況,存在平臺資源利用率低及負載均衡差的問題。文獻[5]提出了基于多維資源空閑率權重的評價函數(shù)和調(diào)度方法,利用模糊層次分析法自動建模求解容器應用多維資源權重參數(shù),均衡了集群多維資源利用率。但是該方法不能實時監(jiān)測部署過程中的能耗。
文獻[6]提出了一種離散Pareto 花朵授粉算法對問題進行求解,構造了離散異花授粉行為和離散自花授粉行為,并將離散算法與多目標優(yōu)化策略相結合,提升了算法的適用性。綜上所述,一方面容器云急需降低能耗,另一方面花朵授粉算法可以采用多目標優(yōu)化的方式有效提高容器云平臺的物理資源的利用效率與降低能耗,因此,本文提出了基于花授粉算法的多目標優(yōu)化容器云資源低能耗部署方法,最后利用實驗的方式驗證了我們的思路與性能。
在有m個物理主機和n個容器的云平臺中,云資源部署的能量消耗主要來自固定和遷移兩部分,經(jīng)實驗發(fā)現(xiàn),云資源能耗與物理主機的資源利用率有較大關聯(lián)[7],因此t時刻物理主機的能耗為E(Ucpu(t))表示物理主機CPU 的能耗,E(Umem(t))物理主機的內(nèi)存能耗E(Udisk(t))物理主機的磁盤能耗,E(Ubw(t))物理主機的網(wǎng)絡帶寬能耗。這樣第i個物理主機在[ta,tb]時間段的總體能量消耗Ei可以按照式(2)來計算:
考慮到容器云資源調(diào)度過程中的能耗除了硬件資源利用率實時變化產(chǎn)生的能耗外,還包括容器遷移能耗,在容器云平臺中,由于用戶需求的差別,系統(tǒng)的負載均不相同,當云資源利用率較低時,為降低能耗需要遷移容器[8],遷移過程必須實時關注容器的遷移量,若遷移量較大會直接影響容器云平臺性能,升高SLA(服務等級協(xié)議)違約率?;谙到y(tǒng)各部位的資源利用率以及能耗公式得出容器遷移開銷,其計算公式為
其中,j代表容器,vj(t)代表t時刻的第j個容器處理器利用率,t1代表容器開始遷移的時間,tkj代表容器完成遷移所需的時間。
式中,Vj代表容器遷移開銷。由于容器遷移開銷是影響容器云資源調(diào)度能耗的重要影響因素,因此容器云資源能耗分析過程中重點計算容器遷移開銷。整個容器云平臺的能量消耗為
在遷移過程中利用三個閾值的容器遷移方案完成遷移,其核心思想是當物理主機負載過輕或過重時即刻遷移容器,負載過輕的主機為之匹配合適的主機,同時關閉無用主機進而降低能耗,過重的主機通過遷移提高CPU利用率,無需遷移處理的僅為負載合理的主機[9]。
遷移容器時,需要根據(jù)實時負載情況選擇容器遷移方法,遷移容器的選擇主要方式有以下四種。
1)最低增長方法
這種容器遷移方法就是當容器云平臺主機出現(xiàn)負載過重時,從所有CPU中選取出利用率最大的容器,對該容器實施遷移處理,以此保證主機CPU利用率小于閾值C,則此時的容器選擇目標函數(shù)為
式中,G代表主機負載集合,β(Uj)代表j個容器集合的冪集,Uj代表j個容器集合,vj(t)代表容器j的CPU利用率,v(u)代表負載u占主機的CPU利用率,a和b均為CPU利用率的位置標識。
2)最高增長方法
此方法的主要實現(xiàn)方式就是若物理主機負載過重,立即在主機中選取CPU 利用率最小的容器,并對其遷移處理,實現(xiàn)物理主機CPU利用率小于閾值C的目的,此方式下的容器選擇目標函數(shù)為
公式中字母和符號的含義與最低增長方法中的含義一致。
3)混合增長方法
混合增長方法就是在物理主機負載過重時,第一時間選取出CPU利用率最小的容器,并對其完成第一次遷移處理,再提取出CPU 利用率最大的容器,完成第二次遷移,最后不斷循環(huán)操作上述步驟,直至CPU 利用率小于閾值C,混合增長方法下的容器選擇目標函數(shù)為
4)隨機選擇模式
這種容器選擇策略的核心思想就是在物理主機發(fā)生負載過重時,在主機中隨機選取出部分容器,并對其遷移處理,隨機選擇模式下的容器選擇目標函數(shù)為
公式中字母和符號的含義與最低增長方法中的含義一致。通過以上計算和約束條件分析,可以得出云資源部署過程中所需要部署的容器,將不必要的容器進行關閉,降低能耗,同時結合能耗模型計算容器云資源調(diào)度所需的最低能耗,最大程度降低資源部署的能耗。
通過計算云資源相應能耗對容器進行遷移,并根據(jù)實際遷移情況選擇容器,以此保證云資源在運行過程中能耗最低,在此基礎上利用花授粉算法[10]得出每個被選中容器最合理的位置,花授粉算法(Flower Pollination Algorithm,F(xiàn)PA)是仿生智能算法的一種,即模擬花朵傳粉機制在全局中找出每個容器最優(yōu)的部署位置,這種算法的操作簡單,結構新穎,可有效解決混合數(shù)據(jù)聚類難的問題[11~12]。
在容器云資源能耗分析的基礎上,基于花授粉算法的云資源低能耗部署,具體步驟如圖1所示。
圖1 基于花授粉算法的容器云資源低能耗部署流程
步驟1 初始化花授粉算法相應參數(shù)。
步驟2 計算容器云資源種群的半徑R,并求解出種群內(nèi)每個個體的適應度值[13~14],對在R半徑內(nèi)符合歐式距離的個體,同時記載每個種群中的最優(yōu)和最差個體。
步驟3 求解上述記載容器云資源個體對應的解,同時對其實施越界處理,其計算公式為
步驟4 在花授粉算法中計算出容器云資源個體的適應度值[15],利用適應度評判種群內(nèi)每個個體的優(yōu)劣,假設適應度值為F(X′),基于適應度值必須為非負的要求,對其做出以下調(diào)整,即:
式中,F(xiàn)′l(X′)代表完成調(diào)整后的適應度值,fl(X′)代表未經(jīng)過調(diào)整的適應度值,F(xiàn)(X′)min代表未經(jīng)過調(diào)整的最小適應度值,F(xiàn)(X′)max代表未經(jīng)過調(diào)整的最大適應度值,代表調(diào)整系數(shù)。
容器云資源種群優(yōu)劣的衡量方法是對種群中個體適應度平均值與種群適應度最大值進行比較,若兩者之差小于設定的最小正數(shù)χ,則說明此時部署的容器個體較優(yōu),兩者之差大于設定的最小正數(shù)χ,則說明此時部署的容器個體較差。
步驟5 將每個子容器云資源種群適應度最高的視為精英,并對最差容器個體開展初始化處理。
步驟6 達到迭代次數(shù)后更新最差容器云資源個體,反之,返回第3步重新計算。
步驟7 輸出容器云資源部署的最優(yōu)解并計算,得出的最優(yōu)解就是容器云資源最終的低能耗部署結果,從而實現(xiàn)容器云資源低能耗部署。
為了驗證基于花授粉算法的容器云資源低能耗部署方法的整體有效性,將引言中提到的其他容器云調(diào)度方法文獻[3]云環(huán)境下任務調(diào)度算法的統(tǒng)計評估方法和文獻[4]基于多目標的容器云任務調(diào)度算法作為對比方法,進行平臺資源能耗、部署完成時間以及負載均衡對比測試,測試結果如下所示。
本文基于Cloudsim 5.0工具包實現(xiàn)了容器云資源低能耗部署,表1 給出了容器云資源低能耗部署過程中的物理主機和虛擬機的參數(shù)配置情況,為了測試的統(tǒng)一性,表1 所示的物理主機都是相同的配置。表2給出了花授粉算法的參數(shù)設置。
表1 物理主機和虛擬機的參數(shù)配置
表2 花授粉算法參數(shù)設置
在表1 物理主機和虛擬機的參數(shù)配置的基礎上,實驗過程中在Cloudsim 5.0 中模擬仿真了50 個虛擬節(jié)點和50 個物理節(jié)點,每一個物理節(jié)點上只有一個虛擬節(jié)點,隨機設置虛擬節(jié)點的性能和已部署的容器個數(shù),以模擬出集群不同負載的情況。
由于本文在容器遷移過程中根據(jù)不同的負載情況,選擇了最低增長法、最高增長法、混合增長法以及隨機選擇模式四種方式,因此在實驗前,首先確定本文基于花授粉算法的容器云資源低能耗部署方法的容器遷移方式。設置部署過程中的負載均為0.8,隨機選取五組需要部署的資源,分別編號為1~5,每組需要部署的資容器云資源任務數(shù)分別為300個、400個、500個、600個和700個,利用四種方式對五組容器云資源進行部署,得出每種方式的部署效果,如圖2所示。
圖2 四種方式對五組容器云資源的部署效果
根據(jù)圖2 可知,四種方式對五組容器云資源的部署成功率均高于80%,相比而言,隨機選擇模式較最低增長法、最高增長法和混合增長法的部署成功率更高,完整度更好。其主要原因是在同樣的負載情況下,隨機選擇模式可以根據(jù)運行情況隨機部署容器,調(diào)整容器選擇以適應不同組別實驗環(huán)境,而不是單一地利用某一個容器完成遷移和部署,加強了部署能力,優(yōu)化了部署效果。
綜上所述,本文實驗過程中的容器部署方式選擇隨機選擇模式,并與云環(huán)境中任務調(diào)度算法、基于多目標的容器云任務調(diào)度算法進行對比。
4.2.1 容器云資源能耗分析
容器云計算平臺中會部署大量的計算資源,從而滿足用戶的需求,部署方法會為了加強部署能力利用大量能耗支撐部署效果,但也因此造成了浪費。為了比較三種方法的優(yōu)劣,在同一環(huán)境下保證三種方法的資源部署效果一致,判斷每種方法在不同任務下所需的能耗。
為了確保實驗準確性,降低實驗偶然性,在15組不同大小的云容器中進行資源部署,每種方法下的能耗結果如表3所示。
表3 三種方法的容器云資源能耗(焦耳J)
根據(jù)表3 可知,隨著容器云大小的增大,三種方法的資源部署能耗隨之增高,每組實驗下云資源能耗最低的均是花授粉方法,且遠低于其余兩種部署方法,由此證明花授粉方法能耗最小。其主要原因是花授粉方法采用了隨機模式下的容器調(diào)度策略與算法調(diào)優(yōu),減少了錯誤部署策略的生成率,降低了能耗。
4.2.2 部署完成時間
容器云資源部署方法關鍵評價標準就是部署完成時間,為了降低容器云計算平臺能耗,在部署前均需要計算部署必需的能耗,將無用部分關閉降低能耗,從而加長容器云計算平臺資源部署時間。
現(xiàn)隨機選取五組需要進行部署的資源,對每組資源進行編號,分別是編號1到編號5,每組需要部署的資源任務數(shù)均不相同,實驗編號1 到實驗編號5與之對應的部署任務數(shù)分別為100個、150個、200個、250個和300個,在上述實驗環(huán)境下利用三種方法對五組資源進行部署,得出每種方法完成部署所需的時間,實驗結果如圖3所示。
圖3 三種方法資源部署所需時間
根據(jù)圖3 可知,本文方法完成部署所需的時間低于其余兩種方法,且每組實驗均是本文方法用時最少,其次是基于預測的資源部署方法,這是因為本文方法在對容器云資源進行部署過程中隨機選取出部分容器,并對其遷移處理,調(diào)整容器選擇以適應不同組別實驗環(huán)境,而不是單一地利用某一個容器完成遷移和部署,加強了部署能力,降低部署所需時間。
4.2.3 部署后容器云負載均衡比較
云計算平臺保持負載均衡是保證平臺性能的必要手段,只有負載平衡才能最大程度地發(fā)揮每個容器的作用,且當云計算平臺保持負載平衡時,各個節(jié)點均處于平穩(wěn)狀態(tài),更有利于云資源的部署,所以云計算平臺的負載均衡程度也是衡量云資源部署好壞的標準指標。
在同一環(huán)境下對比五組不同任務數(shù)下每種方法的負載均衡方差,如式(11):
式中,S代表負載均衡方差;xa和xa?分別代表實際和測量緩存丟失率;yb和yb?分別代表實際和測量緩存命中率;zc和zc分別代表實際和測量后端吞吐率;N代表任務數(shù)。負載方差越小說明該方法的負載均衡能力越強,即部署方法越好。
根據(jù)圖4 可知,每組實驗下均是本文方法的負載均衡方差最小,說明本文方法的部署性能最穩(wěn)定,部署性能最高。其主要原因是,本文方法通過多次迭代更新了最差個體位置,獲取了最佳個體,降低了最終部署方案的負載均衡方差。
圖4 三種方法的負載均衡方差
容器云是比較先進的云計算技術,可不限制用戶數(shù)量的提供數(shù)據(jù)資源,同時實現(xiàn)數(shù)據(jù)的共享,最大程度地提高資源的利用率,也提高云服務的收益,本文提出了基于花授粉算法的容器云資源低能耗部署方法,對相關云資源數(shù)據(jù)進行預處理,最大程度降低資源部署的能耗,并在花授粉算法的幫助下完成資源部署,實現(xiàn)容器云資源低能耗部署,解決了平臺資源利用率低、部署完成時間長以及負載均衡差的問題,下一步研究將針對部署過程中的資源違約率問題進行分析。