亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

基于負載預(yù)測的numa架構(gòu)中虛擬機調(diào)度方法

文檔序號:8319001閱讀:638來源:國知局
基于負載預(yù)測的numa架構(gòu)中虛擬機調(diào)度方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及一種基于負載預(yù)測的NUM架構(gòu)中虛擬機調(diào) 度方法。
【背景技術(shù)】
[0002] 隨著計算機硬件的不斷發(fā)展,服務(wù)器愈加傾向于承載多種相互獨立的業(yè)務(wù)。虛擬 化技術(shù)便很好的適應(yīng)了這種需求:其對計算機硬件資源進行合理分配給多個操作系統(tǒng),使 得這些操作系統(tǒng)能夠并發(fā)地運行在物理計算機之上。且操作系統(tǒng)間保持著相互的獨立,很 好地解決了此類問題?,F(xiàn)在,虛擬化技術(shù)已被廣泛運用于互聯(lián)網(wǎng)服務(wù),云計算等一些領(lǐng)域。
[0003] 在虛擬化技術(shù)的誕生之初,計算機多采用SMP結(jié)構(gòu)(Symmetric Multi-Processing,對稱多處理結(jié)構(gòu)),即內(nèi)存空間為所有的CPU所共享,每一個CPU都可以 對內(nèi)存的任意一個地址進行訪問,因此,虛擬化系統(tǒng)大多將虛擬機默認為SMP結(jié)構(gòu)。然而, 隨著計算機CPU物理核個數(shù)的增加,現(xiàn)有的SMP結(jié)構(gòu)會帶來效率問題:當(dāng)多個CPU同時訪問 內(nèi)存是會造成總線的競爭,從而導(dǎo)致系統(tǒng)整體性能的下降。于是NUMA結(jié)構(gòu)(Non Uniform Memory Access Architecture,非統(tǒng)一內(nèi)存訪問)的計算機被引入:其將若干個CPU與一塊 內(nèi)存劃分為一個節(jié)點,每個CPU訪問本節(jié)點的私有內(nèi)存時性能較高,訪問其他節(jié)點的內(nèi)存 時性能較低。通過操作系統(tǒng)對應(yīng)用程序的合理調(diào)配,其能夠最大程度地減少訪存的競爭,同 時訪存時間又不會有太大的影響。
[0004] 虛擬化技術(shù)亦適應(yīng)了 NUMA體系結(jié)構(gòu)的發(fā)展,虛擬機監(jiān)視器創(chuàng)建支持NUMA體系結(jié) 構(gòu)的虛擬機。虛擬機監(jiān)視器為虛擬機的VCPU和內(nèi)存劃分為若干個虛擬節(jié)點,并在創(chuàng)建虛擬 機之初通過初始化虛擬機的APIC表中的SRAT表和SLIT表使得虛擬機操作系統(tǒng)能夠感知 虛擬機的虛擬化NUMA拓撲結(jié)構(gòu)。此后,虛擬機監(jiān)視器在分配VCPU和內(nèi)存時使得每一個虛 擬節(jié)點的VCPU和內(nèi)存分配到同一個物理節(jié)點上,這樣便解決了運行在虛擬機之上的操作 系統(tǒng)因為不了解底層NUM結(jié)構(gòu)而造成的性能下降問題。
[0005] 然而,虛擬節(jié)點和物理節(jié)點的對應(yīng)關(guān)系在虛擬機的運行過程中需要根據(jù)節(jié)點的負 載進行動態(tài)調(diào)整?,F(xiàn)有的負載均衡方式往往是在負載最高的節(jié)點上根據(jù)CPU使用率和內(nèi)存 使用率選取一個合適的虛擬機迀移到負載較低的目標節(jié)點中去。然而,在負載高的節(jié)點上 所采集到的CPU使用率并不等同于其迀移到目標節(jié)點之后給目標節(jié)點所增加的CPU使用率 開銷。于是,基于傳統(tǒng)的方法進行迀移,往往會造成迀移之后系統(tǒng)的負載的均衡度不能做到 最優(yōu)。

【發(fā)明內(nèi)容】

