周永福 徐勝超
(1.河源職業(yè)技術學院電子與信息工程學院 河源 517000)(2.廣州華商學院數(shù)據(jù)科學學院 廣州 511300)
容器云多維資源可以實現(xiàn)將整個應用托管的功能,還有利用一鍵部署提升效率的特點,但由于各種多維資源的高速增加,對容器云基礎設施和承載性能提出了更高的要求。如果通過提升容器云規(guī)模,增加資源對業(yè)務服務的承載能力,同時也會提高運營企業(yè)的基礎設施成本與運維費用,并且較大的容器云規(guī)模,會導致部分容器云一直處于空閑狀態(tài),浪費資源,為此需要對容器云資源完成高效的調(diào)度。
當前研究學者們對容器云多維資源的評價和調(diào)度研究取得了一定成果,文獻[1]提出了基于利益相關視角算法的容器云多維資源評價與調(diào)度方法,通過計算存儲資源重要程度,建立多維云資源調(diào)度模型,通過二級調(diào)度可以將信息很好保存下來,不會丟失有效信息。但方法沒有設定調(diào)度閾值,導致利益程度高的任務會一直占用內(nèi)存資源,低等級利益任務長時間等待;文獻[2]提出了用于動態(tài)云計算的新型管理程序,在虛擬機的幫助下,最大程度地利用資源并進行資源調(diào)度。該方法的調(diào)度效率更高,但卻沒有考慮資源局部性,調(diào)度效果差。
針對上述問題,本文提出一種基于空閑率權重的容器云多維資源評價及調(diào)度方法,通過量化CPU與內(nèi)存,獲取評價指標,依靠資源任務運行速度與歷史記錄,對容器云的空閑率進行評價,依靠評價結果對容器云進行從小到大的排列,隨后將多維資源依次儲存在容器云內(nèi),依靠容器云的空閑率權重指標作為調(diào)度依據(jù),使空間利用率達到最高,降低資源損耗,防止有效信息丟失,以此實現(xiàn)對容器云多維資源的評價與調(diào)度[3]。
容器云存在動態(tài)性,會共享同一個資源池的多維資源。容器云性能的整體表現(xiàn)會被很多方面所影響[4~5],針對不同的資源,需要考慮的側重點也各不相同。本文從CPU 與內(nèi)存兩個方面進行量化評價,確定容器云空閑率權重計算指標,其具體流程如下所示。
1)CPU
CPU性能標準分四類:速度、容量、吞吐量與響應時間。吞吐量能夠被表示為單位時間內(nèi)容器云的業(yè)務量,比如每秒能夠存儲的資源總量。響應時間表示容器云的運行速度,例如在儲存時需要聯(lián)機的響應時間與批量運行的時間。容量和速度為同期存在資源的總容量[6],比如處理器顆數(shù)、處理器速度等。
2)內(nèi)存
虛擬網(wǎng)絡下容器云內(nèi)存會考慮兩種因素:第一種即虛擬網(wǎng)絡使用的內(nèi)存量,反映了多維資源在容器云中所有內(nèi)存釋放、內(nèi)存交換狀況;第二種虛擬網(wǎng)絡造成的內(nèi)存開銷,作為預測網(wǎng)絡任務需求量。假如為應用資源分配的容器云內(nèi)存較低,就會導致應用資源反復在磁盤分頁內(nèi)迭代運行,致使處理與儲存性能降低;反之,假如分配了較多的容器云內(nèi)存,導致硬件資源的不足,使容器云利用率產(chǎn)生下滑。在容器云處于峰值運行環(huán)境時,收集內(nèi)存使用信息,可以確保多維資源存儲任務分配到大小適當?shù)目臻g。
本文以空閑率權重作為評價目標,對容器云儲存節(jié)點的特征進行計算,依靠歷史記錄與任務運行速度對下一次多維資源任務的運行速度進行預測評估。在容器云中,節(jié)點當前的負載狀況[7]是能夠被查詢的,在歷史記錄內(nèi)查詢上一次作業(yè)的平均負載,依靠式(1)組建模型預測任務運行速度:
式中,ak表示k次運行速度預測時容器云的實際負載強度,表示序號是m的容器云節(jié)點第k次運行的預測速度,表示序號是m的容器云節(jié)點第k次運行的實際運行速度,單位為MIPS,ρ代表預測運行速度的權重系數(shù)[8],參與運行的所有容器云節(jié)點在完成作業(yè)之后,會記錄節(jié)點作業(yè)狀況[9],記錄內(nèi)存作業(yè)運行速度與容器云負載程度信息。
在對多維資源進行儲存的過程中,搜索適合的容器云儲存節(jié)點,憑借量化指標與節(jié)點運行速度預測模型構建評價模型,其公式:
式中,Em表示容器云節(jié)點評價模型,Nm表示指標與節(jié)點運行速度預測模型,Vm表示序號是m的容器云節(jié)點,ω代表調(diào)節(jié)系數(shù),適應性調(diào)整模型內(nèi)容器云節(jié)點的運算能力、資源儲存任務運行能力,以達到最優(yōu)的運算效果。
在確定容器云所能夠承載的最大多維資源規(guī)模后,以性能量化指標[10~13]當作標準值,評價與規(guī)劃容器云負載所需要的資源需求。依靠負載性能評價結果,挑選空閑率權重較高、配置標準的容器云。
在確保高任務服務質(zhì)量前提下,以容器云的空閑率權重指標作為調(diào)度依據(jù),使空間利用率達到最高,降低資源損耗,避免出現(xiàn)信息因存儲空間不足導致的丟失問題,實現(xiàn)容器云多維資源的均衡調(diào)度。李雅普諾夫優(yōu)化方法是一種成熟的優(yōu)化控制算法,擬定調(diào)度函數(shù)公式為[14~15]
其中,τk代表時間片,為容器內(nèi)某時間段的資源隊列長度,表示第i個容器在時間片內(nèi)處理資源的性能,μi表示為第i個容器云在τk內(nèi)信息存儲能力。
依靠李雅普諾夫優(yōu)化方法獲得目標優(yōu)化函數(shù):
方法一 容器最大負載排序資源調(diào)度
擬定目前時間片達到的多維資源任務負載總量 是λi(τk),隊列長度列表為[Q1(τk),Q2(τk),…,QK(τk)]。
步驟1在列表[Q1(τk),Q2(τk),…,QK(τk)]內(nèi)搜索最大值Qi(τk),那么該容器分配的任務數(shù)量方式就是:
步驟2把步驟1 內(nèi)進行任務分配后的容器從內(nèi)剔除。
步驟3迭代步驟1 與步驟2 直至λ(τk)=0,同時更新容器隊列情況。
方法二 容器最小負載排序資源調(diào)度
擬定目前時間片達到的多維資源任務負載總量 為λi(τk),隊列長度列表[Q1(τk),Q2(τk),…,QK(τk)]。
步驟1在列表[Q1(τk),Q2(τk),…,QK(τk)]內(nèi)搜索非0 的最小值Qi(τk),那么容器分配的資源數(shù)量公式就是:
步驟2把步驟1 內(nèi)已經(jīng)進行分配之后的容器從[Q1(τk),Q2(τk),…,QK(τk)]內(nèi)剔除;
步驟3迭代步驟1 與步驟2,直至λ(τk)=0,同時更新容器隊列狀態(tài)。
上述方法一與二的區(qū)別在于:方法一是在確保容器空閑率權重最低的前提下,憑借最大負載排序資源調(diào)度,以容器云的利用率作為指標,按照從小到大的順序排列調(diào)度,使得負載較大的容器云最先達到最大利用率的上限;方法二是在確保容器空閑率權重最低的前提下,使非空隊列中負載較小的容器云先達到資源利用率上限。這兩種方法都是根據(jù)容器空閑率權重,確保資源利用率最大化的前提下,實現(xiàn)對容器云多維資源的調(diào)度。
為驗證方法調(diào)度性能,在云數(shù)據(jù)中心內(nèi)進行評測,同時使用Java 語言編程,依靠Cloudsim 模擬器模擬多維資源的不同參數(shù),同時將用戶請求數(shù)量維持在[5,400]區(qū)間內(nèi)。Cloudsim 模擬器能夠給出一種全局與可擴展式的實驗框架,方便測試其調(diào)度結果是否精準。Cloudsim模擬器的模擬步驟如下:
步驟1:用時間和用戶數(shù),traceflag 初始化cloudSim;
步驟2:創(chuàng)建數(shù)據(jù)中心Datacenter;
步驟3:創(chuàng)建數(shù)據(jù)中心的Broker;
步驟4:創(chuàng)建虛擬機VM,虛擬機列表被提交到broker;
步驟5:創(chuàng)建微云cloudlet,把微云cloudlet 列表提交到broker,綁定虛擬機VM和微云;
步驟6:開始模擬;
步驟7:停止模擬;
步驟8:輸出結果。
擬定實驗共存在2 個容器云,大小皆為500GB,已經(jīng)運行了一段時間,導致容器云存儲了不同程度文本、圖像、音頻資源,其中容器云1 內(nèi)多為音頻、圖像數(shù)據(jù),并含有大量視頻;容器2 中多為文本信息,另外還有少量的圖像。對比使用所提方法、文獻[1]方法以及文獻[2]方法,獲取容器云內(nèi)多維資源評價結果,綜合評價值計算公式如正文式(2)所示。其中,采用本文方法一評價容器云1 多維資源,采用本文方法二評價容器云2 多維資源,評價結果越高表示容器內(nèi)多維資源占用越大,結果如表1所示。
表1 不同方法下容器云多維資源評價結果
通過表1 評價指標能夠得出,相比本文對比,本文方法評價值和設定的容器資源擬合程度較高,其中容器1 內(nèi)存在大量圖像、音頻以及視頻數(shù)據(jù),CPU 使用程度較高,空閑率較小,資源綜合評價值較高,容器2內(nèi)大量文本信息和少量其他數(shù)據(jù),CPU和空間占用較低,資源綜合評價較低;反觀文獻方法,剩余內(nèi)存、占用CPU 以及綜合評價之間無法一一對應,所以這里能夠證明本文方法評價更為精準。因為本文設計了容器云節(jié)點作業(yè)運行速度預測模型,在一定程度上增加了評價精準性。
為驗證本文方法調(diào)度效果,以表1 中所提方法得出的指標評價值為基礎,記錄3 種方法調(diào)度后的容器云1、2變化剩余內(nèi)存、使用CPU的情況。
通過圖1~3能夠看出,當容器云CPU 處于較高負載時或者低負載時,本文方法都能進行均衡調(diào)度,以容器云空閑權重作為指標,將正在等待的資源存儲序列均衡調(diào)度到空間容器中,避免容器出現(xiàn)負載過重問題,完成資源平衡利用;反觀采用本文對比方法處理后,容器云在仿真時間內(nèi),CPU 和內(nèi)存并沒有明顯變化。本文以容器云的空閑率權重指標作為調(diào)度依據(jù),提高空間利用率,降低資源損耗,避免因存儲空間不足致使信息丟失。
圖1 容器1CPU負載使用率變化情況
圖2 容器2CPU負載使用率變化情況
圖3 不同方法下容器云1、2剩余內(nèi)存變化情況
本文設計了基于空閑率權重的容器云多維資源評價及調(diào)度方法,通過計算容量空閑率權重指標、構建節(jié)點作業(yè)運行速度預測模型以及多維資源綜合評價模型,優(yōu)化多維資源調(diào)度方法,實現(xiàn)對容器云多維資源的評價與調(diào)度,通過實驗得出,該方法對容器云多維資源評價的精準性高、負載均衡強以及調(diào)度速度快,具有較好的應用性能。但本文方法需要針對不同的容器技術對評價與調(diào)度方法進行相應的調(diào)整與優(yōu)化,使算法能夠適應多種調(diào)度環(huán)境。