關鍵詞:服務質量;虛擬機放置;能耗優(yōu)化;突發(fā)負載
中圖分類號:TP393 文獻標識碼:A
文章編號:1009-3044(2024)26-0057-07開放科學(資源服務)標識碼(OSID) :
0 引言
隨著云計算不斷普及,數據中心的體量和業(yè)務量也逐漸增加。服務提供商與用戶之間的服務水平協(xié)議(SLA) 規(guī)定了對任務延遲的保證。服務提供商必須根據用戶需求來提供資源,在保障任務完成的同時滿足用戶的SLA。這帶來以下幾方面的挑戰(zhàn)。
首先,數據中心運營過程出現的大量突發(fā)性工作負載如何進行有效處理已成為一個難題[1]。面臨突發(fā)負載時,服務供應商通常采用增加服務器的數量或將超過處理閾值的任務進行等待直到有空閑資源再進行處理等方法應對。但增加服務器需要一定的時間,在這段時間內,數據中心一直處在過載的狀態(tài)下運行,這將導致數據中心的響應延遲提高,進而影響對用戶的服務質量。在延緩任務執(zhí)行方法上,目前有研究提出利用速率限制[2-3]來應對突發(fā)負載,但這往往會帶來較大的能源消耗。同時,由于突發(fā)負載的到來難以預測,因此需要尋找更好的解決方法。
其次,在云數據中心中,用戶和服務提供商簽署服務級別協(xié)議(Service-Level Agreement, SLA)后,用戶有權獲得滿足其指定服務級別的高質量服務,如何保證用戶的服務質量亦是一個頗具挑戰(zhàn)性的問題。在突發(fā)負載的情況下,服務提供商通常優(yōu)先執(zhí)行優(yōu)先級別較高的任務,但這容易導致一部分優(yōu)先級較低的任務長時間無法得到執(zhí)行,陷入“長尾效應”。因此,如何在保障大部分任務的服務質量的情況下消除“長尾效應”,已成為關鍵問題。
并且,數據中心業(yè)務量的增加導致能源消耗增加以及更多的碳排放量[4-6]。為了減少數據中心的能耗,一種常見的方法是利用虛擬機放置策略來減少物理資源的使用以降低能耗。目前已有許多研究者[7-9]對虛擬機(Virtual Machine, VM)放置算法進行研究。但是,大多數放置算法致力于優(yōu)化物理資源的利用率(例如帶寬資源、CPU使用率、網絡資源、內存使用率等)來減少服務器能耗,忽略了數據中心日常使用的制冷能耗。然而數據中心的制冷能耗已占到了數據中心總能耗的較大部分,有實驗表明[10],在對44個數據中心進行統(tǒng)計研究后,指出制冷系統(tǒng)(ComputerRoom Air Conditioner, CRAC)消耗了數據中心總能耗的40%,甚至在某些制冷效率低的數據中心中,這一統(tǒng)計值高達60%。為了解決上述問題,在這項研究中,本文提出了一種有效的虛擬機節(jié)能放置策略SABA-S,該策略能在突發(fā)負載時保證用戶的服務質量,并綜合考慮了制冷系統(tǒng)的熱循環(huán)模型和服務器能耗模型來減少數據中心日常使用能耗。
本文的主要貢獻有以下三點:
1) 針對數據中心的突發(fā)負載,本文采用了任務隊列拆分重組的方法,對原始任務隊列進行拆分,按優(yōu)先級高低和耗時長短進行重組,并對超出數據中心負載上限的部分做延后處理。實驗表明,任務隊列拆分重組方法在處理突發(fā)負載時,相比傳統(tǒng)的FCFS(FirstCome First Service, 先來先服務)算法能降低平均81% 的等待延時。
2) 將任務按照優(yōu)先級和耗時重組后,算法將優(yōu)先執(zhí)行關鍵任務,同時為了保障普通任務的服務質量,算法將分配一定比例的資源給普通任務,并且,為了防止一部分任務陷入“長尾效應”,長時間無法得到執(zhí)行,算法將監(jiān)聽任務的響應比,對響應比較高的任務提高其優(yōu)先級。實驗表明,本文算法在短時普通任務的耗時相比同樣具有優(yōu)先級策略的PLSC(峰值負載處理)算法能降低82%的等待延時。
3) 針對數據中心的能耗過高問題,本文所提策略對服務器能耗模型和制冷系統(tǒng)能耗模型進行綜合考慮,并基于模擬退火算法進行改進,優(yōu)化了初始解的產生方式、迭代過程并加入了服務器啟動數量控制模塊。實驗表明,本文策略相對其他算法能明顯降低數據中心日常運行的能耗。
1 相關工作
隨著數據中心相關技術的成熟,近些年已有許多工作在處理突發(fā)負載,保障對用戶服務質量以及降低數據中心能源消耗方面進行了研究。
1.1 突發(fā)負載應對策略
在數據中心出現突發(fā)負載時,有研究[11]通過計算服務器的平均負載,利用平均負載代替當前負載作為虛擬機遷移的依據,降低突發(fā)負載對實時虛擬機遷移造成的惡性影響。在能源消耗部分,他們將虛擬機進行遷移整合,關閉空載的服務器,以此實現能耗的優(yōu)化,但他們并沒有采取措施保障對用戶的服務質量。也有研究[12]通過計算不同服務器的過載概率,優(yōu)先將虛擬機放置到過載概率低的服務器上來應對突發(fā)負載,但這可能導致較多的服務器處于低負載狀態(tài),造成資源浪費。亦有研究[1]通過對任務隊列進行拆分重組,將超出數據中心處理閾值的部分延后處理,保證數據中心能夠在突發(fā)負載的情況下正常運轉,但是該研究并沒有考慮數據中心的能耗問題。HU C等人[13]提出的PLSC算法在對到來的任務進行拆分重組基礎上,利用任務的關鍵程度形成新的任務隊列,并保障了關鍵任務的服務質量。但是對于普通任務來說,他們沒有采取額外的措施來保證普通任務的服務質量,并且在一些情況下將會導致長尾效應,即一部分普通任務長時間無法獲得執(zhí)行。同時,該算法沒有考慮虛擬機放置時的能源消耗。
1.2 服務質量保障策略
在保障服務質量的方法中,有研究[14]提出通過博弈論中的戰(zhàn)略博弈想法來構建虛擬機放置模型,以此尋找降低服務器能耗和保障服務質量之間的平衡,但該研究未考慮突發(fā)負載帶來的負面影響。也有研究[15]根據不同類型的任務對延時敏感度不同,將任務按類型拆分,優(yōu)先處理延時敏感的任務,同時設立延時容忍機制,為低延時敏感度的任務設立延時容忍,延時超過一定時間后,增加該任務處理的優(yōu)先級,避免了長尾效應,但該研究并沒有涉及降低能耗方面的內容。另有研究[16]通過引入令牌桶的概念,為每個工作負載設置速率限制,保障了工作負載的尾部延遲服務水平,并減少了服務器的使用數量,但該研究需要相應的硬件配合,成本較高。
1.3 能源消耗降低策略
先前對于VM放置算法的研究,大部分精力都集中在平衡VM的需求和物理服務器的計算資源上[17-19]。這些研究通過優(yōu)化數據中心中的VM放置來降低服務器資源的使用率。但這些節(jié)能解決方案不足以明顯提高數據中心的能源效率。本文提出了一種VM放置算法,該算法在考慮了數據中心制冷能耗的基礎上進一步降低了服務器能耗。最近,許多研究表明,根據服務器節(jié)點間的熱循環(huán)效應來放置任務,可以節(jié)省數據中心的能耗[7-9]。這些研究利用熱循環(huán)模型來優(yōu)化資源分配,以減少數據中心的制冷能耗。但是,這些放置策略主要集中在任務上,而忽略了VM對數據中心能源效率的影響,同時這些策略在放置任務時沒有綜合考慮服務器能耗的影響,可能會造成服務器能耗的增加。與已有工作不同,本文利用熱循環(huán)模型來考慮節(jié)能的虛擬機放置,在減少制冷能耗的同時進一步降低服務器能耗。
由于先前關于數據中心虛擬機放置的研究沒有深入研究如何以一個較低的能源消耗處理突發(fā)負載,同時在此基礎上保證用戶的服務質量,因此,本文提出了一種新的虛擬機放置策略SABA-S,可以應對以下場景:
1) 突發(fā)負載:SABA-S利用拆分重組任務隊列來緩解突發(fā)負載對數據中心的負面影響。
2) 長尾效應:SABA-S通過任務的響應比來為任務增加執(zhí)行優(yōu)先權,消除長尾。
3) 能源消耗:SABA-S提出一種啟發(fā)式虛擬機放置算法,利用該算法能綜合考慮服務器能耗和制冷系統(tǒng)能耗,有效降低虛擬機放置過程的能源消耗。
2 SABA-S策略
SABA-S策略包含兩部分:第一部分用于處理數據中心的突發(fā)負載。此部分首先判斷到來的負載是否為突發(fā)負載,若是突發(fā)負載,則對任務隊列按優(yōu)先級高低和耗時長短進行拆分重組,延緩超過處理閾值的低優(yōu)先級隊列,降低突發(fā)負載對數據中心性能的影響,同時監(jiān)聽任務響應比,提高響應比過大的任務的優(yōu)先級,防止其陷入“長尾效應”,保障對用戶的服務質量;第二部分則基于模擬退火算法進行改進,將虛擬機放置于合適的服務器上,以降低數據中心日常運行時的制冷及服務器能耗。 SABA-S策略架構如圖1 所示。
2.1 SABA-S策略架構
SABA-S策略架構模型如圖1所示,數據中心接受任務請求,若到來的任務量超過數據中心的當前處理閾值,則判定為突發(fā)負載,由SABA-S策略對其進行處理。該策略分為兩步,首先將到來的任務拆分分類,按照標簽分為普通任務和關鍵任務,再將任務拆分細化到按耗時分級,分為長時任務、中時任務和短時任務(3、2、1個單位時間任務)。將任務分類之后,按照算法的規(guī)則,優(yōu)先執(zhí)行關鍵任務,但為了防止普通任務累積過多,導致長尾效應,本文采用了監(jiān)聽任務響應比來提高長時間未執(zhí)行任務的優(yōu)先級和分配固定比例的資源去執(zhí)行普通任務兩個方法解決這個問題。由于短時任務的用戶往往對延遲敏感度較高,因此對于普通任務,策略將優(yōu)先分配資源給短時任務。將到來的任務拆分重組成新的隊列后,將執(zhí)行SABA-S策略的第二部分,該部分的算法將綜合考慮制冷系統(tǒng)能耗和服務器能耗來對虛擬機放置時的能源消耗進行優(yōu)化。模擬退火算法(SA) 在數據中心虛擬機放置的問題上有著良好的表現,SABA-S策略針對SA的缺點進行了改進,使其能在較短的時間內獲得最優(yōu)解。
當出現突發(fā)負載時,數據中心無法保障所有任務的服務質量,不及時進行處理甚至將影響整個數據中心的性能。SABA-S策略的任務隊列拆分重組模塊在對任務的關鍵程度進行劃分后,還考慮了任務的運行時長,運行時長較短的任務往往用戶對延遲的敏感度較高。所以,在保障關鍵任務的服務質量的基礎上,盡可能地去保障普通任務中運行時長較短的服務質量。表1列出了本文的常用符號。
2.2 SABA-S 拆分重組算法
當前數據中心大多使用先到先執(zhí)行的策略。在面對突發(fā)負載時,并非所有任務都能在規(guī)定時間內執(zhí)行完成,此時首先需要保證關鍵任務的服務質量。而先到先執(zhí)行策略無法在突發(fā)負載的情況下保障指定類型任務的服務質量,因此,本文提出一種拆分重組算法來優(yōu)先保障關鍵任務的服務質量。
本文提出了一種新穎的拆分重組算法(SABA-S 策略第一部分),該算法首先將到來的任務進行分類,按是否為關鍵任務分為兩類,再按任務耗費時間分為三類,形成六類任務,如圖2所示。在面臨突發(fā)負載時,算法優(yōu)先保障關鍵任務的服務質量,同時分出一定量的服務器資源來運行普通任務,防止普通任務的延時過高。在關鍵任務執(zhí)行之后,將對普通任務中占比較大的部分優(yōu)先執(zhí)行,以滿足大部分用戶的需求。同時,算法還會監(jiān)測任務的響應比,通過以下公式來確定任務的運行順序。
其中:Z代表任務的優(yōu)先權,Z值越大,表示該任務優(yōu)先級越高。w表示用戶遞交任務時的期望完成時間。ΣT表示該任務已等待時間的總和。
算法如下所示。該算法對到達數據中心的任務隊列讀取一次,按任務關鍵與否進行拆分,然后再次讀取拆分后的隊列,根據數據中心的處理閾值進行重組,時間復雜度為O(n)。
算法1 SABA-S 任務隊列重組算法
輸入:到來的任務隊列M
輸出:重組后的任務隊列N,未處理任務隊列K
1 if( len(M) > DCvalve) //判斷是否為突發(fā)負載
在生成初始解時,為機架頂部附近的位置分配了一個相對較大的值。與SA相比,SABA-S策略生成了初始值,該初始值將加速獲得最終的最優(yōu)解。在生成新解決方案的步驟中,如果在轉換策略之后新解決方案將較少的值分配給頂部機架附近的位置,則將不會執(zhí)行轉換。也就是說,SABA-S策略可防止當前解的方向發(fā)生變化,不會向不利于SABA-S獲得全局最優(yōu)解的方向變化。與SA算法相比,如果CPU利用率不高,則SABA-S將啟動較少的節(jié)點來調度虛擬機。因此,SABA-S在確保任務完成的同時提高了節(jié)點的利用率。
算法偽代碼如算法3所示。
3 實驗結果與分析
3.1 實驗準備
實驗設備系統(tǒng)環(huán)境采用Windows 10的64位操作系統(tǒng),計算機的硬件配置8 GB RAM,1 TB ROM,處理器 Intel ? Core? i7-6700 處理器(主頻為 3.40 GHz) 。所有程序使用MATLAB語言進行實現。
本文采用的SABA-S策略將使用真實的數據集與PPVMP算法[22]、XInt-GA算法[20]、PLSC算法[13]進行比較分析。
我們對阿里數據中心的數據集進行分析整合,截取了一段60小時的負載情況作為實驗數據。該數據如圖4 所示,我們將數據中心的最大負載設定為1400,虛擬機數量在一部分時間超過了負載閾值1400,若無法及時處理這部分突發(fā)負載,將會損害系統(tǒng)的性能和任務的服務質量。
SABA-S策略將到來的虛擬機數量進行突發(fā)負載的處理,得到的結果如圖5所示。SABA-S處理突發(fā)負載的策略是將任務拆分重組后,對超過數據中心負載處理閾值的低優(yōu)先級部分進行延后處理。由于考慮了不同的任務負載具有不同的處理時間,因此長時間的任務負載將會對之后的數據中心負載處理數量造成影響。從圖5中可以看出,經過處理后的負載沒有超過數據中心的負載閾值。因此,SABA-S策略可以保障突發(fā)負載時數據中心的系統(tǒng)性能。
所有任務的執(zhí)行時間消耗如圖6(a) 所示。本文對所有到來的任務按執(zhí)行時間消耗進行分類,將耗時在30s之內的任務定義為1個單位時間任務,這部分占比66%,耗時在30s~80s的任務定義為2個單位時間任務,這部分占比15.9%,耗時在80s以上的任務定義為3個單位時間任務,這部分占比18.1%,如圖6(b) 所示。
3.2 任務延時結果對比
任務隊列拆分重組模塊的實驗結果如圖7所示,圖7(a) 是普通任務的實驗結果圖,普通任務中1個單位時間的任務占據66%的比例,并且短時間的任務用戶對延時較為敏感,因此優(yōu)先保障短時的普通任務。在本文實驗中,SABA-S策略第一部分在短時普通任務上延時是空白對照組(FCFS) 的48%,是PLSC 的18%,確保了短時任務的服務質量,在3個單位時間的任務中,由于該類任務占比較少,并且長時任務的用戶對延時敏感度低,可以接受較高的延時。圖7(b) 是關鍵任務的延時結果圖,SABA-S在保障關鍵任務的服務質量的同時,分出一部分資源給普通任務,在關鍵任務的延時可接受范圍內,減少了普通任務的延時。
3.3 能源消耗實驗對比結果
圖8、圖9、圖10是算法SABA-S、XIntGA、PPVMP 和PLSC能耗實驗結果圖。圖8展示了在不同時刻總能耗的比較。圖中結果表明,總能耗隨著任務數量的變化而變化,在絕大多數情況下,SABA-S策略具有更低的能耗表現。由于SABA-S策略采用的是迭代算法,因此在時間開銷上會略遜于其他算法。圖9是制冷能耗的對比結果。PPVMP和PLSC算法并沒有考慮制冷系統(tǒng)的能耗,在虛擬機放置時沒有考慮數據中心氣流組織模型,因此在放置過程中會產生局部熱點,導致制冷系統(tǒng)必須以一個較低的溫度來保證數據中心的穩(wěn)定運行,增加了制冷系統(tǒng)的能耗。
XIntGA算法考慮了制冷的能耗,在虛擬機放置時盡可能將虛擬機平均放置在所有服務器上,降低局部熱點出現的概率,且所有服務器發(fā)熱量較低,因此可以獲得較好的制冷系統(tǒng)能耗。但是,XIntGA沒有考慮服務器對制冷系統(tǒng)的影響,導致部分時刻制冷系統(tǒng)的能耗高于其他算法??梢钥吹剑琒ABA-S策略在制冷方面降低能耗的效果明顯優(yōu)于其他算法。
圖10是服務器能耗的對比結果。與其他算法相比,由于XIntGA算法沒有考慮服務器能耗,并且在任務量不大時仍開啟所有的服務器進行虛擬機放置,因此服務器能耗巨大。從圖10可以看出,XIntGA算法的服務器能耗幾乎時刻都處于峰值狀態(tài)。PPVMP算法由于采用了基于蟻群優(yōu)化的算法來減少服務器能耗,在保障了虛擬機的運行性能的情況下啟動最少的服務器數量來進行虛擬機的放置,因此在降低服務器能耗中獲得了較好效果。SABA-S策略相對其他算法在降低服務器能耗方面仍具有優(yōu)勢。
4 結束語
SABA-S策略創(chuàng)新性地將3個方面的工作結合在一起,實現了數據中心面對突發(fā)負載時的降低虛擬機放置能耗和保障用戶任務服務質量。應對突發(fā)負載,SABA-S將任務拆分重組,延緩一部分任務的執(zhí)行,保障數據中心整體系統(tǒng)的穩(wěn)定性;面對用戶提出的服務質量要求,在保障關鍵任務的服務質量的前提下,分配一定的資源提高了普通任務的服務質量;針對數據中心的能耗問題,利用了SABA-S策略中的能耗算法,即一種基于模擬退火算法的啟發(fā)式算法,綜合考慮了服務器能耗和制冷系統(tǒng)的熱循環(huán),降低了虛擬機放置過程的能耗,并在該算法中添加了服務器數量控制模塊來減少服務器日常運行的能耗。將來,我們考慮利用深度神經網絡來建立數據中心突發(fā)負載的預測模型,以此來預測數據中心突發(fā)負載出現的可能,這將能更好地對數據中心的資源進行管理。