国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

面向動(dòng)態(tài)負(fù)載的集群容器部署方法

2021-07-02 08:54龍玲莉錢柱中
計(jì)算機(jī)應(yīng)用 2021年6期
關(guān)鍵詞:需求量容器動(dòng)態(tài)

尹 飛,龍玲莉,孔 崢,邵 涵,李 鑫,錢柱中

(1.江蘇方天電力技術(shù)有限公司,南京 211102;2.南京大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系,南京 210023;3.南京航空航天大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,南京 211106)

(?通信作者電子郵箱lics@nuaa.edu.cn)

0 引言

數(shù)據(jù)中心與集群以云計(jì)算的形式,根據(jù)用戶動(dòng)態(tài)的資源需求變化,“按需式”地為其提供可配置的資源獲取服務(wù),以實(shí)現(xiàn)索取資源的彈性伸縮,涵蓋了傳統(tǒng)的基礎(chǔ)設(shè)施即服務(wù)(Infrastructure as a Service,IaaS)[1]、平臺(tái)即服務(wù)(Platform as a Service,PaaS)[2]與新興的無服務(wù)計(jì)算[3]等。這些服務(wù)模型的支撐在于基于容器化[4]的資源管理技術(shù),以容器為上層應(yīng)用提供相互隔離的計(jì)算資源。

為了應(yīng)對大規(guī)模用戶的訪問請求,同種應(yīng)用功能的多個(gè)運(yùn)行實(shí)例往往被各自獨(dú)立地部署于預(yù)先創(chuàng)建的容器之中[5]。繼而,為了提升宿主機(jī)(承載容器的物理機(jī))資源利用率,同時(shí)降低多個(gè)容器實(shí)例間的通信開銷,容器會(huì)被整合到少量宿主機(jī)之上[6-7]。這樣“緊致”的部署,能夠在滿足應(yīng)用服務(wù)的同時(shí),極大提升集群的資源利用率。

不僅如此,在運(yùn)行過程中,應(yīng)用的負(fù)載往往是動(dòng)態(tài)變化的,文獻(xiàn)[8-10]表明集群內(nèi)各類應(yīng)用的請求訪問量在時(shí)間上的分布不均,如:淘寶在“雙十一”期間的訪問量會(huì)劇增;假期時(shí)社交網(wǎng)站的照片分享量會(huì)極大超出平時(shí)的均值水平;新聞事件也會(huì)使得應(yīng)用的瀏覽量產(chǎn)生大幅度的波動(dòng)。為此,集群更需要根據(jù)應(yīng)用的負(fù)載變化,動(dòng)態(tài)調(diào)整容器的資源配置,以滿足應(yīng)用業(yè)務(wù)的服務(wù)質(zhì)量。

然而,為了整合宿主機(jī)資源[11-15],現(xiàn)有的工作主要從按需式、被動(dòng)式[16-18]的容器遷移入手。一方面,已有工作探討了在宿主機(jī)上進(jìn)行共享資源使用過程中,容器之間產(chǎn)生的資源干擾[9,19];另一方面,一些研究在結(jié)合了共享資源使用特點(diǎn)[8,20]的基礎(chǔ)上,進(jìn)行容器整合的策略制定,提升宿主機(jī)的資源利用率。雖然也有工作通過預(yù)測及刻畫應(yīng)用各異的資源需求[21-22],幫助容器進(jìn)行更好的整合,但這些工作均帶有較強(qiáng)的輸入分布假設(shè)。

即使現(xiàn)有的容器化技術(shù)已經(jīng)能較好地支持“應(yīng)對式”的資源彈性伸縮和配置,但是對于動(dòng)態(tài)負(fù)載來說,在線化的配置需求增加了作出合理容器部署的難度。一個(gè)簡單的例子是,短期內(nèi)“近乎完美”的容器整合可能造成未來更多容器熱遷移。也就是,當(dāng)容器負(fù)載過高而宿主機(jī)沒有空閑資源進(jìn)行拓展時(shí),容器不得不采取熱遷移的方式,將實(shí)例轉(zhuǎn)移至其他空閑服務(wù)器。隨之而來,熱遷移不僅消耗大量計(jì)算與網(wǎng)絡(luò)資源[23],也會(huì)增加應(yīng)用響應(yīng)時(shí)間,對服務(wù)質(zhì)量產(chǎn)生較大的影響。

結(jié)合針對集群負(fù)載的長期觀察,容器的資源需求往往是此消彼長。如果能將這些此消彼長的容器整合在一臺(tái)宿主機(jī)上,那么容器將會(huì)以較小的概率同時(shí)具有資源擴(kuò)展需求。因此,只需為每一臺(tái)宿主機(jī)預(yù)留少量資源,即可避免后續(xù)大部分的容器熱遷移。然而,如何將合適的容器整合宿主機(jī)上,并確定合適的資源預(yù)留量是關(guān)鍵,其直接影響了宿主機(jī)的資源利用率與容器的服務(wù)質(zhì)量。

