?

大數據平臺下容器資源調度的優化算法研究*

2023-07-03 08:51劉翔李海榮
內蒙古科技大學學報 2023年1期
關鍵詞:容器集群調度

劉翔,李海榮

(1.內蒙古科技大學 信息工程學院,內蒙古 包頭 014010;2.內蒙古科技大學 工程訓練中心,內蒙古 包頭 014010)

隨著第3次以原子能、電子計算機、空間技術和生物工程的發明和應用為主要標志,涉及信息技術、新能源技術、新材料技術、生物技術、空間技術和海洋技術等諸多領域的一場信息控制技術革命浪潮的興起,人類迎來了信息化時代[1].據IDC研究報告指出,在2021年全世界數據資料的存儲大小已達到1.2 ZB,各行各業越來越趨向于數字化.

在過去十幾年的數字化浪潮中,大數據技術[2]已經經歷了幾次更新升級.從專注存儲的數據庫,到面向統計分析的數據倉庫,再到面向大數據分析應用場景的Hadoop/Spark為核心的大數據平臺,都在不斷地提升數據分析利用能力.當然,隨著大數據平臺的發展,一系列圍繞著大數據平臺而產生的問題也越來越多.如:應用OpenStack構建實驗平臺,其搭建和維護過程復雜[3];使用VMWare構建大數據實驗平臺,其價格昂貴[4];針對目前的Docker Swarm內置的調度策略無法很好地實現Docker集群的負載均衡,提出動態加權調度算法,其不能滿足大數據實驗平臺下的資源調度.現可從2個方面來改進現有的大數據實驗平臺[5].

③Jack L.Walker,“The diffusion of innovations among the American States”,The American Political Science Review,1969,63(3),pp.880 ~899;Shipan,Charles R.,Craig Volden,“Policy diffusion:seven lessons for scholars and practitioners”,Public Administration Review,2012,72(6),pp.788 ~796.

一方面,針對大數據平臺部署時不僅硬件設備昂貴,而且相關工具及系統體系龐大,部署過程復雜.在此提出一種基于Docker[6]容器虛擬化技術的一鍵式部署集群.

另一方面,針對Docker Swarm[7]原生3種調度算法Random, Spread, Binpack并不能滿足大數據平臺下的調度策略,在此提出了一種基于用戶的動態更新集群節點信息的資源調度策略.

1 模型構建

1.1 問題描述

現有的Docker Swarm集群只考慮了CPU和內存2個維度,這樣勢必會造成資源利用的不合理.且它將每個容器的資源分配看作是獨立的事件.但實際情況下,容器之間的關系并非如此.這樣會造成同一集群間容器響應速度慢.針對以上問題,提出一種面向用戶容器管理,從CPU、內存、磁盤I/O、網絡I/O 4個維度考慮,在保證系統負載均衡[8]的前提下,最終使同一用戶下的容器部署在同一個物理節點上.

式中:w為回歸系數;b為常數項;ε為隨機誤差項.通過式(6)得到第i個節點的一元線性回歸模型式(7):

表1 符號與說明

(1)

1.2 目標函數

為使大數據實驗平臺在負載均衡的情況下可以保證每個用戶的集群環境保持高效快速的響應速度,需要全面考慮容器及物理節點4個維度的狀態,實時監控整個大數據實驗平臺的負載率,最終使其保持在最小值.由上一節定義可知,第i個物理節點的負載率ALoadRate,i可以由4個維度的加權表示如式(2)所示,系統負載率ALoadArg如式(3)所示:

(2)

(3)

首先,通過動態更新集群節點信息算法得到預測模型的回歸方程,再以式(2)為目標函數,通過RSFU算法找到使其最小值的物理節點i.

2 基于容器的動態更新集群節點信息算法

2.1 算法思想

通過4個維度來考慮1個服務的容器資源,分別是CPU、內存、磁盤I/O、網絡I/O,每個節點通過Sigar[9]所提供的API接口實時獲取系統信息,并通過式(2)得到每個節點的實時負載率.再通過Docker Engine API[9]獲取每個節點上的容器數量.將容器數量作為自變量,負載率作為因變量進行記錄.由單個節點負載率求得整個系統的負載率.