[0006] 針對現(xiàn)有技術(shù)的不足,本發(fā)明提出一種基于負載預(yù)測的NUM架構(gòu)中虛擬機調(diào)度 方法。
[0007] 針對每個虛擬機,按照預(yù)設(shè)的時間間隔定時獲取NUMA架構(gòu)中各個物理節(jié)點的狀 態(tài)信息,所述的狀態(tài)信息包括相應(yīng)物理節(jié)點的CPU、內(nèi)存使用率,運行于其上的VCPU總數(shù)以 及運行于其上的當(dāng)前虛擬機的VCPU數(shù),每次獲得狀態(tài)信息后執(zhí)行如下操作:
[0008] (1)根據(jù)狀態(tài)信息計算各個物理節(jié)點的負載;
[0009] (2)根據(jù)各個物理節(jié)點的負載計算NUM架構(gòu)的初始負載方差,并判斷初始負載方 差是否大于預(yù)設(shè)的方差閾值;
[0010] 若初始負載方差小于或等于預(yù)設(shè)的方差閾值則進行虛擬機調(diào)度,則不操作(即休 眠一個時間間隔);
[0011] 否則,確定負載最高的物理節(jié)點并作為源節(jié)點,并通過負載預(yù)測確定是否存在調(diào) 度方案,所述的調(diào)度方案包括待迀移虛擬機和目標節(jié)點:
[0012] 若存在調(diào)度方案,則按照所述的調(diào)度方案將待迀移虛擬機從所述源節(jié)點迀移至目 標節(jié)點上;
[0013] 否則,不操作。
[0014] 本發(fā)明的虛擬機調(diào)度方法中進行次調(diào)度僅調(diào)度一個虛擬機,一次調(diào)度結(jié)束后,負 載可能仍然均衡,此時可能需要經(jīng)過多次調(diào)度才能達到負載均衡。且由于整個過程中,各個 物理節(jié)點的使用狀態(tài)也會改變,因此通過按照預(yù)設(shè)的時間間隔進行周期性調(diào)度,能夠?qū)崟r 對系統(tǒng)負載進行調(diào)度。
[0015] 本發(fā)明迀移時將待迀移虛擬機的內(nèi)存和虛擬CPU同時從源節(jié)點迀移至目標節(jié)點 上,不會破壞系統(tǒng)的原有架構(gòu)。
[0016] 執(zhí)行步驟(1)和(2)的時間開銷通常必須小于設(shè)定的時間間隔。本發(fā)明中所述的 時間間隔為1~5s,作為優(yōu)選,所述的時間間隔為Is。
[0017] 本發(fā)明中計算各個物理節(jié)點的負載時同時考慮到CPU負載和內(nèi)存負載,相應(yīng)的, 所述步驟(1)利用如下公式根據(jù)狀態(tài)信息計算各個物理節(jié)點的負載:
[0018] Load_degreenode= w cpu*cpu_usagenode+wmeni*mem_usage node
[0019] 其中,LoacLdegreemde為物理節(jié)點負載量,w _和w mem為CPU負載權(quán)重系數(shù)和內(nèi)存 負載權(quán)重系數(shù),cpu_usageMdeS該物理節(jié)點的CPU使用率,mem_usage mde為該物理節(jié)點的內(nèi) 存使用率。
[0020] 其中,CPU負載權(quán)重系數(shù)Wciu和內(nèi)存負載權(quán)重系數(shù)w _滿足條件:w _+?_= 1???慮到實際應(yīng)用時,CPU負載和內(nèi)存負載對NUM架構(gòu)中各個物理節(jié)點負載的影響,作為優(yōu)選, 本發(fā)明中Ipu= Wm= 0. 5。
[0021] 設(shè)定的方差閾值的大小直接關(guān)系到最終進行虛擬機調(diào)度的頻率,該方差閾值可根 據(jù)實際應(yīng)用情況進行調(diào)整。本發(fā)明所述的方差閾值為0. 25~1。
[0022] 通過負載預(yù)測確定是否存在調(diào)度方案時包括如下步驟:
[0023] (2-1)以NUMA架構(gòu)中除源節(jié)點外,負載小于預(yù)設(shè)的負載閾值的其他物理節(jié)點作為 候選節(jié)點;
[0024] 本發(fā)明中預(yù)設(shè)的負載閾值為0. 75~1。
[0025] (2-2)針對源節(jié)點上的每個虛擬機,分別預(yù)測將該虛擬機迀移至每個候選節(jié)點上 后NUM架構(gòu)的負載方差;
[0026] 將當(dāng)前虛擬機迀移至任意一個候選節(jié)點上后NUM架構(gòu)的負載方差通過如下方法 預(yù)測:
[0027] (2-21)根據(jù)源節(jié)點和當(dāng)前候選節(jié)點的狀態(tài)信息分別預(yù)測當(dāng)前虛擬機迀移至候選 節(jié)點后源節(jié)點和當(dāng)前候選節(jié)點的負載;
[0028] 根據(jù)如下方法預(yù)測當(dāng)前虛擬機迀移至當(dāng)前候選節(jié)點后源節(jié)點的負載:
[0029] (al)預(yù)測迀移后源節(jié)點的CPU使用率Csp:
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1