雖然容器的資源需求量在不斷變化,但是在彈性資源伸縮的時(shí)候,其申請?jiān)黾踊蚴轻尫诺馁Y源量往往具有最小的變化單位,如一個(gè)CPU 核、1 GB 內(nèi)存等。相較于傳統(tǒng)“非忙即閑”的資源模型,有限的資源使用狀態(tài)及其間的變化關(guān)系更能作為細(xì)粒度描述容器資源動(dòng)態(tài)變化的依據(jù)。例如,聊天應(yīng)用包含有文字、語音等多種媒介,以至于信息傳輸負(fù)載的呈現(xiàn)也僅在這幾個(gè)狀態(tài)間切換。

為此,本文首先以細(xì)粒度的方式刻畫容器的動(dòng)態(tài)資源變化,即用馬爾可夫鏈中的狀態(tài)和狀態(tài)間的轉(zhuǎn)移,對應(yīng)建模容器可能的資源需求量和不同資源需求量之間的切換。圖1 展示了一個(gè)具有3 種資源需求狀態(tài)的容器示例。然后,本文在基于資源預(yù)留的基礎(chǔ)上提出面向動(dòng)態(tài)負(fù)載的容器部署問題,以在限定動(dòng)態(tài)遷移概率的約束下,最小化宿主機(jī)的使用數(shù)量。本文提出了面向動(dòng)態(tài)負(fù)載的容器部署策略,并通過估計(jì)容器資源需求,提高部署效率。大規(guī)模基于國產(chǎn)軟硬件的實(shí)驗(yàn)結(jié)果表明,所提出的部署策略能在提高宿主機(jī)資源利用率和減少容器動(dòng)態(tài)遷移次數(shù)間取得平衡,在長效時(shí)間上以至多26 臺(tái)宿主機(jī)的增加換取至多7次容器遷移。

圖1 容器隨時(shí)間變化的資源需求Fig.1 Resource demand of dockers varying with time

本文的主要工作有:1)用馬爾可夫鏈建模容器的多狀態(tài)資源需求變化;2)提出面向多狀態(tài)負(fù)載的容器部署策略,利用資源需求量的估計(jì)值提高部署效率;3)進(jìn)行大量實(shí)驗(yàn),通過與其他部署策略比較,評估本文所提出的部署策略的性能。

1 相關(guān)工作

1.1 虛擬機(jī)/容器負(fù)載刻畫

動(dòng)態(tài)負(fù)載的變化是虛擬機(jī)/容器部署過程不可忽視的特征。由于容器是輕量級(jí)的虛擬機(jī),因此,本文只考慮針對容器的相關(guān)部署與應(yīng)用。文獻(xiàn)[8]統(tǒng)計(jì)了Google 集群中不同資源的利用率以及各自對應(yīng)的總時(shí)間占比,表明了資源需求變化的動(dòng)態(tài)性和可描述性;文獻(xiàn)[19]研究了負(fù)載激增的模式,提出有關(guān)激增負(fù)載測試的方法;文獻(xiàn)[9]調(diào)研了資源需求量波動(dòng)對服務(wù)質(zhì)量的影響;文獻(xiàn)[20]優(yōu)化了數(shù)據(jù)中心與集群針對容器負(fù)載變化而產(chǎn)生的重配置資源的開銷。上述工作對資源配置的某方面開展了研究,但未考慮合理調(diào)整資源利用的方式。

近期工作主要致力于把變化的負(fù)載建模成為隨機(jī)變量,即非確定量。文獻(xiàn)[21]提供了在資源需求量服從特定隨機(jī)分布下的近似算法;文獻(xiàn)[22]主要研究了資源需求服從正態(tài)分布的情況;文獻(xiàn)[14-15]提出針對資源需求量服從高斯分布的近似算法。這些相關(guān)方法可以提供一定的資源需求描述能力,但難以支撐容器部署的穩(wěn)定性要求,易引發(fā)容器遷移。

然而針對服從特定概率分布的資源需求量而設(shè)計(jì)的算法不具有普遍性。雖然文獻(xiàn)[24]把激增的資源需求量建模為二狀態(tài)馬爾可夫鏈,但該算法對資源需求量的狀態(tài)數(shù)等有較大限制。

1.2 虛擬機(jī)/容器整合與遷移

作為提高資源利用率的重要方式,虛擬機(jī)/容器整合[11,25]已被學(xué)術(shù)界和工業(yè)界廣泛地研究與認(rèn)可。工業(yè)界代表性的產(chǎn)品有VMware 分布式資源調(diào)度[12]和IBM(International Business Machine)服務(wù)工具[13]。大多數(shù)研究把這個(gè)問題視作:在服務(wù)器容量、服務(wù)等級(jí)協(xié)議等限制條件下最小化所使用的物理服務(wù)器數(shù)量。這些工作均將容器資源需求量表示為定值,使用一系列類似裝箱的啟發(fā)式策略,如降序首次適應(yīng)(First Fit Decreasing,F(xiàn)FD)[6]、隨機(jī)裝箱等[14-15],卻無法應(yīng)對集群環(huán)境中動(dòng)態(tài)的容器資源變化需求。