在系統負載率小于等于50%時,分為2種情況:第1種情況:所有節點負載率小于50%,此時在資源分配時直接選擇負載率最低的節點.第2種情況:一部分節點負載率大于50%,一部分節點負載率小于50%,且負載率小于50%的節點更多.此時負載率大于50%的節點以記錄的數據為樣本值,采用一元線性回歸分析[10,11]方法進行模擬,建立數學模型,求出回歸參數,并得到一元線性函數.負載率小于50%的節點會在資源分配時被優先選擇.

2)綜合土地利用動態度,表示某一研究樣區土地利用的整體動態[10],其值越大,說明區域土地利用變化越劇烈,反之變化越弱。圖2為巢湖流域綜合土地利用動態變化圖。

在系統負載率大于50%時,也分為2種情況:第1種情況:一部分節點負載率大于50%,一部分節點負載率小于50%,且負載率大于50%的節點更多.此時會對超過負載率50%的節點進行一元線性回歸建模,求出一元線性函數.對不超過負載率50%的節點在資源分配時會被優先選擇.第2種情況:所有節點負載率大于50%,此時每個節點都已經完成了一元線性回歸分析,并得到了一元線性回歸函數.在進行資源調度的時候,基于回歸方程將容器數量作為自變量輸入,預測出所需負載率.篩選出滿足條件的節點,在負載率不大于90%的情況下,選取負載率最小的節點.算法流程圖如圖1所示.

按照新課標要求,小學1-2年級語文每周安排8課時;3-4年級語文每周安排7課時;5-6年級語文每周安排6課時。但通過調研,我發現,農村學校對考試學科普遍重視,語文、數學、英語、科學等主要學科全部超課時。因為每周總課時固定,所以,非考試科目在一定程度上受到擠壓。按照課標規定小學音樂每周都是2課時,實際開課1課時。

未來,相信“嘉電”會繼續秉承以消費者為中心、洞察消費體驗的宗旨,繼續為廣大消費者甄選出最優質的家電產品,同時,還能為家電企業的產品轉型升級提供指引方向,并在規范行業發展的同時,不斷推動整體家電行業向著高質量、高水平、高規格的方向前進!

圖1 基于容器動態更新集群節點信息算法流程圖

圖2 基于用戶的資源調度策略流程圖

2.2 動態更新集群節點信息設計與實現

根據式(2)定義,當ALoadRate,i>50%的時候,返回1,反之當ALoadRate,i≤50%的時候,返回-1.得到字典函數f(ALoadRate,i),用式(4)描述為:

(4)

當f(ALoadRate,i)=-1時,此時節點會將容器數量和負載率一一映射并更新節點信息,為以后節點的模型建立提供樣本集.得到映射函數fi,用式(5)描述為:

fi∶Num,i→ALoadRate,i.

(5)

當f(ALoadRate,i)=1時,此時就需要考慮每個節點是否還有充足的資源來分配給容器.采用一元線性回歸模型的方法來進行節點資源的預測.此模型有實用性強,預測結果精確和使用方法簡便的優點,可以很好地適應大數據平臺的輕量級與時效性.具體操作如下:

Tss=Rss+Ess.

步驟2:建立模型.一元線性回歸模型表示為式(6):

由于文言文在語言形式上的阻隔,如今的學生對古籍文獻有一種天然的抵觸心理。教師必須帶著耐心和技巧來手把手教學生熟悉如何深度閱讀這些具有重要學術價值而又不易理解的服飾文獻,從而賦予學生的“學術性學習”以堅實的學術基礎。為了營造課堂氣氛,筆者在課堂上談了明代《舌華錄》記載的姚廣孝和王賓的對話。姚廣孝看到王賓住在西山里不出來就好奇地問:“寂寂空山,何堪久住”。王賓答復:“多情花鳥,不肯放人”。筆者向學生解釋,文言文古籍資料就像這西山,剛開始接觸時你會覺得“何堪久住”,但如果耐心專研,就會領悟其中的妙處,因其中的“多情花鳥”而不想離開。

y=wx+b+ε.

(6)

資源調度問題可以描述為:設大數據實驗平臺有n個節點,每個節點由一個五維的向量組成,則第i個節點可以表示為Li=(Pi,Mi,Oi,Ni,Num,i),引入權重Wi=(Wp,i,Wm,i,Wo,i,Wn,i,0),且權重之和等于1.上述各參數名稱及其含義匯總如表1所示.第i個容器可以表示為Ci.假設第Uj個用戶創建了m個容器,則最終的資源調度QRS可以表示為用戶Uj將m個容器映射到Lk上,如式(1)所示:

yi=wxi+b+ε.

