一種資源獨(dú)占及排它的提升虛擬機(jī)計(jì)算能力的方法及裝置制造方法
【專利摘要】本發(fā)明公開(kāi)了一種資源獨(dú)占及排它的提升虛擬機(jī)計(jì)算能力的方法及裝置,所述方法包括:步驟1.通過(guò)任務(wù)下發(fā)系統(tǒng)下發(fā)一個(gè)任務(wù),任務(wù)中描述當(dāng)前虛擬機(jī)是否需要高性能計(jì)算能力;步驟2.任務(wù)執(zhí)行系統(tǒng)接收到創(chuàng)建虛擬機(jī)信息后,調(diào)用創(chuàng)建虛擬機(jī)模塊,根據(jù)前端輸入數(shù)據(jù)完成虛擬機(jī)的創(chuàng)建;步驟3.虛擬機(jī)創(chuàng)建完畢以后,根據(jù)需求,如果需要獨(dú)占指定的CPU,則產(chǎn)生一個(gè)新的請(qǐng)求調(diào)用CPU綁定模塊,通過(guò)所述CPU綁定模塊完成虛擬機(jī)VCPU的綁定。通過(guò)本發(fā)明,在一些特殊場(chǎng)景下,比如虛擬機(jī)中運(yùn)行oracle數(shù)據(jù)庫(kù),需要保證虛擬機(jī)的IO與并發(fā)能力,本發(fā)明通過(guò)改變CPU處理進(jìn)程的方式,可以提升虛擬機(jī)的處理能力。
【專利說(shuō)明】一種資源獨(dú)占及排它的提升虛擬機(jī)計(jì)算能力的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及虛擬化、操作系統(tǒng)、內(nèi)核調(diào)度等【技術(shù)領(lǐng)域】,特別涉及一種資源獨(dú)占及排它的提升虛擬機(jī)計(jì)算能力的方法及裝置。
【背景技術(shù)】
[0002]虛擬化技術(shù)是將實(shí)體資源虛擬化后提供給使用者的技術(shù),由于其所能夠帶來(lái)的巨大利益,正受到全世界的關(guān)注。虛擬化是指計(jì)算元件在虛擬的基礎(chǔ)上而不是真實(shí)的基礎(chǔ)上運(yùn)行。虛擬化技術(shù)可以擴(kuò)大硬件的容量,簡(jiǎn)化軟件的重新配置過(guò)程。CPU的虛擬化技術(shù)可以將單CPU模擬成多CPU并行,允許一個(gè)平臺(tái)同時(shí)運(yùn)行多個(gè)操作系統(tǒng),并且應(yīng)用程序都可以在相互獨(dú)立的空間內(nèi)運(yùn)行而互不影響,從而顯著提高計(jì)算機(jī)的工作效率。
[0003]通常情況下,在SMP系統(tǒng)中,Linux內(nèi)核的進(jìn)程調(diào)度器根據(jù)自有的調(diào)度策略將系統(tǒng)中的一個(gè)進(jìn)程調(diào)度到某個(gè)CPU上執(zhí)行。一個(gè)進(jìn)程在前一個(gè)執(zhí)行時(shí)間是在cpuM (M為系統(tǒng)中的某CPU的ID)上運(yùn)行,而在后一個(gè)執(zhí)行時(shí)間是在cpuN (N為系統(tǒng)中另一 CPU的ID)上運(yùn)行。這樣的情況在Linux中是很可能發(fā)生的,因?yàn)長(zhǎng)inux對(duì)進(jìn)程執(zhí)行的調(diào)度采用時(shí)間片法貝U (即進(jìn)程用完自己的時(shí)間片即被暫停執(zhí)行),而默認(rèn)情況下,一個(gè)普通進(jìn)程或線程的處理器親和性是在所有可用的CPU上,有可能在它們之中的任何一個(gè)CPU (包括超線程)上執(zhí)行。
[0004]可見(jiàn),由于CPU資源并不被獨(dú)立占用,因而其可能受宿主機(jī)中其他客戶機(jī)的負(fù)載水平的影響,影響客戶機(jī)整體的處理能力提升。
[0005]此外,由于CPU會(huì)和每個(gè)硬件進(jìn)行通訊,當(dāng)一個(gè)硬件發(fā)出一個(gè)中斷請(qǐng)求后,CPU會(huì)暫停當(dāng)前的任務(wù)處理中斷請(qǐng)求,如果頻發(fā)的處理中斷請(qǐng)求,也將導(dǎo)致其處理能力降低。
[0006]進(jìn)程的處理器親和性(Processor Affinity),即是CPU的綁定設(shè)置,是指將進(jìn)程綁定到特定的一個(gè)或多個(gè)CPU上去執(zhí)行,而不允許調(diào)度到其它的CPU上。Linux內(nèi)核對(duì)進(jìn)程的調(diào)度算法也是遵守進(jìn)程的處理器親和性設(shè)置的。設(shè)置進(jìn)程的處理器親和性帶來(lái)的好處是可以減少進(jìn)程在多個(gè)CPU之間交換運(yùn)行帶來(lái)的緩存命中失效(cache missing),從該進(jìn)程運(yùn)行的角度來(lái)看,可能帶來(lái)一定程度上的性能提升。
【發(fā)明內(nèi)容】
[0007]鑒于現(xiàn)有技術(shù)中存在的問(wèn)題,本發(fā)明目的在于提供一種資源獨(dú)占及排它的提升虛擬機(jī)計(jì)算能力的方法及裝置,在一些特殊場(chǎng)景下,比如虛擬機(jī)中運(yùn)行oracle數(shù)據(jù)庫(kù),需要保證虛擬機(jī)的IO與并發(fā)能力,本發(fā)明通過(guò)改變CPU處理進(jìn)程的方式,可以提升虛擬機(jī)的處理能力。
[0008]根據(jù)本發(fā)明的一個(gè)方面,提供了一種資源獨(dú)占及排它的提升虛擬機(jī)計(jì)算能力的方法,其特征在于包括:
[0009]步驟1、通過(guò)任務(wù)下發(fā)系統(tǒng)下發(fā)一個(gè)任務(wù),任務(wù)中描述當(dāng)前虛擬機(jī)是否需要高性能計(jì)算能力;
[0010]步驟2、任務(wù)執(zhí)行系統(tǒng)接收到創(chuàng)建虛擬機(jī)信息后,調(diào)用創(chuàng)建虛擬機(jī)模塊,根據(jù)前端輸入數(shù)據(jù)完成虛擬機(jī)的創(chuàng)建;
[0011]步驟3、虛擬機(jī)創(chuàng)建完畢以后,根據(jù)需求,如果需要獨(dú)占指定的CPU,則產(chǎn)生一個(gè)新的請(qǐng)求調(diào)用CPU綁定模塊,通過(guò)所述CPU綁定模塊完成虛擬機(jī)VCPU的綁定。
[0012]優(yōu)選的,所述方法還包括:
[0013]步驟4、系統(tǒng)通過(guò)中斷監(jiān)控模塊啟動(dòng)一個(gè)系統(tǒng)級(jí)守護(hù)進(jìn)程,時(shí)刻監(jiān)控被隔離CPU的中斷分布信息,實(shí)時(shí)采集并對(duì)中斷分布進(jìn)行分析,如結(jié)果未達(dá)到預(yù)期則調(diào)用中斷平均分布模塊,來(lái)完成對(duì)CPU負(fù)載的均衡。
[0014]優(yōu)選的,所述任務(wù)下發(fā)系統(tǒng)是前端應(yīng)用。
[0015]優(yōu)選的,所述CPU綁定模塊動(dòng)態(tài)采集虛擬機(jī)的運(yùn)行進(jìn)程及線程,并調(diào)用開(kāi)發(fā)的系統(tǒng)API,來(lái)控制硬件CPU的工作。
[0016]優(yōu)選的,所述被綁定的VCPU為一個(gè)或多個(gè)。
[0017]根據(jù)本發(fā)明的另一方面,提供了一種資源獨(dú)占及排它的提升虛擬機(jī)計(jì)算能力的裝置,其特征在于包括:
[0018]任務(wù)下發(fā)系統(tǒng),用于下發(fā)任務(wù),任務(wù)中描述當(dāng)前虛擬機(jī)是否需要高性能計(jì)算能力;
[0019]任務(wù)執(zhí)行系統(tǒng),包括:
[0020]創(chuàng)建虛擬機(jī)模塊,用于在所述任務(wù)執(zhí)行系統(tǒng)接收到創(chuàng)建虛擬機(jī)信息后,被調(diào)用來(lái)根據(jù)前端輸入數(shù)據(jù)完成虛擬機(jī)的創(chuàng)建;
[0021]CPU綁定模塊,用于在虛擬機(jī)創(chuàng)建完畢以后,判斷需要獨(dú)占指定的CPU時(shí)被調(diào)用,完成虛擬機(jī)VCPU的綁定。
[0022]優(yōu)選的,所述裝置還包括:
[0023]中斷監(jiān)控模塊,用于啟動(dòng)一個(gè)系統(tǒng)級(jí)守護(hù)進(jìn)程,時(shí)刻監(jiān)控被隔離CPU的中斷分布信息,實(shí)時(shí)采集并對(duì)中斷分布進(jìn)行分析,如結(jié)果未達(dá)到預(yù)期則調(diào)用中斷平均分布模塊,來(lái)完成對(duì)CPU負(fù)載的均衡。
[0024]優(yōu)選的,所述任務(wù)下發(fā)系統(tǒng)是前端應(yīng)用。
[0025]優(yōu)選的,所述CPU綁定模塊動(dòng)態(tài)采集虛擬機(jī)的運(yùn)行進(jìn)程及線程,并調(diào)用開(kāi)發(fā)的系統(tǒng)API,來(lái)控制硬件CPU的工作。
[0026]優(yōu)選的,所述被綁定的VCPU為一個(gè)或多個(gè)。
【專利附圖】
【附圖說(shuō)明】
[0027]圖1例示了本發(fā)明實(shí)施例一種資源獨(dú)占及排它的提升虛擬機(jī)計(jì)算能力的方法的流程圖;
[0028]圖2例示了本發(fā)明實(shí)施例一種資源獨(dú)占及排它的提升虛擬機(jī)計(jì)算能力的裝置結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0029]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)更加明顯易懂,下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。
[0030]在建立虛擬機(jī)之前,通常會(huì)根據(jù)虛擬機(jī)的應(yīng)用類(lèi)型以及其它的一些性能指標(biāo)分配給虛擬機(jī)一定數(shù)量的VCPU。
[0031]圖1為本發(fā)明實(shí)施例一種資源獨(dú)占及排它的提升虛擬機(jī)計(jì)算能力的方法的流程圖,如圖1所示,所述方法包括:
[0032]步驟1、通過(guò)任務(wù)下發(fā)系統(tǒng)下發(fā)一個(gè)任務(wù),任務(wù)中描述當(dāng)前虛擬機(jī)是否需要高性能計(jì)算能力;
[0033]此處,所述任務(wù)下發(fā)系統(tǒng)例如可以是WEB、app等前端應(yīng)用。
[0034]步驟2、任務(wù)執(zhí)行系統(tǒng)接收到創(chuàng)建虛擬機(jī)信息后,調(diào)用創(chuàng)建虛擬機(jī)模塊,根據(jù)前端輸入數(shù)據(jù),如CPU數(shù)目,內(nèi)存大小,磁盤(pán)大小等信息,完成虛擬機(jī)的創(chuàng)建;
[0035]步驟3、虛擬機(jī)創(chuàng)建完畢以后,根據(jù)需求,如果需要獨(dú)占指定的CPU,則產(chǎn)生一個(gè)新的請(qǐng)求調(diào)用CPU綁定模塊,通過(guò)所述CPU綁定模塊完成虛擬機(jī)VCPU的綁定。
[0036]此處,所述被綁定的VCPU為一個(gè)或多個(gè)。
[0037]所述CPU綁定模塊的主要功能集中在與操作系統(tǒng)的交互,與硬件調(diào)度的交互上,可以動(dòng)態(tài)采集虛擬機(jī)的運(yùn)行進(jìn)程及線程,并調(diào)用開(kāi)發(fā)的系統(tǒng)API,來(lái)控制硬件CPU的工作。通過(guò)CPU綁定模塊完成虛擬機(jī)VCPU的綁定后,虛擬機(jī)則已經(jīng)運(yùn)行在被隔離的邏輯CPU之上。
[0038]通過(guò)上述步驟,可以實(shí)現(xiàn)任務(wù)在指定的CPU上獨(dú)占運(yùn)行,從而提升處理能力。
[0039]此外,本發(fā)明實(shí)施例優(yōu)選的還可包括:
[0040]步驟4、系統(tǒng)通過(guò)中斷監(jiān)控模塊啟動(dòng)一個(gè)系統(tǒng)級(jí)守護(hù)進(jìn)程,時(shí)刻監(jiān)控被隔離CPU的中斷分布信息,實(shí)時(shí)采集并對(duì)中斷分布進(jìn)行分析,如結(jié)果未達(dá)到預(yù)期則調(diào)用中斷平均分布模塊,來(lái)完成對(duì)CPU負(fù)載的均衡。
[0041]通過(guò)步驟4,使得本發(fā)明又具備了平均分布中斷的優(yōu)點(diǎn),從而最大限度地提升CPU的處理能力。
[0042]以上通過(guò)方法實(shí)施例的方式介紹了本發(fā)明,除此之外,本發(fā)明還包括相關(guān)的產(chǎn)品實(shí)施方式。
[0043]圖2例示了本發(fā)明實(shí)施例一種資源獨(dú)占及排它的提升虛擬機(jī)計(jì)算能力的裝置結(jié)構(gòu)圖,如圖2所示,所述裝置包括:
[0044]任務(wù)下發(fā)系統(tǒng),用于下發(fā)任務(wù),任務(wù)中描述當(dāng)前虛擬機(jī)是否需要高性能計(jì)算能力;
[0045]此處,所述任務(wù)下發(fā)系統(tǒng)例如可以是WEB、app等前端應(yīng)用。
[0046]任務(wù)執(zhí)行系統(tǒng),包括:
[0047]創(chuàng)建虛擬機(jī)模塊,用于在所述任務(wù)執(zhí)行系統(tǒng)接收到創(chuàng)建虛擬機(jī)信息后,被調(diào)用來(lái)根據(jù)前端輸入數(shù)據(jù),如CPU數(shù)目,內(nèi)存大小,磁盤(pán)大小等信息,完成虛擬機(jī)的創(chuàng)建;
[0048]CPU綁定模塊,用于在虛擬機(jī)創(chuàng)建完畢以后,判斷需要獨(dú)占指定的CPU時(shí)被調(diào)用,完成虛擬機(jī)VCPU的綁定。
[0049]此處,所述被綁定的VCPU為一個(gè)或多個(gè)。
[0050]所述CPU綁定模塊的主要功能集中在與操作系統(tǒng)的交互,與硬件調(diào)度的交互上,可以動(dòng)態(tài)采集虛擬機(jī)的運(yùn)行進(jìn)程及線程,并調(diào)用開(kāi)發(fā)的系統(tǒng)API,來(lái)控制硬件CPU的工作。通過(guò)CPU綁定模塊完成虛擬機(jī)VCPU的綁定后,虛擬機(jī)則已經(jīng)運(yùn)行在被隔離的邏輯CPU之上。[0051]通過(guò)上述結(jié)構(gòu),可以實(shí)現(xiàn)任務(wù)在指定的CPU上獨(dú)占運(yùn)行,從而提升處理能力。
[0052]此外,本發(fā)明實(shí)施例優(yōu)選的還可包括:
[0053]中斷監(jiān)控模塊,用于啟動(dòng)一個(gè)系統(tǒng)級(jí)守護(hù)進(jìn)程,時(shí)刻監(jiān)控被隔離CPU的中斷分布信息,實(shí)時(shí)采集并對(duì)中斷分布進(jìn)行分析,如結(jié)果未達(dá)到預(yù)期則調(diào)用中斷平均分布模塊,來(lái)完成對(duì)CPU負(fù)載的均衡。
[0054]通過(guò)上述中斷監(jiān)控模塊,使得本發(fā)明又具備了平均分布中斷的優(yōu)點(diǎn),從而最大限度地提升CPU的處理能力。
[0055]以上是對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行的詳細(xì)描述,但本領(lǐng)域的普通技術(shù)人員應(yīng)該意識(shí)到,在本發(fā)明的范圍內(nèi)和精神指導(dǎo)下,各種改進(jìn)、添加和替換都是可能的,例如使用可實(shí)現(xiàn)同種功能目的的算法、使用不同的編程語(yǔ)言(如C、C++、Java等)實(shí)現(xiàn)等。這些都在本發(fā)明的權(quán)利要求所限定的保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種資源獨(dú)占及排它的提升虛擬機(jī)計(jì)算能力的方法,其特征在于包括: 步驟1、通過(guò)任務(wù)下發(fā)系統(tǒng)下發(fā)一個(gè)任務(wù),任務(wù)中描述當(dāng)前虛擬機(jī)是否需要高性能計(jì)算能力; 步驟2、任務(wù)執(zhí)行系統(tǒng)接收到創(chuàng)建虛擬機(jī)信息后,調(diào)用創(chuàng)建虛擬機(jī)模塊,根據(jù)前端輸入數(shù)據(jù)完成虛擬機(jī)的創(chuàng)建; 步驟3、虛擬機(jī)創(chuàng)建完畢以后,根據(jù)需求,如果需要獨(dú)占指定的CPU,則產(chǎn)生一個(gè)新的請(qǐng)求調(diào)用CPU綁定模塊,通過(guò)所述CPU綁定模塊完成虛擬機(jī)VCPU的綁定。
2.如權(quán)利要求1所述方法,其特征在于,所述方法還包括: 步驟4、系統(tǒng)通過(guò)中斷監(jiān)控模塊啟動(dòng)一個(gè)系統(tǒng)級(jí)守護(hù)進(jìn)程,時(shí)刻監(jiān)控被隔離CPU的中斷分布信息,實(shí)時(shí)采集并對(duì)中斷分布進(jìn)行分析,如結(jié)果未達(dá)到預(yù)期則調(diào)用中斷平均分布模塊,來(lái)完成對(duì)CPU負(fù)載的均衡。
3.如權(quán)利要求1所述方法,其特征在于: 所述任務(wù)下發(fā)系統(tǒng)是前端應(yīng)用。
4.如權(quán)利要求1所述方法,其特征在于: 所述CPU綁定模塊動(dòng)態(tài)采集虛擬機(jī)的運(yùn)行進(jìn)程及線程,并調(diào)用開(kāi)發(fā)的系統(tǒng)API,來(lái)控制硬件CPU的工作。
5.如權(quán)利要求1所述方法,其特征在于: 所述被綁定的VCPU為一個(gè)或多個(gè)。
6.一種資源獨(dú)占及排它的提升虛擬機(jī)計(jì)算能力的裝置,其特征在于包括: 任務(wù)下發(fā)系統(tǒng),用于下發(fā)任務(wù),任務(wù)中描述當(dāng)前虛擬機(jī)是否需要高性能計(jì)算能力; 任務(wù)執(zhí)行系統(tǒng),包括: 創(chuàng)建虛擬機(jī)模塊,用于在所述任務(wù)執(zhí)行系統(tǒng)接收到創(chuàng)建虛擬機(jī)信息后,被調(diào)用來(lái)根據(jù)前端輸入數(shù)據(jù)完成虛擬機(jī)的創(chuàng)建; CPU綁定模塊,用于在虛擬機(jī)創(chuàng)建完畢以后,判斷需要獨(dú)占指定的CPU時(shí)被調(diào)用,完成虛擬機(jī)VCPU的綁定。
7.如權(quán)利要求6所述裝置,其特征在于,所述裝置還包括: 中斷監(jiān)控模塊,用于啟動(dòng)一個(gè)系統(tǒng)級(jí)守護(hù)進(jìn)程,時(shí)刻監(jiān)控被隔離CPU的中斷分布信息,實(shí)時(shí)采集并對(duì)中斷分布進(jìn)行分析,如結(jié)果未達(dá)到預(yù)期則調(diào)用中斷平均分布模塊,來(lái)完成對(duì)CPU負(fù)載的均衡。
8.如權(quán)利要求6所述裝置,其特征在于: 所述任務(wù)下發(fā)系統(tǒng)是前端應(yīng)用。
9.如權(quán)利要求6所述裝置,其特征在于: 所述CPU綁定模塊動(dòng)態(tài)采集虛擬機(jī)的運(yùn)行進(jìn)程及線程,并調(diào)用開(kāi)發(fā)的系統(tǒng)API,來(lái)控制硬件CPU的工作。
10.如權(quán)利要求6所述裝置,其特征在于: 所述被綁定的VCPU為一個(gè)或多個(gè)。
【文檔編號(hào)】G06F9/455GK103617071SQ201310634666
【公開(kāi)日】2014年3月5日 申請(qǐng)日期:2013年12月2日 優(yōu)先權(quán)日:2013年12月2日
【發(fā)明者】邵文韜 申請(qǐng)人:北京華勝天成科技股份有限公司