當(dāng)宿主機(jī)資源無法滿足容器資源擴(kuò)張需求時(shí),容器熱遷移隨即進(jìn)行。文獻(xiàn)[16]以同時(shí)最小化遷移傳輸能耗及容器服務(wù)時(shí)延作為目標(biāo);文獻(xiàn)[17]旨在設(shè)計(jì)具有時(shí)延保障的熱遷移策略;另有文獻(xiàn)[18]考慮集群間利用傳輸控制協(xié)議(Transmission Control Protocol,TCP)的路徑多樣性進(jìn)行熱遷移。但這類工作往往是被動(dòng)地進(jìn)行容器的調(diào)整,沒有在長效時(shí)間維度上進(jìn)行容器整合與遷移的優(yōu)化。

針對上述工作的局限,本文使用多狀態(tài)馬爾可夫鏈為容器的資源需求量變化進(jìn)行建模,以設(shè)計(jì)有效的面向動(dòng)態(tài)負(fù)載的容器部署策略。

2 系統(tǒng)模型

2.1 場景定義

集群有大量的物理機(jī),通過在物理機(jī)(宿主機(jī))上部署容器來向用戶提供服務(wù)。如圖2 所示,容器與宿主機(jī)的關(guān)系由部署策略決定。

圖2 容器部署示意圖Fig.2 Schematic diagram of docker deployment

一方面,盡管用戶通常會(huì)聲明容器的最大資源需求量,但由于物理機(jī)的購置成本、維護(hù)成本和運(yùn)行成本都較高,總是為每個(gè)容器預(yù)留足夠的計(jì)算資源在經(jīng)濟(jì)上是不合理的。運(yùn)營者總是希望盡可能減少宿主機(jī)的占用量。另一方面,若沒有為容器預(yù)留一定的計(jì)算資源,當(dāng)其資源需求量發(fā)生變化時(shí),集群必須通過動(dòng)態(tài)遷移來保證容器的性能不受影響,由此會(huì)帶來較大的遷移代價(jià)?;谶@兩點(diǎn)考慮,本文旨在為集群設(shè)計(jì)一種容器部署策略,使得宿主機(jī)資源利用率較高、數(shù)量較少,同時(shí)把容器動(dòng)態(tài)遷移次數(shù)控制在較小的范圍內(nèi)。

2.2 單容器資源需求模型

容器資源需求量是動(dòng)態(tài)變化的,能被量化為多個(gè)狀態(tài)(如圖1 所示)。本文將該特性稱為容器的多狀態(tài)特性,并用多狀態(tài)的馬爾可夫鏈進(jìn)行建模,如圖3所示。假設(shè)集群共創(chuàng)建了n臺(tái)容器,并考慮第k臺(tái)容器。用Nk表示第k臺(tái)容器的狀態(tài)總數(shù),并令R(k)=(R1(k),R2(k),…,,其中Ri(k)表示第k臺(tái)容器中狀態(tài)i的資源需求大小。本文用Pij(k)表示第k臺(tái)容器中狀態(tài)i到狀態(tài)j的轉(zhuǎn)移概率,那么這些參數(shù)所構(gòu)成的是這臺(tái)容器的狀態(tài)轉(zhuǎn)移概率矩陣。本文用Sij(k)表示第k臺(tái)容器在兩個(gè)連續(xù)時(shí)間段從狀態(tài)i轉(zhuǎn)換到狀態(tài)j的次數(shù),那么有Pij(k)=以圖1 所示為例,分別用R1(k)、R2(k)、R3(k)表示由少到多的三種資源需求量,則S11(k)=2,S12(k)=2,S13(k)=1,且能計(jì) 算轉(zhuǎn)移 概率為P11(k)=0.4,P12(k)=0.4,P13(k)=0.2。

圖3 基于馬爾可夫鏈的容器資源狀態(tài)模型Fig.3 Markov chain based resource state model for docker

一般來說,上述描述的馬爾可夫鏈通常是非周期不可約的,因?yàn)閷?shí)際應(yīng)用中任兩個(gè)狀態(tài)都有可能相互切換。而任何狀態(tài)都可能在下一刻保持不變,故存在有平穩(wěn)狀態(tài)的分布,即μ(k)=(μ1(k),μ2(k),…有:

因此,容器k的描述可由其資源需求量R(k)和平穩(wěn)分布μ(k) 組成,構(gòu)成的是2×n維矩陣,定義為V(k)=[R(k),μ(k)]T,1 ≤k≤n。

2.3 多容器的復(fù)合資源需求模型

對于n臺(tái)容器來說,每個(gè)V(k)有Nk種狀態(tài),每臺(tái)容器的狀態(tài)變化相互獨(dú)立。因此,這n臺(tái)容器一共有N=種狀態(tài)。用S(k)表示容器V(k)當(dāng)前的所有狀態(tài),則這n臺(tái)容器在當(dāng)前的復(fù)合狀態(tài)可以用S=(S(1),S(2),…,S(n))來表示。那么,從狀態(tài)S轉(zhuǎn)移到S'=(S(1)',S(2)',…,S(n)')的概率為:

這里需要說明,本文將總共N種狀態(tài)用1~N進(jìn)行標(biāo)號(hào)。更進(jìn)一步,對于當(dāng)前所處的狀態(tài)(S(1),S(2),…,S(n)),本文用i1表示S(1),i2表示S(2),以此類推。從而有狀態(tài)轉(zhuǎn)移矩陣P=[Pij]N×N。這個(gè)馬爾可夫鏈通常也是無周期不可約,故存在唯一的可達(dá)的平穩(wěn)分布:

根據(jù)2.2 節(jié)所述,容器V(k)的平穩(wěn)分布定義為μ(k)=(μ1(k),μ2(k),…,μN(yùn)k(k))。則π和μ(k)的關(guān)系如定理所述。

定理1令有π=π',即n臺(tái)容器平穩(wěn)處于某一狀態(tài)的概率等于所有容器各自平穩(wěn)時(shí)處于對應(yīng)狀態(tài)概率的乘積。

證明 因?yàn)棣蠵=π解得的π是唯一的,所以只需要證明π'P=π',即證也即:

定理1 說明,在實(shí)際計(jì)算中,只需要預(yù)先算出每臺(tái)容器的平穩(wěn)狀態(tài)分布,再進(jìn)行簡單乘法運(yùn)算就能得到n臺(tái)容器的平穩(wěn)狀態(tài)分布。

2.4 動(dòng)態(tài)負(fù)載容器的部署與資源預(yù)留問題

集群有m臺(tái)宿主機(jī),第l臺(tái)宿主機(jī)Hl的可用資源可以用其容量Cl來描述,即Hl=Cl,1 ≤l≤m。容器的部署過程實(shí)際上是從容器到宿主機(jī)的一個(gè)映射過程,用矩陣X=來表示,當(dāng)V(k)放置在Hl上時(shí)有Xkl=1,否則Xkl=0。

令W(k,t)表示容器V(k)在t時(shí)刻的資源需求量。理想情況下,所有宿主機(jī)在t時(shí)刻都能提供充足的計(jì)算資源。該約束條件可以表示為:

特別地,在初始時(shí)刻,即t=0 時(shí),該約束滿足。如果在t時(shí)刻該約束被破壞,則定義為發(fā)生了一次沖突。用vio(l,t)表示Hl是否在t時(shí)刻沖突,即:

沖突率為長時(shí)間運(yùn)行過程中發(fā)生沖突的時(shí)間占總時(shí)間的比率,宿主機(jī)Hl的沖突率為:

CVR越小意味著容器動(dòng)態(tài)遷移的幾率越小。本文的策略目標(biāo)是保證所有宿主機(jī)的沖突率保持在一個(gè)較低的值ρ以下,即使得:

上述約束為宿主機(jī)的性能約束。下面給出面向動(dòng)態(tài)負(fù)載的容器部署問題的定義。

定義1面向動(dòng)態(tài)負(fù)載的容器部署問題是指,給出所有容器和宿主機(jī)參數(shù)V和H,找到一個(gè)從容器到宿主機(jī)的映射,使得在初始時(shí)刻滿足容量約束以及在任意時(shí)刻滿足性能約束的同時(shí),總共使用的宿主機(jī)數(shù)量最少,也即:

滿足容量約束(式(4)),當(dāng)t=0 時(shí);滿足性能約束(式(7)),對所有t。

定理2面向動(dòng)態(tài)負(fù)載的容器部署是NP(Non Polinomial)完全的。

證明 通過將NP 完全的裝箱問題判定版本歸約到所提出的面向動(dòng)態(tài)負(fù)載的容器部署問題的判定版本來完成定理證明。裝箱問題判定版本為:給定n個(gè)物品,第k個(gè)物品的大小是gk∈(0,1],能否用m個(gè)單位容積箱子裝下物品?

對任意一個(gè)給定的裝箱問題判定版本實(shí)例,構(gòu)造一個(gè)面向動(dòng)態(tài)負(fù)載的容器部署問題(判定版)實(shí)例:令Nk為任意正整數(shù),?k∈{1,2,…,n};令Ri(k)=gk,?k,?i∈{1,2,…,Nk};再令Cl=1,?l∈{1,2,…,m};令ρ=0。這樣可在多項(xiàng)式時(shí)間內(nèi)完成歸約,因此所提問題是NP完全的。 證畢。