式(16)中:Ess為殘差平方和.

(7)

(8)

(9)

R2是回歸平方和Rss與總平方和Tss的比值,用式(16)描述為:

(10)

(11)

(12)

(13)

再讓其等于0,即可求出w,b的值.如下式所示:

(14)

(15)

步驟4:模型評估.從2個維度來評估模型的好壞,分別是判定系數R2評估和相關系數r評估.

步驟3:確定回歸參數.此時有2種方案可選,第1種是解析法,使用最小二乘法[12]估計.第2種是梯度下降[13]的方法進行估計.鑒于所設計的大數據平臺樣本量較小、樣本屬性單一,選擇第1種解決方案,即使用最小二乘法估計回歸參數.由步驟2可知,此模型的損失函數/代價函數SLoss用式(10)表示為:

R2=Rss/Tss=1-Ess/Tss.

王祥見老道所言非虛,一時間有些害怕,急忙問道:“要是真的如道長所言,該如何消弭此劫呢?”他也是看了不少古裝劇,臨時拼湊起的臺詞和老道士倒是很搭調。

(16)

2010年3月,肇慶市城建投資開發集團有限公司(以下簡稱“城投公司”)成立,城投公司是肇慶市國資委屬下的全資國有企業,是根據市委、市政府對市屬國有經濟階段性整合的工作部署,以市房地產開發總公司為主體,將市屬房地產、建設、建筑等十多家國有企業的優質資產整合而成,是一家集城市建設、土地綜合開發、市直保障性住房建設等職能為一體的國有投融資平臺和建設載體。城投公司成立后,當年才48歲的鄧強(正處級),順利當上了集團董事長、黨委書記,可謂是春風得意,前途無限。

(17)

(18)

(19)

(20)

r是R2的算術平方根,符號與自變量x的系數w一致.得到函數f(w),用式(22)描述為:

對于一些重點稅源企業的納稅評估案件往往涉及幾個管理片區甚至多個省、市,跨區域稅務核查協作制度一直是征管工作的難題。納稅評估對于稅源管理的作用日益凸顯,在核查大型企業集團、重點聯系企業以及建安房地產企業異地項目涉稅問題上,跨區域協作問題變得更為突出??鐓^域協作制度完善應包括涉稅信息的交換,評估文書開具的主體,以及評估稅款后續由誰來追繳等細節性問題,對跨區域協作起到規范化指導作用。

(21)

(22)

Policeman:Why didn't you shout for help when youwere robbed ofyourwatch?

步驟5:將預測模型所得到的回歸方程與其所對應的節點綁定,并更新集群信息.

3 RSFU

3.1 資源調度思想

基于Docker的大數據平臺的本質是給用戶提供一個集環境、分析、結果于一體的實驗平臺.但每個用戶所創建容器的數量是不確定的.平臺本身并不能提前知道每個用戶會創建幾個容器.如何基于用戶所要創建容器的多少來進行資源的調度呢?大數據平臺常見的集群環境[14]包括Hadoop, Yarn, HBase, Hive, Storm, Spark等.一般地,小于20個節點的集群屬于小規模集群,20到200個節點的集群屬于中等規模集群,大于200個節點的屬于大規模集群.針對這一規律,以50個節點作為基準.當1個用戶所創建的容器不超過50時,盡可能保證所創建的容器在一個節點;當一個用戶所創建的容器超過50時,按照每50為分割點,一個分割點分配一個節點.這樣就可以基于用戶來進行資源的調度,并應用動態更新集群節點算法來保證負載均衡,這樣會較大程度地提高同一用戶的集群內容器之間網絡數據交換的效率.

其中J=3, γs為球坐標空間球面RT不穩定性線性增長率, 函數,θ,t)和φj(r,φ,θ,t)分別為j階擾動界面和j階流體擾動速度勢函數. 速度勢函數φ(r,φ,θ,t)滿足Laplace方程(1)以及邊界條件▽φ|r→+∞=0. 按照初始條件, s1,1,1=-1和s0,0,0=r0. 在Fourier諧波擾動幅值中的相合系數sj,n,m(j,n,m=1, 2, 3)和γs為關注的待求量.

3)數據融合:考慮到系統數據融合的需求,簇頭擔負節點信息收集與數據融合的任務,從而提高網絡的檢測精度。

3.2 資源調度設計與實現

用戶通過Web界面輸入創建容器數量,當用戶輸入n≥50時,返回1,當用戶輸入n<50時,返回[n/50].得到函數k(n),用公式(23)表示:

