專利名稱:一種基于最高負(fù)載的進(jìn)行負(fù)載均衡調(diào)度的方法及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)負(fù)載處理技術(shù),尤其涉及一種基于最高負(fù)載的進(jìn)行負(fù)載均衡調(diào)度的方法及設(shè)備。
背景技術(shù):
為了提高硬件資源利用率,往往在一個(gè)物理平臺(tái)上運(yùn)行數(shù)目較多的虛擬機(jī)(Virtual Machine),各虛擬機(jī)共享物理處理器(例如可以表示為PCPU)的硬件資源。為了各個(gè)虛擬機(jī)公平得到物理處理器的使用時(shí)間,虛擬機(jī)調(diào)度器一般采用分時(shí)共享策略,以虛擬處理器(例如可以表示為VCPU)為調(diào)度單位,負(fù)責(zé)從隊(duì)列中選擇合適的虛擬處理器執(zhí)行。Credit調(diào)度算法是著名開源虛擬化軟件Xen3.0版本及以后版本使用的默認(rèn)調(diào)度算法,是一種按比例公平共享的非搶占式調(diào)度算法。Credit調(diào)度算法為每一個(gè)虛擬機(jī)設(shè)置二元組(weight, cap),各個(gè)虛擬機(jī)之間weight的比例決定它們的credit值,credit值直接影響每個(gè)VCPU的運(yùn)行時(shí)間。對(duì)Credit算法的研究主要集中在該算法對(duì)系統(tǒng)性能影響方面。Credit調(diào)度算法的最大優(yōu)點(diǎn)在于可以全局管理多個(gè)PCPU從而將CPU時(shí)間公平高效地分配給各個(gè)VCPU,還可以用多對(duì)稱處理(Symmetric Mult1-Processing, SMP)的方式將各個(gè)PCPU的資源分配給多個(gè)VCPU,實(shí)現(xiàn)負(fù)載平衡,還它可以通過調(diào)節(jié)虛擬機(jī)的cap參數(shù)很好的實(shí)現(xiàn)非工作保持(Non-Working-Conserving, NWC)調(diào)度模式,使得管理員可以很容易地控制PCPU的分配情況。Credit調(diào)度算法的缺點(diǎn)在于不能保證實(shí)時(shí)性,響應(yīng)速度要求較高的應(yīng)用中事件響應(yīng)延遲與其所處的隊(duì)列位置密切相關(guān),響應(yīng)延遲普遍較長(zhǎng)且波動(dòng)明顯,這個(gè)問題已經(jīng)Xen3.0.4版本中加入boost優(yōu)先級(jí)的方式解決。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種基于最高負(fù)載的進(jìn)行負(fù)載均衡調(diào)度的方法及設(shè)備,為提高虛擬機(jī)平臺(tái)的資源管理效率提供新的解決方案。為了解決上述技術(shù)問題,本發(fā)明提供了一種基于最高負(fù)載的進(jìn)行負(fù)載均衡調(diào)度的方法,包括:虛擬機(jī)調(diào)度器根據(jù)物理處理器的調(diào)度隊(duì)列中各虛擬處理器的調(diào)度值計(jì)算此物理處理器的負(fù)載值,當(dāng)一物理處理器的負(fù)載值為零時(shí),從負(fù)載值最大的物理處理器的調(diào)度隊(duì)列中選擇調(diào)度值最大的虛擬處理器將此虛擬處理器調(diào)配到此負(fù)載值為零的物理處理器的調(diào)度隊(duì)列中。進(jìn)一步地,上述方法還可以具有以下特點(diǎn):所述虛擬處理器的屬性中包括是否能夠調(diào)配一項(xiàng);所述方法還包括:在負(fù)載值最大的物理處理器的調(diào)度隊(duì)列中選擇出調(diào)度值最大的虛擬處理器后,判斷此虛擬處理器的屬性為能夠調(diào)配時(shí),將此虛擬處理器調(diào)配到此負(fù)載值為零的物理處理器的調(diào)度隊(duì)列中;判斷此虛擬處理器的屬性為不能夠調(diào)配時(shí),執(zhí)行一次或多次在未作為選擇目標(biāo)的其它物理處理器中選擇負(fù)載值最大的物理處理器并判斷此虛擬處理器的屬性的步驟,直至選擇到在未作為選擇目標(biāo)的其它物理處理器中負(fù)載值最大的物理處理器并且其調(diào)度隊(duì)列中調(diào)度值最大的虛擬處理器的調(diào)度值為能夠調(diào)配后,將此虛擬處理器調(diào)配到負(fù)載值為零的物理處理器的調(diào)度隊(duì)列中。進(jìn)一步地,上述方法還可以具有以下特點(diǎn):所述物理處理器的負(fù)載值是所述物理處理器的調(diào)度隊(duì)列中所有虛擬處理器的調(diào)度值的和。進(jìn)一步地,上述方法還可以具有以下特點(diǎn):所述虛擬處理器的調(diào)度值與所述虛擬處理器獲得的物理處理器的時(shí)間片的值是正相關(guān)關(guān)系。進(jìn)一步地,上述方法還可以具有以下特點(diǎn):虛擬處理器的調(diào)度值大于零時(shí)此虛擬處理器的狀態(tài)為工作狀態(tài),虛擬處理器的調(diào)度值等于零時(shí)此虛擬處理器的狀態(tài)為非工作狀態(tài);處于工作狀態(tài)的虛擬處理器的級(jí)別高于處于非工作狀態(tài)的虛擬處理器的級(jí)別;所述虛擬機(jī)調(diào)度器按照虛擬機(jī)的級(jí)別從高到低的順序設(shè)置虛擬處理器在物理處理器的調(diào)度隊(duì)列中的位置。為了解決上述技術(shù)問題,本發(fā)明還提供了一種基于最高負(fù)載的進(jìn)行負(fù)載均衡調(diào)度的設(shè)備,所述設(shè)備包括虛擬機(jī)調(diào)度器和一個(gè)以上物理處理器;所述虛擬機(jī)調(diào)度器,用于根據(jù)物理處理器的調(diào)度隊(duì)列中各虛擬處理器的調(diào)度值計(jì)算此物理處理器的負(fù)載值,當(dāng)一物理處理器的負(fù)載值為零時(shí),從負(fù)載值最大的物理處理器的調(diào)度隊(duì)列中選擇調(diào)度值最大的虛擬處理器將此虛擬處理器調(diào)配到此負(fù)載值為零的物理處理器的調(diào)度隊(duì)列中。進(jìn)一步地,上述設(shè)備還可以具有以下特點(diǎn):所述虛擬處理器的屬性中包括是否能夠調(diào)配一項(xiàng);所述虛擬機(jī)調(diào)度器,還用于在負(fù)載值最大的物理處理器的調(diào)度隊(duì)列中選擇出調(diào)度值最大的虛擬處理器后,判斷此虛擬處理器的屬性為能夠調(diào)配時(shí),將此虛擬處理器調(diào)配到此負(fù)載值為零的物理處理器的調(diào)度隊(duì)列中;判斷此虛擬處理器的屬性為不能夠調(diào)配時(shí),并一次或多次執(zhí)行在未作為選擇目標(biāo)的其它物理處理器中選擇負(fù)載值最大的物理處理器并判斷此虛擬處理器的屬性的步驟,直至選擇到在未作為選擇目標(biāo)的其它物理處理器中負(fù)載值最大的物理處理器并且其調(diào)度隊(duì)列中調(diào)度值最大的虛擬處理器的調(diào)度值為能夠調(diào)配后,將此虛擬處理器調(diào)配到負(fù)載值為零的物理處理器的調(diào)度隊(duì)列中。進(jìn)一步地,上述設(shè)備還可以具有以下特點(diǎn):所述物理處理器的負(fù)載值是所述物理處理器的調(diào)度隊(duì)列中所有虛擬處理器的調(diào)度值的和。進(jìn)一步地,上述設(shè)備還可以具有以下特點(diǎn):所述虛擬處理器的調(diào)度值與所述虛擬處理器獲得的物理處理器的時(shí)間片的值是正相關(guān)關(guān)系。進(jìn)一步地,上述設(shè)備還可以具有以下特點(diǎn):虛擬處理器的調(diào)度值大于零時(shí)此虛擬處理器的狀態(tài)為工作狀態(tài),虛擬處理器的調(diào)度值等于零時(shí)此虛擬處理器的狀態(tài)為非工作狀態(tài);處于工作狀態(tài)的虛擬處理器的級(jí)別高于處于非工作狀態(tài)的虛擬處理器的級(jí)別;所述虛擬機(jī)調(diào)度器,還用于按照虛擬機(jī)的級(jí)別從高到低的順序設(shè)置虛擬處理器在物理處理器的調(diào)度隊(duì)列中的位置。本發(fā)明的負(fù)載均衡調(diào)度方案可以優(yōu)先VCPU的遷移,提高提高虛擬機(jī)平臺(tái)的資源管理效率,提高資源利用率。
圖1是基于最高負(fù)載的進(jìn)行負(fù)載均衡調(diào)度的方法的流程圖;圖2是基于最高負(fù)載的進(jìn)行負(fù)載均衡調(diào)度的設(shè)備的結(jié)構(gòu)圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文中將結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。本發(fā)明中為每個(gè)物理處理器設(shè)置一調(diào)度隊(duì)列,隊(duì)列中包括一個(gè)或多個(gè)虛擬處理器。為每個(gè)虛擬處理器設(shè)置一調(diào)度值,此調(diào)度值與虛擬處理器獲得的物理處理器的時(shí)間片的值是正相關(guān)關(guān)系。虛擬處理器的調(diào)度值載大,當(dāng)前為虛擬處理器分配的時(shí)間片越多。每次虛擬處理器調(diào)度之后,其調(diào)度值發(fā)生變化。物理處理器的負(fù)載值是物理處理器的調(diào)度隊(duì)列中所有虛擬處理器的調(diào)度值的和。如果一物理處理器的調(diào)度隊(duì)列中所有的虛擬處理器的調(diào)度值均為零則表示此物理處理器當(dāng)前空閑,負(fù)載值為0,其它物理處理器的負(fù)載值不為零,則表明當(dāng)前系統(tǒng)的負(fù)載不均衡。如圖1所示,基于最高負(fù)載的進(jìn)行負(fù)載均衡調(diào)度的方法包括:虛擬機(jī)調(diào)度器根據(jù)物理處理器的調(diào)度隊(duì)列中各虛擬處理器的調(diào)度值計(jì)算此物理處理器的負(fù)載值,當(dāng)一物理處理器的負(fù)載值為零時(shí),從負(fù)載值最大的物理處理器的調(diào)度隊(duì)列中選擇調(diào)度值最大的虛擬處理器將此虛擬處理器調(diào)配到此負(fù)載值為零的物理處理器的調(diào)度隊(duì)列中。虛擬機(jī)調(diào)度器為每個(gè)虛擬機(jī)分配W、c 二元數(shù)組,用戶可以手動(dòng)修改二元數(shù)組的值。根據(jù)VM (w,c)值為虛擬機(jī)處理器分配調(diào)度值T,w控制相對(duì)獲得量,c控制上線值。。虛擬處理器的屬性中還可以包括是否能夠調(diào)配一項(xiàng);例如為每個(gè)VCPU設(shè)置一個(gè)標(biāo)志位cpu_flag可以控制VCPU只能運(yùn)行在哪個(gè)PCPU上,可以根據(jù)具體應(yīng)用和用戶需求有關(guān)進(jìn)行設(shè)置用于限制VCPU的遷移,一般情況下默認(rèn)為不做此限制。虛擬處理器的屬性中包括此項(xiàng)時(shí),上述方法還包括:在負(fù)載值最大的物理處理器的調(diào)度隊(duì)列中選擇出調(diào)度值最大的虛擬處理器后,判斷此虛擬處理器的屬性為能夠調(diào)配時(shí),將此虛擬處理器調(diào)配到此負(fù)載值為零的物理處理器的調(diào)度隊(duì)列中;判斷此虛擬處理器的屬性為不能夠調(diào)配時(shí),執(zhí)行一次或多次在未作為選擇目標(biāo)的其它物理處理器中選擇負(fù)載值最大的物理處理器并判斷此虛擬處理器的屬性的步驟,直至選擇到在未作為選擇目標(biāo)的其它物理處理器中負(fù)載值最大的物理處理器并且其調(diào)度隊(duì)列中調(diào)度值最大的虛擬處理器的調(diào)度值為能夠調(diào)配后,將此虛擬處理器調(diào)配到負(fù)載值為零的物理處理器的調(diào)度隊(duì)列中。當(dāng)一物理處理器的負(fù)載值為零并觸發(fā)均衡操作后的具體實(shí)現(xiàn)中,可以(I)首先復(fù)制一份臨時(shí)物理處理器列表,(2 )檢測(cè)列表中物理處理器的負(fù)載值,從負(fù)載值最大的物理處理器的調(diào)度隊(duì)列中選擇調(diào)度值最大的虛擬處理器,(3)如果選到能夠調(diào)配的虛擬處理器,則將此虛擬處理器調(diào)度到負(fù)載值為O的物理處理器中;否則,從臨時(shí)列表中刪除當(dāng)前物理處理器,重新返回步驟(2),以此循環(huán),直至選擇到能夠調(diào)配的虛擬處理器。虛擬處理器的調(diào)度值大于零時(shí)此虛擬處理器的狀態(tài)為工作狀態(tài),虛擬處理器的調(diào)度值等于零時(shí)此虛擬處理器的狀態(tài)為非工作狀態(tài);處于工作狀態(tài)的虛擬處理器的級(jí)別高于處于非工作狀態(tài)的虛擬處理器的級(jí)別;虛擬機(jī)調(diào)度器按照虛擬機(jī)的級(jí)別從高到低的順序設(shè)置虛擬處理器在物理處理器的調(diào)度隊(duì)列中的位置。在物理處理器的調(diào)度隊(duì)列中,處于工作狀態(tài)的虛擬處理器排在調(diào)度隊(duì)列的前半部分,處于非工作狀態(tài)的虛擬處理器排在調(diào)度隊(duì)列的后半部分。將新的虛擬處理器插入調(diào)度隊(duì)列的規(guī)則是:將處于工作狀態(tài)的虛擬處理器放入調(diào)度隊(duì)列中與此新的虛擬處理器同級(jí)別的虛擬處理器的后面,將處于非工作狀態(tài)的虛擬處理器放入調(diào)度隊(duì)列的末尾。例如:例如可以遍歷調(diào)度隊(duì)列中處于工作狀態(tài)的虛擬處理器并將其插入到最后一個(gè)虛擬處理器的后面。隨著任務(wù)的執(zhí)行,某一虛擬處理器的調(diào)度值耗完,即此虛擬處理器轉(zhuǎn)為非工作狀態(tài),則將此虛擬處理器放入調(diào)度隊(duì)列的末尾。具體實(shí)施例當(dāng)前系統(tǒng)中共有4個(gè)物理處理器:PCPU1、PCPU2、PCPU3、PCPU4。當(dāng)前PCPUl的調(diào)度隊(duì)列中已無處于工作狀態(tài)的VCPU,即PCPUl的調(diào)度隊(duì)列中各VCPU的調(diào)度值都消耗完畢均為非工作狀態(tài)。虛擬機(jī)調(diào)度器檢測(cè)到PCPUl的負(fù)載值為O后,觸發(fā)負(fù)載均衡的處理過程,查看其他PCPU的負(fù)載情況,其中,PCPU2調(diào)度隊(duì)列包括VCPU21 (100)、VCPU22 (50)、VCPU23 (50)、VCPU24 (O)。PCPU3 調(diào)度隊(duì)列有 VCPU31 (50)、VCPU32 (50)、VCPU33 (O)、VCPU34 (O)。PCPU4 調(diào)度隊(duì)列有VCPU41 (100)、VCPU42(0)、VCPU43(0)、VCPU44(0)。括號(hào)內(nèi)為相應(yīng)虛擬處理機(jī)的調(diào)度值。按照本發(fā)明的方法,選擇負(fù)載最大的PCPU即PCPU2中的調(diào)度值最大的VCPU即VCPU21,并將其遷入到PCPUl的調(diào)度隊(duì)列中的最前端位置,這樣PCPUl的調(diào)度隊(duì)列中包含一個(gè)調(diào)度值為100的VCPU,經(jīng)過相同的時(shí)間片后,四個(gè)PCPU可以同時(shí)將各自調(diào)度隊(duì)列中調(diào)度值消耗完畢。如果未使用本發(fā)明的方法,例如未在負(fù)載均衡時(shí)選擇最大負(fù)載的PCPU上的VCPU,例如選擇了 PCPU3中的VCPU31(50)并將其遷移到PCPUl的調(diào)度隊(duì)列中,經(jīng)過相同的時(shí)間片,各PCPU消耗了 50個(gè)調(diào)度值后,PCPUl和PCPU3的負(fù)載均為O。此時(shí)再次需要進(jìn)行負(fù)載均衡。這樣不僅增加了 VCPU的遷移次數(shù),還給系統(tǒng)帶來一些不必要的資源消耗。所以執(zhí)行負(fù)載均衡時(shí),如果選擇負(fù)載較小的PCPU并在此PCPU上選擇VCPU,會(huì)造成負(fù)載較小的PCI3U很快沒有可運(yùn)行的VCPU,再次觸發(fā)負(fù)載均衡,引發(fā)當(dāng)前系統(tǒng)對(duì)其他PCPU調(diào)度隊(duì)列VCPU的遍歷、選擇、遷移等動(dòng)作的發(fā)生,消耗系統(tǒng)資源。如圖2所示,基于最高負(fù)載的進(jìn)行負(fù)載均衡調(diào)度的設(shè)備包括虛擬機(jī)調(diào)度器和一個(gè)以上物理處理器。虛擬機(jī)調(diào)度器用于根據(jù)物理處理器的調(diào)度隊(duì)列中各虛擬處理器的調(diào)度值計(jì)算此物理處理器的負(fù)載值,當(dāng)一物理處理器的負(fù)載值為零時(shí),從負(fù)載值最大的物理處理器的調(diào)度隊(duì)列中選擇調(diào)度值最大的虛擬處理器將此虛擬處理器調(diào)配到此負(fù)載值為零的物理處理器的調(diào)度隊(duì)列中。
虛擬處理器的屬性中包括是否能夠調(diào)配一項(xiàng)時(shí),虛擬機(jī)調(diào)度器還用于在負(fù)載值最大的物理處理器的調(diào)度隊(duì)列中選擇出調(diào)度值最大的虛擬處理器后,判斷此虛擬處理器的屬性為能夠調(diào)配時(shí),將此虛擬處理器調(diào)配到此負(fù)載值為零的物理處理器的調(diào)度隊(duì)列中;判斷此虛擬處理器的屬性為不能夠調(diào)配時(shí),并一次或多次執(zhí)行在未作為選擇目標(biāo)的其它物理處理器中選擇負(fù)載值最大的物理處理器并判斷此虛擬處理器的屬性的步驟,直至選擇到在未作為選擇目標(biāo)的其它物理處理器中負(fù)載值最大的物理處理器并且其調(diào)度隊(duì)列中調(diào)度值最大的虛擬處理器的調(diào)度值為能夠調(diào)配后,將此虛擬處理器調(diào)配到負(fù)載值為零的物理處理器的調(diào)度隊(duì)列中。物理處理器的負(fù)載值是所述物理處理器的調(diào)度隊(duì)列中所有虛擬處理器的調(diào)度值的和。虛擬處理器的調(diào)度值與所述虛擬處理器獲得的物理處理器的時(shí)間片的值是正相關(guān)關(guān)系。虛擬處理器的調(diào)度值大于零時(shí)此虛擬處理器的狀態(tài)為工作狀態(tài),虛擬處理器的調(diào)度值等于零時(shí)此虛擬處理器的狀態(tài)為非工作狀態(tài);處于工作狀態(tài)的虛擬處理器的級(jí)別高于處于非工作狀態(tài)的虛擬處理器的級(jí)別;虛擬機(jī)調(diào)度器還用于按照虛擬機(jī)的級(jí)別從高到低的順序設(shè)置虛擬處理器在物理處理器的調(diào)度隊(duì)列中的位置。綜上所述,本方法可盡量減少虛擬化平臺(tái)上負(fù)載均衡時(shí)VCPU遷移次數(shù),減少不必要資源消耗,把資源更多的使用在實(shí)際的計(jì)算功能上。當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關(guān)硬件完成,所述程序可以存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如只讀存儲(chǔ)器、磁盤或光盤等。可選地,上述實(shí)施例的全部或部分步驟也可以使用一個(gè)或多個(gè)集成電路來實(shí)現(xiàn)。相應(yīng)地,上述實(shí)施例中的各模塊/單元可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。
權(quán)利要求
1.一種基于最高負(fù)載的進(jìn)行負(fù)載均衡調(diào)度的方法,其特征在于, 虛擬機(jī)調(diào)度器根據(jù)物理處理器的調(diào)度隊(duì)列中各虛擬處理器的調(diào)度值計(jì)算此物理處理器的負(fù)載值,當(dāng)一物理處理器的負(fù)載值為零時(shí),從負(fù)載值最大的物理處理器的調(diào)度隊(duì)列中選擇調(diào)度值最大的虛擬處理器將此虛擬處理器調(diào)配到此負(fù)載值為零的物理處理器的調(diào)度隊(duì)列中。
2.如權(quán)利要求1所述的方法,其特征在于, 所述虛擬處理器的屬性中包括是否能夠調(diào)配一項(xiàng); 所述方法還包括:在負(fù)載值最大的物理處理器的調(diào)度隊(duì)列中選擇出調(diào)度值最大的虛擬處理器后,判斷此虛擬處理器的屬性為能夠調(diào)配時(shí),將此虛擬處理器調(diào)配到此負(fù)載值為零的物理處理器的調(diào)度隊(duì)列中;判斷此虛擬處理器的屬性為不能夠調(diào)配時(shí),執(zhí)行一次或多次在未作為選擇目標(biāo)的其它物理處理器中選擇負(fù)載值最大的物理處理器并判斷此虛擬處理器的屬性的步驟,直至選擇到在未作為選擇目標(biāo)的其它物理處理器中負(fù)載值最大的物理處理器并且其調(diào)度隊(duì)列中調(diào)度值最大的虛擬處理器的調(diào)度值為能夠調(diào)配后,將此虛擬處理器調(diào)配到負(fù)載值為零的物理處理器的調(diào)度隊(duì)列中。
3.如權(quán)利要求1或2所述的方法,其特征在于, 所述物理處理器的負(fù)載值是所述物理處理器的調(diào)度隊(duì)列中所有虛擬處理器的調(diào)度值的和。
4.如權(quán)利要求1或2所述的方法,其特征在于, 所述虛擬處理器的調(diào)度值與所述虛擬處理器獲得的物理處理器的時(shí)間片的值是正相關(guān)關(guān)系。
5.如權(quán)利要求1或2所述的`方法,其特征在于, 虛擬處理器的調(diào)度值大于零時(shí)此虛擬處理器的狀態(tài)為工作狀態(tài),虛擬處理器的調(diào)度值等于零時(shí)此虛擬處理器的狀態(tài)為非工作狀態(tài);處于工作狀態(tài)的虛擬處理器的級(jí)別高于處于非工作狀態(tài)的虛擬處理器的級(jí)別; 所述虛擬機(jī)調(diào)度器按照虛擬機(jī)的級(jí)別從高到低的順序設(shè)置虛擬處理器在物理處理器的調(diào)度隊(duì)列中的位置。
6.一種基于最高負(fù)載的進(jìn)行負(fù)載均衡調(diào)度的設(shè)備,其特征在于, 所述設(shè)備包括虛擬機(jī)調(diào)度器和一個(gè)以上物理處理器; 所述虛擬機(jī)調(diào)度器,用于根據(jù)物理處理器的調(diào)度隊(duì)列中各虛擬處理器的調(diào)度值計(jì)算此物理處理器的負(fù)載值,當(dāng)一物理處理器的負(fù)載值為零時(shí),從負(fù)載值最大的物理處理器的調(diào)度隊(duì)列中選擇調(diào)度值最大的虛擬處理器將此虛擬處理器調(diào)配到此負(fù)載值為零的物理處理器的調(diào)度隊(duì)列中。
7.如權(quán)利要求6所述的設(shè)備,其特征在于, 所述虛擬處理器的屬性中包括是否能夠調(diào)配一項(xiàng); 所述虛擬機(jī)調(diào)度器,還用于在負(fù)載值最大的物理處理器的調(diào)度隊(duì)列中選擇出調(diào)度值最大的虛擬處理器后,判斷此虛擬處理器的屬性為能夠調(diào)配時(shí),將此虛擬處理器調(diào)配到此負(fù)載值為零的物理處理器的調(diào)度隊(duì)列中;判斷此虛擬處理器的屬性為不能夠調(diào)配時(shí),并一次或多次執(zhí)行在未作為選擇目標(biāo)的其它物理處理器中選擇負(fù)載值最大的物理處理器并判斷此虛擬處理器的屬性的步驟,直至選擇到在未作為選擇目標(biāo)的其它物理處理器中負(fù)載值最大的物理處理器并且其調(diào)度隊(duì)列中調(diào)度值最大的虛擬處理器的調(diào)度值為能夠調(diào)配后,將此虛擬處理器調(diào)配到負(fù)載值為零的物理處理器的調(diào)度隊(duì)列中。
8.如權(quán)利要求6或7所述的設(shè)備,其特征在于, 所述物理處理器的負(fù)載值是所述物理處理器的調(diào)度隊(duì)列中所有虛擬處理器的調(diào)度值的和。
9.如 權(quán)利要求6或7所述的設(shè)備,其特征在于, 所述虛擬處理器的調(diào)度值與所述虛擬處理器獲得的物理處理器的時(shí)間片的值是正相關(guān)關(guān)系。
10.如權(quán)利要求6或7所述的設(shè)備,其特征在于, 虛擬處理器的調(diào)度值大于零時(shí)此虛擬處理器的狀態(tài)為工作狀態(tài),虛擬處理器的調(diào)度值等于零時(shí)此虛擬處理器的狀態(tài)為非工作狀態(tài);處于工作狀態(tài)的虛擬處理器的級(jí)別高于處于非工作狀態(tài)的虛擬處理器的級(jí)別; 所述虛擬機(jī)調(diào)度器,還用于按照虛擬機(jī)的級(jí)別從高到低的順序設(shè)置虛擬處理器在物理處理器的調(diào)度隊(duì)列中的位置。
全文摘要
本發(fā)明公開了一種基于最高負(fù)載的進(jìn)行負(fù)載均衡調(diào)度的方法及設(shè)備,虛擬機(jī)調(diào)度器根據(jù)物理處理器的調(diào)度隊(duì)列中各虛擬處理器的調(diào)度值計(jì)算此物理處理器的負(fù)載值,當(dāng)一物理處理器的負(fù)載值為零時(shí),從負(fù)載值最大的物理處理器的調(diào)度隊(duì)列中選擇調(diào)度值最大的虛擬處理器將此虛擬處理器調(diào)配到此負(fù)載值為零的物理處理器的調(diào)度隊(duì)列中。本發(fā)明的負(fù)載均衡調(diào)度方案可以優(yōu)先VCPU的遷移,提高提高虛擬機(jī)平臺(tái)的資源管理效率,提高資源利用率。
文檔編號(hào)G06F9/48GK103106112SQ20131004597
公開日2013年5月15日 申請(qǐng)日期2013年2月5日 優(yōu)先權(quán)日2013年2月5日
發(fā)明者常建忠 申請(qǐng)人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司