3 面向動(dòng)態(tài)負(fù)載的容器部署與資源預(yù)留

3.1 容器的資源預(yù)留策略

在單臺(tái)宿主機(jī)上部署n臺(tái)容器,這n臺(tái)容器一共有N個(gè)狀態(tài),用Ri表示標(biāo)號(hào)為i的狀態(tài)的資源需求。不失一般性,不妨設(shè)R1≤R2≤…≤RN,則可以導(dǎo)出這n臺(tái)容器最小所需容量Rq,其中q為滿足如下關(guān)系的整數(shù):

此時(shí)的性能約束滿足:

根據(jù)式(8),判斷n臺(tái)容器能否同時(shí)放置在某臺(tái)宿主機(jī)l上的算法De(V,Hl),具體描述見算法1 所示,其輸出為能否放置的結(jié)果。

算法1 宿主機(jī)能否容納容器(Determination)。

輸入 特定宿主機(jī)l,容器的馬爾可夫模型V={V(1),V(2),…,V(n)};

輸出n臺(tái)容器能否放于特定宿主機(jī)l。

如果PI>ρ,輸出0(否);否則輸出1(是)。

3.2 面向動(dòng)態(tài)負(fù)載的容器部署策略

現(xiàn)在考慮多臺(tái)宿主機(jī)的情況。將n臺(tái)容器部署到m臺(tái)宿主機(jī)上,基于FFD 啟發(fā)式算法設(shè)計(jì)部署策略,將n臺(tái)容器按資源需求量的期望R(k)·μ(k)降序排序,并將m臺(tái)容器按其容量降序排序。對給定的一個(gè)容器,依次嘗試每個(gè)宿主機(jī),若當(dāng)前宿主機(jī)滿足約束條件,則將容器部署在該宿主機(jī)上,否則嘗試下一個(gè)宿主機(jī)直到這臺(tái)容器被部署成功。算法MultiCons(n,m,d,V,H)的具體描述見算法2 所示,其中向量H包含所有可用的宿主機(jī),d為單個(gè)宿主機(jī)上所能允許部署的最大容器數(shù)量。

記Nmax為n臺(tái)容器各自的狀態(tài)數(shù)的最大值,即Nmax=maxNk(1 ≤k≤n)。容器排序時(shí)間復(fù)雜度為O(nlbn),宿主機(jī)排序復(fù)雜度為O(mlbm),部署一臺(tái)容器的復(fù)雜度為部署n臺(tái)的復(fù)雜度為而容器部署算法總的復(fù)雜度由部署時(shí)間所決定,即Nmax一般是比較小的常數(shù),d是確定的整數(shù),故只是一個(gè)系數(shù),算法的復(fù)雜度為O(nm)。然而,當(dāng)實(shí)際運(yùn)行中nm的規(guī)模不夠大時(shí)是一個(gè)相當(dāng)大的系數(shù),直接導(dǎo)致部署時(shí)間延長。為了縮短部署時(shí)間,在3.3 節(jié)將提出一種估算最小資源預(yù)留量的預(yù)判方法。

算法2 面向動(dòng)態(tài)負(fù)載的容器部署(MultiCons)。

輸入 容器總數(shù)n,宿主機(jī)總數(shù)m;單宿主機(jī)允許部署最大容器數(shù)d;容器的馬爾可夫模型V={V(1),V(2),…,V(n)};宿主機(jī)模型H={H1,H2,…,Hm}。

輸出 容器到宿主機(jī)的映射X=

3.3 面向動(dòng)態(tài)負(fù)載的容器部署加速

在算法2 中,如果前面l臺(tái)宿主機(jī)上已經(jīng)部署了比較多(不妨假設(shè)為d-1臺(tái))容器,其將不再容納任何有較大資源需求的其他容器。但算法2 在部署一臺(tái)明顯無法放置在這l臺(tái)宿主機(jī)上的容器時(shí),仍需要從第一臺(tái)宿主機(jī)開始嘗試,直到付出了的代價(jià),才判斷出前l(fā)臺(tái)宿主機(jī)都無法容納。顯然,這種情況是對計(jì)算的極大浪費(fèi)。本文考慮尋找一個(gè)可以簡單計(jì)算出的參數(shù),來判斷容器是否有很大概率無法部署在特定宿主機(jī)上。本文先考慮所有容器的資源需求為獨(dú)立的二項(xiàng)分布,如表1所示。

表1 容器的資源分布Tab.1 Resource distribution of dockers

正態(tài)分布的累積概率為Fz(zα)=P(Z≤zα)=1-α?,F(xiàn)有一臺(tái)宿主機(jī)上已部署k臺(tái)容器,需要判斷第k+1 臺(tái)容器能否部署在該宿主機(jī)上。用X表示這k+1 臺(tái)容器的總資源需求量,即X=X1+X2+…+Xk+1,根據(jù)中心極限定理,有:

