因爲工做負載分配不均,一些服務器變得過載,而另外一些服務器仍處於欠載狀態。 爲了實現負載平衡,須要從過分使用的節點遷移一些虛擬機。 可是與此不一樣的是,本文提出了一種負載預測算法,該算法將根據系統的當前以及未來的工做量來決定是否遷移。 所以,一旦聲明節點過載,咱們提出的技術就不會當即啓動虛擬機遷移。 咱們的算法已在CloudSim中進行了仿真,並將其性能與現有的基準算法進行了比較。 結果證實,所提出的技術不只使數據中心更節能,並且更有效地平衡了工做量。算法
當前的大多數研究工做[5-12]基於系統的當前利用率。 若是服務器當前過載,則VM遷移將當即啓動[7]。 可是因爲遷移的開銷,沒必要要的VM遷移可能會致使違反SLA。 結果,每次VM遷移都會增長運營成本。 所以,問題在於肯定什麼時候應開始遷移,以使與SLA違規和額外能耗有關的成本降至最低。 爲此,提出了一種基於時間序列的負載預測方法,該方法決定了VM遷移的決策。 當主機的利用率水平超過動態上限時,該主機將被聲明爲過分利用。 若是服務器如今過載,而且下一個預測的負載也大於動態上限,則將進行遷移。 負載預測模型使咱們的算法可以成功減小VM遷移的數量,並經過提供綠色IT解決方案來節省能源。服務器
動態比較和平衡算法(DCABA)算法使用了兩個雲優化概念。 首先是在物理機器級別上優化雲系統,其次是根據用戶應用程序的行爲使用自適應閾值對其進行優化[13]。當節點的負載大於預約義的上閾值時,該節點被視爲過分使用。 所以,算法會將此主機的額外負載轉移到另外一臺主機。 這是經過自適應比較和平衡負載平衡方法執行的。 在這裏,選擇另外一臺主機的機率爲p [k],該主機具備能夠接受此負載而不會變得過載的最小虛擬機。當主機負載低於預約義的下限閾值時,則聲明爲負載不足。 所以,應用服務器整合算法將該主機的負載轉移到另外一臺計算機,而且關閉源計算機以節省能源並下降雲的運營成本。 放置遷移後的VM的目標主機不得過載。 與DCABA不一樣,咱們提出的算法基於動態上限閾值工具
在[14]中,做者已經經過使用負載預測模型準確地預測了應用程序的將來資源使用狀況。 可是他們僅在動態虛擬機整合中使用了此方法。 若是未充分利用的服務器的預計負載很高,則將不會進行VM遷移。 它減小了VM遷移的數量和過載節點的數量。 與[14]不一樣,咱們使用負載預測模型來肯定是否從過載節點遷移。性能
Khanna等。 [15]監視物理機和虛擬機的資源(CPU和內存)。 他們提出了固定閾值的想法,這將限制資源的最大利用。 若是資源超過預約義的閾值,而且有可能違反SLA,則系統會將VM遷移到另外一臺物理計算機。 與此不一樣,咱們提出的方法使用動態閾值和負載預測模型的概念來決定遷移。測試
在[8]安東等。 已經提出了用於將虛擬機節能映射到合適的物理機的算法。 做者認爲,保持工做閾值不變是不明智的決定,由於工做負荷在不斷變化。 在[7]中,做者提出了IQR(四分位間距),MAD(中值絕對誤差)和LR(局部迴歸)方法來動態地找到主機的自適應上限閾值。 在雲環境中,動態閾值的概念遠遠優於靜態閾值。 可是,在啓動遷移時,做者只專一於當前負載,所以有時因爲負載的瞬時峯值會發生沒必要要的遷移,在咱們建議的工做中,考慮服務器的當前以及將來負載能夠將這種遷移降至最低。 咱們已使用基於時間序列的預測技術來根據過去的數據計算服務器的將來利用率。優化
在[16]中,做者提出了一個名爲Sandpiper的系統,該系統能夠自動進行熱點檢測並肯定虛擬到物理資源的新映射,並在虛擬化數據中心內啓動必要的遷移。爲了確保一個小的臨時峯值不會引起沒必要要的遷移,若是持續時間內超過閾值,則會發出熱點信號。僅當n個最近的觀測值中至少k個且下一個預測值超過閾值時才發生遷移。做者考慮的閾值是靜態的。做者在這裏使用自動迴歸方法來計算下一個預測值。檢測到熱點後,將遷移其卷體積比(VSR)最大的VM。當系統的總體負載很高時,移動具備最高VSR的VM是不可行的。所以,爲減小熱點,虛擬機被交換了。可是,此過程在高峯時段沒法高效運行,由於交換虛擬機沒必要要地增長了遷移開銷。與[16]不一樣,咱們在提出的方法中提出了動態閾值。簡單指數技術和雙指數技術用於預測系統的將來負載.3d
諾曼(Norman)等人。 在[18]中,已經開發了一種用於將VM動態分配給物理服務器的管理算法。 該算法包括三個步驟:i)測量歷史數據,ii)預測將來需求,而且iii)將VM從新映射到PM,所以被稱爲Measure-Forecast-Remap(MFR)。 結合了裝箱啓發式和基於時間序列的預測技術,以減小支持工做負載所需的物理機數量。 在該算法中,使用預測方法找到單個VM的資源需求。 根據預測值,VM以非遞增順序排列。 而後,使用首選擬合試探法遷移VM。 咱們提出的算法使用預測的負載來從過分使用的節點中進行遷移決策。orm
咱們提出的方法將根據使用時間序列預測技術預測的當前和未來負載來決定是否確實須要遷移VM。 時間序列是一系列數據點,由一個時間段[17]上的連續測量組成。 藉助時間序列預測模型,能夠基於歷史數據預測將來值。 指數平滑技術是一種特殊類型的加權移動平均值方法,已應用於時間序列數據.在移動平均線中,全部過去的數據都具備同等的重要性。 可是有時最好優先考慮最近的觀察結果.這是經過對數據分配不一樣的權重來實現的,它是加權移動平均法,所以,與舊觀測值相比,最新觀測值對預測值的影響更大。 如下公式顯示了指數平滑技術的最簡單形式:
blog
在咱們提出的方法{x1,x2«[t-1}中,該集合包含在持續時間t的過去時間間隔內物理主機的總CPU利用率歷史記錄。 它其實是該主機上運行的全部活動VM的CPU利用率的總和。 {s1,s2……st-1}是相應的CPU利用率預測值。 使用如下公式從這組值中計算出MSE(均方偏差):
ip
當數據遵循某種趨勢時,簡單的指數平滑將沒法產生最佳結果[19]。 爲了處理這種狀況,使用了「雙指數平滑」或「二階指數平滑」方法。 「 Holt-Winters雙指數平滑」就是這樣一種技術。 它的工做原理幾乎與簡單平滑相似,不一樣的是每一個階段都必須更新兩個組件-水平和趨勢[19]。 級別給出了數據值的平滑估計,趨勢是每一個週期結束時平均增加的平滑估計。 使用的公式是:
其中γ 是趨勢平滑因子,0 <γ <1 而且α與以前相同。 {st}和{xt}與簡單的平滑技術相同。 {bt}是在時間t處趨勢的最佳估計。 該算法的輸出即Ft + m,即在時間t + m,m> 0時x的估計值是:
存在幾種方法來選擇St和bt的初始值。 一般,s1設置爲x1。 b1的三個可能值是:
咱們提出的算法不直接使用預測值。 而是用來決定遷移的關鍵決定。 所以,咱們算法的效率並不直接取決於預測的準確性,而是取決於有關遷移的決策的準確性。
VM遷移問題可分爲三個部分:I)什麼時候遷移II)遷移哪一個VM以及III)遷移到哪裏[26]。 咱們提出的方法處理遷移的第一個問題。
上述算法將主機做爲輸入,並給出遷移決定(第1行)。該決定基於動態上限閾值策略。在此策略中,若是主機的利用率高於上限,則將其聲明爲過分使用。中位數絕對誤差(MAD)技術用於查找上限閾值(第5行),如[7]中所述。閾值隨着工做量的變化而動態變化。提議的方法首先將當前的CPU利用率(在第3行中計算)與上限閾值進行比較,相似於傳統方法(第6行)。若是主機沒有被過分利用,那麼遷移將不會發生,而且現有流程不會發生任何變化。可是,若是主機被聲明爲過載,而且咱們至少有10箇舊的CPU利用率數據,則與傳統流程不一樣,將來的CPU利用率是使用基於時間序列的預測模型(第9行)來計算的。簡單和雙指數平滑技術(SES和DES)。爲了正確地預測將來價值,必須將足夠的過去數據傳遞給預測技術。在這裏,咱們採用了經過實驗找到的最小數據長度10。在[7]中,做者使用最小數據長度做爲12來計算MAD。在咱們的實驗中,咱們發現該算法在數據長度爲10的狀況下效果很好。他們使用數據長度爲10的數據經過局部迴歸方法預測了將來的負荷。若是預測的CPU使用率高於上限(第10行),則主機將包括在過分使用的節點列表中(第11行),而且將進行遷移。不然,將不會發生遷移,由於預計在不久的未來主機將不會保持過載。所以,能夠在短期內以違反SLA的代價減小遷移數量。
本節將分析咱們提出的算法的性能。 在像雲這樣的高度動態的環境中,很難以可重複和可靠的方式進行實驗。 這就是爲何咱們選擇Cloudsim仿真工具[20]來測試咱們的算法,而後再將它們部署到真實的雲中。
咱們的算法使用了[7]中提出的動態上限閾值的概念。 所以,爲了比較它們的性能,此處使用了[7]的實驗設置。
使用Bitbrains工做負載跟蹤[21]進行了實驗。 所使用的數據來自表明業務關鍵型企業應用程序的Bitbrains託管中心的500個VM的CPU使用率。 每隔5分鐘測量一次數據。 詳細的工做負載特徵在[21]中。
爲了將咱們提出的算法與現有算法的性能進行比較,咱們選擇了四個參數:物理資源的總能耗,發生的VM遷移的總數,過分使用的節點的總數以及SLA違規百分比,這些百分比描述了分配的次數 資源少於所需的資源。
咱們已經將咱們提出的方法的性能與文獻[7]中提出的算法之一進行了比較。 此方法使用中位數絕對誤差(MAD)技術來找到動態上限閾值。 與咱們的方法相反,它在主機被聲明爲過載時當即啓動遷移。 該算法已在Cloudsim中實現。 咱們使用兩種預測方法來模擬咱們的算法。 簡單指數平滑技術(SES)和雙指數平滑技術(DES)。
圖1比較了上述三種技術的能耗(單位:千瓦)。 表1顯示,能源消耗隨着遷移數量的減小而減小。 減小幅度從18.36%到23.39%。 圖2比較了生成的過分利用節點的總數。 SES顯示最小減小量爲46.03%,而DES最大減小量爲48.47%。 過載節點數量的減小證實了咱們的基於預測的算法成功解決了負載平衡問題。 圖3顯示VM遷移數量最多減小了28.00%。 因爲咱們根據當前以及未來的負載來決定遷移,所以根據預測算法的準確性,能夠將因CPU利用率的瞬時提升而產生的遷移最小化。 反過來,它將減小遷移的總數。
過分的遷移會下降系統的總體性能。 所以,遷移的數量應知足服務質量(QoS)要求,同時遷移開銷要少。 SES可以產生最佳的遷移數量,從而將平均違反SLA的狀況下降2.19%。 可是DES將違反SLA的百分比提升了4.86%。 所以,要在能耗和性能之間進行權衡。
從以上討論能夠得出結論,咱們提出的方法比採起當即遷移決策的方法性能更好。 咱們已經成功下降了能耗,可是在性能方面還有必定的改進空間。 從環境的角度來看,所提出的算法是更好的,由於最小的能源消耗將減小冷卻系統的成本和二氧化碳的排放。 根據服務質量要求,提供商能夠選擇任何算法。