(23)

得到k,然后基于動態更新集群節點算法,根據得到的k值,來進行k次的節點分配.首先當有滿足k個節點負載率不大于50%時,直接返回k個節點.當只有l(l∈[0,k])個節點負載率不大于50%時,余下的k-l個節點將通過每個節點綁定的一元線性回歸方程確定.先確定容器數量50,輸入回歸方程得到將要增加的負載率.然后計算出預測后節點負載率是否超過90%,如果超過90%就舍棄,通過排序返回前k-l個節點信息.經過上述操作得到的結果就是最優的資源調度策略.

4 配置信息表

實驗采用Cloudsim4.0仿真平臺進行實驗,相關配置和指定范圍如表2、3所示:

表2 符號與說明

表3 指定范圍表

且采用系統負載率作為評價指標,計算公式為公式(3).分別與Docker Swarm 3種調度算法進行實驗測試,實驗結果如表4所示:

表4 各集群系統負載率

在容器集群規模4 032,2 754,1 500下,Binpack算法得到的系統負載率分別為0.98,0.65,0.53;Random算法得到的系統負載率分別為0.88,0.59,0.45;Spread算法得到的系統負載率分別為0.65,0.52,0.33;RSFU算法得到的系統負載率分別為0.61,0.42,0.21.對比實驗數據可知,RSFU算法在不同的集群規模下,大數據平臺容器資源調度性能皆優于Docker Swarm原生3種算法,且隨著集群規模的變化,算法表現出較強的魯棒性.

隨機選取其中5個節點,RSFU算法部署下容器分布情況如表5所示:

表5 RSFU算法下容器分布情況表

從上表可知,當容器為4 032個時,每個節點分布的容器數量都是9的倍數;當容器為2 754個時,每個節點分布的容器數量都是6的倍數;當容器為1 500個時,每個節點分布的容器數量都是3的倍數.不難看出,RSFU算法表現出良好的特性,即將同一用戶下同一集群部署到同一臺物理主機上,很好地解決了Docker Swarm 3種算法不能考慮到容器之間的依賴性而隨機部署容器的弊端.

很快,我發現雪花飄的擔心是多余的。沒等李獻武走出牢門,田青青就邁進了北京大學的校門。作為有重要貢獻的青年干部,她被組織上推薦為大學的工農兵學員。這是組織上對忠誠的戰士最好的呵護與鼓勵,我望塵莫及。田青青臨走前來與我話別,說,你要努力啊,爭取早日在城里與我會合。我說,順其自然吧。

現階段大數據實驗平臺更多的使用的是Kubernetes進行容器的管理.相較于Docker Swarm原生的解決方案,因為資源調度策略單一而不能滿足特定場景下的調度策略.現提出的RSFU算法在大數據實驗平臺的特定場景下.很好地解決了面向用戶的資源調度策略.其部署方便,與Docker容器契合度更高、學習成本更低、且實驗結果較好,能夠在這一場景下提供一種不同于以往的解決方案.

5 結論

已有研究表明,對Docker Swarm集群管理引擎深入研究發現,其原生的3種算法考慮維度不足,特定情況下調度效果不好.基于此,提出優化算法,采用一元線性回歸模型,使用各物理節點實時數據,對物理節點未來情況進行預測.通過CPU利用率、內存利用率、磁盤I/O占用率、網絡I/O占用率4個維度對容器進行優化調度.最后以系統負載率作為評價指標.實驗證明,在容器集群規模4 032, 2 754,1 500下,RSFU算法分別得到系統負載率0.61,0.42,0.21的結果,皆優于Docker Swarm原生算法,表現出較強的魯棒性.且在容器依賴性上,摒棄了隨機部署容器的弊端,從用戶的角度出發,將同一用戶下的容器部署在同一節點上.既能保證系統負載率最小,又考慮了容器之間的依賴性.

猜你喜歡
容器集群調度
Different Containers不同的容器
《調度集中系統(CTC)/列車調度指揮系統(TDCS)維護手冊》正式出版
難以置信的事情
一種基于負載均衡的Kubernetes調度改進算法
海上小型無人機集群的反制裝備需求與應對之策研究
虛擬機實時遷移調度算法
一種無人機集群發射回收裝置的控制系統設計
Python與Spark集群在收費數據分析中的應用
勤快又呆萌的集群機器人
取米
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合