本文分別用Xmin、Xmax表示Xk的最小值和最大值,進(jìn)而得到:

當(dāng)Rq>Hl時(shí),可以判斷第k+1 臺(tái)容器無法放置在宿主機(jī)l上。這里Rq的計(jì)算有兩個(gè)假定:1)所有的容器服從相似的概率分布。由于FFD將所有容器按照其資源需求量的期望排序,所以放置在同一臺(tái)宿主機(jī)上的大多數(shù)容器具有相似的期望。在實(shí)際情況下,可以將容器按分布聚簇,再排序部署,使其更加準(zhǔn)確。2)所有容器都是二狀態(tài)的。在實(shí)際情況中,容器狀態(tài)數(shù)會(huì)大于2,Xmax會(huì)導(dǎo)致實(shí)際結(jié)果偏大,在Xmax前加上修正α,得:

對于修正系數(shù)α,可以利用容器的分布估算。先考慮只有一臺(tái)的情況:對于二狀態(tài)的容器,易知α=1。對于N狀態(tài)的容器(N≥3)有:

當(dāng)有n臺(tái)容器具有不一樣的狀態(tài)數(shù)時(shí),有:

以式(14)、(15)計(jì)算出的α作為參考值,若在當(dāng)前α下算法運(yùn)行結(jié)果準(zhǔn)確率比較低時(shí),可以通過減小α來提高準(zhǔn)確率;當(dāng)運(yùn)行時(shí)間較長且準(zhǔn)確率較高時(shí),可以通過增大α來縮短運(yùn)行時(shí)間。據(jù)此,提出面向動(dòng)態(tài)負(fù)載的容器加速部署策略(如算法3 所示),該算法能夠結(jié)合宿主機(jī)和容器各自不同的狀態(tài)進(jìn)行動(dòng)態(tài)部署。

這里提出用中心極限定理估算Rq方法的合理性在于:一般來說,若n≥9×max中心極限定理就可以得到較好的擬合效果。在實(shí)際的部署中,當(dāng)容器的數(shù)量比較小時(shí),資源需求量和計(jì)算出的Rq都遠(yuǎn)小于H,所以估算效果的好壞不影響結(jié)果;但當(dāng)容器的數(shù)量比較大時(shí),這種方法的估算效果好,得到比較準(zhǔn)確的結(jié)果。

算法3 容器的加速部署(QuickMultiCons)。

輸入 容器總數(shù)n;宿主機(jī)總數(shù)m;單宿主機(jī)允許部署最大容器數(shù)d;容器的馬爾可夫模型V={V(1),V(2),…,V(n)};宿主機(jī)模型H={H1,H2,…,Hm}。

4 實(shí)驗(yàn)與結(jié)果分析

4.1 實(shí)驗(yàn)概述

為驗(yàn)證部署策略的有效性,在基于國產(chǎn)軟硬件環(huán)境的基礎(chǔ)上,結(jié)合開源系統(tǒng),設(shè)計(jì)了一系列實(shí)驗(yàn),驗(yàn)證不同參數(shù)配置下所提設(shè)計(jì)算法的效果。

4.1.1 測試床環(huán)境

基于國產(chǎn)軟硬件環(huán)境及開源系統(tǒng),本文部署并測試環(huán)境運(yùn)行的可行性。主要實(shí)驗(yàn)環(huán)境配置及具體參數(shù)包括:測試床服務(wù)器為浪潮SN5160M4(IntelE5-2680V4 CPU*2、256 GB(8*32 GB RDIMMG)DDR4 內(nèi)存、1.2 TB 熱插拔SAS 硬盤2.5"*6);系統(tǒng)為中標(biāo)麒麟(kernel-2.6.32;KVM-0.12);資源管理系統(tǒng)為OpenStack R版本;語言環(huán)境為Python 3.8。

4.1.2 對比算法

在測試床的基礎(chǔ)上,通過模擬程序行為實(shí)現(xiàn)了所提容器部署策略MULTI(MULTIple),并與三種常用的容器部署策略進(jìn)行了比較:1)按谷值配置容器的策略RV(Resource with Valley);2)按峰值配置容器的策略RP(Resource with Peak);3)按谷值峰值的平均配置容器的策略RVP(Resource with Valley and Peak)。三種部署策略也都使用了FFD策略。在部署完成后,按照真實(shí)容器的分布,產(chǎn)生1 000 組實(shí)時(shí)數(shù)據(jù)進(jìn)行仿真,出現(xiàn)沖突時(shí)測試床將容器動(dòng)態(tài)遷移到其余空閑宿主機(jī),記錄運(yùn)行性能結(jié)果。

4.1.3 驗(yàn)證指標(biāo)

衡量部署策略的性能的參數(shù)包括部署一定臺(tái)數(shù)容器所需的宿主機(jī)數(shù)(Physical Machines,PM)、沖突率(Capacity Violation Rate,CVR)和動(dòng)態(tài)遷移次數(shù)(MIGration,MIG),其中PM、CVR、MIG分別是1 000組數(shù)據(jù)產(chǎn)生宿主機(jī)數(shù)目的最大值、沖突率平均值、動(dòng)態(tài)遷移次數(shù)最大值。

