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

表1 不同方法下容器云多維資源評價結果
通過表1 評價指標能夠得出,相比本文對比,本文方法評價值和設定的容器資源擬合程度較高,其中容器1 內存在大量圖像、音頻以及視頻數據,CPU 使用程度較高,空閑率較小,資源綜合評價值較高,容器2內大量文本信息和少量其他數據,CPU和空間占用較低,資源綜合評價較低;反觀文獻方法,剩余內存、占用CPU 以及綜合評價之間無法一一對應,所以這里能夠證明本文方法評價更為精準。因為本文設計了容器云節點作業運行速度預測模型,在一定程度上增加了評價精準性。
為驗證本文方法調度效果,以表1 中所提方法得出的指標評價值為基礎,記錄3 種方法調度后的容器云1、2變化剩余內存、使用CPU的情況。
通過圖1~3能夠看出,當容器云CPU 處于較高負載時或者低負載時,本文方法都能進行均衡調度,以容器云空閑權重作為指標,將正在等待的資源存儲序列均衡調度到空間容器中,避免容器出現負載過重問題,完成資源平衡利用;反觀采用本文對比方法處理后,容器云在仿真時間內,CPU 和內存并沒有明顯變化。本文以容器云的空閑率權重指標作為調度依據,提高空間利用率,降低資源損耗,避免因存儲空間不足致使信息丟失。

圖1 容器1CPU負載使用率變化情況

圖2 容器2CPU負載使用率變化情況

圖3 不同方法下容器云1、2剩余內存變化情況
本文設計了基于空閑率權重的容器云多維資源評價及調度方法,通過計算容量空閑率權重指標、構建節點作業運行速度預測模型以及多維資源綜合評價模型,優化多維資源調度方法,實現對容器云多維資源的評價與調度,通過實驗得出,該方法對容器云多維資源評價的精準性高、負載均衡強以及調度速度快,具有較好的應用性能。但本文方法需要針對不同的容器技術對評價與調度方法進行相應的調整與優化,使算法能夠適應多種調度環境。