4.1.4 實(shí)驗(yàn)參數(shù)

實(shí)驗(yàn)涉及的參數(shù)包括:容器數(shù)量(VM)、容器資源需求相對大?。≧1∶R2∶…)、容器資源需求的平穩(wěn)分布概率(P1∶P2∶…)、容器資源需求量的絕對大小(Rmean=宿主機(jī)容量(H)、宿主機(jī)允許的最大容器數(shù)(d)以及宿主機(jī)的性能約束(ρ)。

實(shí)驗(yàn)主要驗(yàn)證容器資源需求的分布區(qū)間(R1∶R2∶…)、絕對大小Rmean和平穩(wěn)分布(P1∶P2∶…)在不同配置下對部署效果的影響,得到部署策略最優(yōu)的參數(shù)配置范圍。實(shí)驗(yàn)中容器有50%概率為二狀態(tài),50%概率為三狀態(tài)。宿主機(jī)的容量H為(80,100)的均勻分布,d設(shè)為16,ρ設(shè)為0.04。三狀態(tài)容器和二狀態(tài)容器的資源需求量平穩(wěn)分布分別如表2和表3所示,容器資源需求量分布如表4 所示。表2 的含義是對每一臺(tái)容器,其P1在0~P內(nèi)等概率隨機(jī)取值,P2在0~(1-P1)內(nèi)等概率隨機(jī)取值,P3取1-P1-P2。表3和表4的含義類似。

表2 三狀態(tài)容器的資源需求量平穩(wěn)分布Tab.2 Resource demand stationary distribution of dockers with three states

表3 二狀態(tài)容器的資源需求量平穩(wěn)分布Tab.3 Resource demand stationary distribution of dockers with two states

表4 容器資源需求量分布Tab.4 Distribution of docker resource demand

累計(jì)進(jìn)行了4組綜合實(shí)驗(yàn):

1)調(diào)節(jié)容器資源需求量的絕對大小:固定P=1,R分別取3~7,從而改變Rmean。

2)調(diào)節(jié)容器資源需求的平穩(wěn)分布概率:分別在P等于0.2、0.4、0.6、0.8、1.0的情況下進(jìn)行實(shí)驗(yàn),并通過改變R固定Rmean=6.125。

3)調(diào)節(jié)容器資源需求的分布區(qū)間:固定P=1 和Rmean=6.125,改變R值調(diào)節(jié)容器資源需求。

4)部署策略運(yùn)行的時(shí)間代價(jià):取P=1和R=5,將10 000臺(tái)容器分成100批,每批100臺(tái),按批次進(jìn)行部署,并記錄下每批容器部署的時(shí)間。

4.2 模擬實(shí)驗(yàn)結(jié)果

實(shí)驗(yàn)1 的結(jié)果如表5~6、圖4 所示。RV 使用最少的宿主機(jī),動(dòng)態(tài)遷移次數(shù)最多。RP 動(dòng)態(tài)遷移為零,使用的宿主機(jī)最多。RVP使用較少的宿主機(jī),但動(dòng)態(tài)遷移次數(shù)較多,沖突率會(huì)隨容器條件的變化而產(chǎn)生較大起伏。MULTI 使用少于RP 的宿主機(jī)數(shù),并且保持較少的遷移次數(shù)和較小沖突率。RV 與RVP 在R<5 時(shí)的沖突率很小,R≥5 時(shí)更能體現(xiàn)MULTI 算法的性能效果。在現(xiàn)實(shí)中,一般宿主機(jī)上都會(huì)布置10 臺(tái)以上容器[24],所以模擬實(shí)驗(yàn)的結(jié)果在R=5 時(shí)更貼近真實(shí)的情況。隨著R增大,MULTI 的PM增長速度大于RVP 的PM增長速度,這是因?yàn)镽增大會(huì)導(dǎo)致單臺(tái)宿主機(jī)上放置容器數(shù)量減少,即式(10)的k減小,得到更大的Rq。

表5 PM與R的關(guān)系Tab.5 Relationship between PM and R

表6 MIG與R的關(guān)系Tab.6 Relationship between MIG and R

圖4 CVR與R的關(guān)系Fig.4 Relationship between CVR and R

實(shí)驗(yàn)2的結(jié)果如表7~8、圖5所示。隨著P的增大,MULTI策略下的PM略有增大,但幅度比較小。增大的原因是:根據(jù)式(10)、(12),資源預(yù)留量Rq與容器資源需求的期望和方差有關(guān),當(dāng)保持Rmean恒定時(shí),Rq的大小由容器資源需求的方差大小決定,經(jīng)過簡單計(jì)算可知基于表4的分布,P越大,容器資源需求的方差也越大,所需要的資源預(yù)留量越大,進(jìn)而所使用的宿主機(jī)數(shù)量越多。RV、RP、RVP 三種算法的PM增大是因?yàn)镽的增大。RV、RVP 的MIG和CVR都相當(dāng)?shù)卮笄也环€(wěn)定,MULTI 的MIG一直保持在較小數(shù)值7,CVR也均保持在0.04以下,意味著當(dāng)容器需要資源擴(kuò)張的時(shí)候,其與宿主機(jī)的沖突率一直保持較低水平,也能夠體現(xiàn)在宿主機(jī)上提前預(yù)留資源的好處。

表7 PM與P的關(guān)系Tab.7 Relationship between PM and P

表8 MIG與P的關(guān)系Tab.8 Relationship between MIG and P

圖5 CVR與P的關(guān)系Fig.5 Relationship between CVR and P

實(shí)驗(yàn)3 的R分別取3、5、7 時(shí),資源需求量的分布如表9 所示。實(shí)驗(yàn)結(jié)果如表10~11,四種算法的MIG和CVR都比較穩(wěn)定,RVP的MIG與MULTI的MIG保持著4倍左右的差距。

表9 P不變時(shí)資源需求量的分布Tab.9 Distribution of Resource Demand with fixed P

表10 PM與R的關(guān)系Tab.10 Relationship between PM and R

實(shí)驗(yàn)4的結(jié)果如圖6所示,部署時(shí)間與當(dāng)前已放置的容器數(shù)量呈線性關(guān)系,當(dāng)已部署的容器數(shù)量過大時(shí),部署時(shí)間也會(huì)變得非常長,表明容器遷移開銷也相應(yīng)變大。

圖6 部署時(shí)延與部署容器數(shù)量的關(guān)系Fig.6 Relationship between deployment delay and number of deployed dockers

綜上所述,實(shí)驗(yàn)1 體現(xiàn)了容器資源需求分布的期望對部署結(jié)果的影響,實(shí)驗(yàn)2、3 用兩種方式調(diào)節(jié)了容器資源需求分布的方差并研究了它對部署結(jié)果的影響,進(jìn)而一方面也驗(yàn)證了式(10)、(11)、(12)結(jié)論的可靠性。面向多狀態(tài)負(fù)載的容器部署策略的最大優(yōu)點(diǎn)在于能夠保持動(dòng)態(tài)遷移次數(shù)和沖突率均穩(wěn)定在一個(gè)較小的范圍。

表11 MIG與R的關(guān)系Tab.11 Relationship between MIG and R

5 結(jié)語

容器技術(shù)在集群中發(fā)揮著重要作用,為用戶提供按需式的資源服務(wù)。然而,傳統(tǒng)被動(dòng)的容器整合或是遷移無法應(yīng)對動(dòng)態(tài)的容器負(fù)載,給集群容器部署帶來挑戰(zhàn)。本文針對長效時(shí)間上容器整合與遷移的整體優(yōu)化,提出了利用多狀態(tài)馬爾可夫鏈模型描述容器資源狀態(tài),并在宿主機(jī)資源預(yù)留的基礎(chǔ)上提出了部署策略,還進(jìn)一步優(yōu)化部署的時(shí)延。實(shí)驗(yàn)結(jié)果表明,本文提出的策略能夠在宿主機(jī)使用數(shù)量和動(dòng)態(tài)容器遷移次數(shù)間達(dá)到較好的平衡。本文主要針對靜態(tài)場景下的動(dòng)態(tài)部署問題進(jìn)行了探討,但所提出的方法難以適用于在線場景,且資源需求類型的描述一定程度上影響了資源的分配策略,而資源需求的類型數(shù)量難以確定,這兩方面將是下一步研究的重點(diǎn)方向。

猜你喜歡
需求量容器動(dòng)態(tài)
國內(nèi)動(dòng)態(tài)
國內(nèi)動(dòng)態(tài)
國內(nèi)動(dòng)態(tài)
從數(shù)學(xué)角度看“彈性”
基于云計(jì)算技術(shù)的城市就業(yè)需求量預(yù)測研究
難以置信的事情
動(dòng)態(tài)
液體對容器底及容器對桌面的壓力和壓強(qiáng)
取米
浪卡子县| 宁国市| 穆棱市| 昌乐县| 阿拉善左旗| 砀山县| 蒙自县| 文水县| 岑溪市| 藁城市| 太康县| 西宁市| 黄浦区| 曲阜市| 旬邑县| 外汇| 牡丹江市| 泰顺县| 金寨县| 淳安县| 枣庄市| 建德市| 杭锦后旗| 柏乡县| 麻江县| 齐河县| 长乐市| 芷江| 清水县| 凤庆县| 井冈山市| 长治县| 沁阳市| 台南县| 张家界市| 滦平县| 平邑县| 镇雄县| 岳池县| 桑植县| 宜都市|