本發(fā)明涉及計(jì)算機(jī)虛擬化平臺(tái)技術(shù)領(lǐng)域,尤其涉及一種動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法及裝置。
背景技術(shù):
當(dāng)前的虛擬化平臺(tái)中只有虛擬機(jī)大頁(yè)開(kāi)啟與關(guān)閉的選項(xiàng),虛擬化平臺(tái)由于內(nèi)部系統(tǒng)多樣性,虛擬機(jī)業(yè)務(wù)壓力時(shí)段分布不均等情況,導(dǎo)致虛擬化平臺(tái)中內(nèi)存資源在運(yùn)行一段時(shí)候后,由于虛擬機(jī)大頁(yè)開(kāi)啟關(guān)閉不能實(shí)時(shí)變化,導(dǎo)致沒(méi)有開(kāi)啟大頁(yè)的虛擬機(jī),在需要開(kāi)啟大頁(yè)的時(shí)候不能開(kāi)啟;或者開(kāi)啟大頁(yè)后使得宿主機(jī)的內(nèi)存壓力增大,從而導(dǎo)致宿主機(jī)的運(yùn)行性能較差。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的是公開(kāi)一種內(nèi)存大頁(yè)調(diào)度處理方法及裝置,旨在開(kāi)啟虛擬機(jī)大頁(yè)的同時(shí)保證宿主機(jī)運(yùn)行的良好性能。
為實(shí)現(xiàn)上述目的,本發(fā)明提出一種動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法,所述動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法包括以下步驟:
獲取虛擬化平臺(tái)中未開(kāi)啟大頁(yè)的目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)所需的大頁(yè)運(yùn)行內(nèi)存值;
根據(jù)所述大頁(yè)運(yùn)行內(nèi)存值,預(yù)估在所述目標(biāo)虛擬機(jī)所在的第一宿主機(jī)中對(duì)所述目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)時(shí),所述第一宿主機(jī)的第一內(nèi)存預(yù)計(jì)占用率;
判斷所述第一內(nèi)存預(yù)計(jì)占用率是否大于第一預(yù)設(shè)值;
當(dāng)所述第一內(nèi)存預(yù)計(jì)占用率小于或等于所述第一預(yù)設(shè)值時(shí),控制所述目標(biāo)虛擬機(jī)在所述第一宿主機(jī)中開(kāi)啟大頁(yè)。
優(yōu)選地,所述動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法還包括:
當(dāng)所述第一內(nèi)存預(yù)計(jì)占用率大于所述第一預(yù)設(shè)值時(shí),獲取第二宿主機(jī)的內(nèi)存占用率;
根據(jù)所述第二宿主機(jī)的內(nèi)存占用率和所述大頁(yè)運(yùn)行內(nèi)存值,計(jì)算將所述目標(biāo)虛擬機(jī)置于所述第二宿主機(jī)中開(kāi)啟大頁(yè)運(yùn)行時(shí),所述第二宿主機(jī)的第二內(nèi)存預(yù)計(jì)占用率;
判斷各第二宿主機(jī)對(duì)應(yīng)的第二內(nèi)存預(yù)計(jì)占用率是否大于第二預(yù)設(shè)值;
將所述目標(biāo)虛擬機(jī)遷移至,所述第二內(nèi)存預(yù)計(jì)占用率小于或等于第二預(yù)設(shè)值的一第二宿主機(jī)中,并開(kāi)啟大頁(yè)。
優(yōu)選地,所述動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法還包括:
獲取虛擬化平臺(tái)中宿主機(jī)的內(nèi)存占用率大于第三預(yù)設(shè)值的第三宿主機(jī);
獲取所述第三宿主機(jī)中已經(jīng)開(kāi)啟大頁(yè)的待處理虛擬機(jī);
判斷所述虛擬化平臺(tái)中是否存在將所述待處理虛擬機(jī)運(yùn)行后,內(nèi)存占用率小于所述第一預(yù)設(shè)值的第四宿主機(jī);
若是,則將所述待處理虛擬機(jī)遷移至所述第四宿主機(jī)中;
若否,則關(guān)閉所述待處理虛擬機(jī)的大頁(yè)。
優(yōu)選地,所述關(guān)閉所述待處理虛擬機(jī)的大頁(yè)之前還包括:
判斷所述待處理虛擬機(jī)是否被授權(quán)可被關(guān)閉大頁(yè);
若是,則執(zhí)行所述關(guān)閉所述待處理虛擬機(jī)的大頁(yè)的步驟。
優(yōu)選地,在所述獲取虛擬化平臺(tái)中未開(kāi)啟大頁(yè)的目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)所需的大頁(yè)運(yùn)行內(nèi)存值之前包括:
每隔預(yù)設(shè)時(shí)間獲取所述虛擬化平臺(tái)的內(nèi)存占用率;
判斷所述內(nèi)存占用率的波動(dòng)是否超過(guò)第四預(yù)設(shè)值;
若否,則執(zhí)行所述獲取虛擬化平臺(tái)中未開(kāi)啟大頁(yè)的目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)所需的大頁(yè)運(yùn)行內(nèi)存值的步驟。
本發(fā)明還提出一種動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置,所述動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置包括:
第一獲取模塊,用于獲取虛擬化平臺(tái)中未開(kāi)啟大頁(yè)的目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)所需的大頁(yè)運(yùn)行內(nèi)存值;
第二獲取模塊,用于根據(jù)所述大頁(yè)運(yùn)行內(nèi)存值,預(yù)估在所述目標(biāo)虛擬機(jī)所在的第一宿主機(jī)中對(duì)所述目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)時(shí),所述第一宿主機(jī)的第一內(nèi)存預(yù)計(jì)占用率;
第一判斷模塊,用于判斷所述第一內(nèi)存預(yù)計(jì)占用率是否大于第一預(yù)設(shè)值;
開(kāi)啟模塊,用于當(dāng)所述第一內(nèi)存預(yù)計(jì)占用率小于或等于所述第一預(yù)設(shè)值時(shí),控制所述目標(biāo)虛擬機(jī)在所述第一宿主機(jī)中開(kāi)啟大頁(yè)。
優(yōu)選地,所述動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置還包括:
第三獲取模塊,用于當(dāng)所述第一內(nèi)存預(yù)計(jì)占用率大于所述第一預(yù)設(shè)值時(shí),獲取第二宿主機(jī)的內(nèi)存占用率;
計(jì)算模塊,用于根據(jù)所述第二宿主機(jī)的內(nèi)存占用率和所述大頁(yè)運(yùn)行內(nèi)存值,計(jì)算將所述目標(biāo)虛擬機(jī)置于所述第二宿主機(jī)中開(kāi)啟大頁(yè)運(yùn)行時(shí),所述第二宿主機(jī)的第二內(nèi)存預(yù)計(jì)占用率;
第二判斷模塊,用于判斷各第二宿主機(jī)對(duì)應(yīng)的第二內(nèi)存預(yù)計(jì)占用率是否大于第二預(yù)設(shè)值;
第一遷移模塊,用于將所述目標(biāo)虛擬機(jī)遷移至,所述第二內(nèi)存預(yù)計(jì)占用率小于或等于第二預(yù)設(shè)值的一第二宿主機(jī)中,并開(kāi)啟大頁(yè)。
優(yōu)選地,所述動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置還包括:
第四獲取模塊,用于獲取虛擬化平臺(tái)中宿主機(jī)的內(nèi)存占用率大于第三預(yù)設(shè)值的第三宿主機(jī);
第五獲取模塊,用于獲取所述第三宿主機(jī)中已經(jīng)開(kāi)啟大頁(yè)的待處理虛擬機(jī);
第三判斷模塊,用于判斷所述虛擬化平臺(tái)中是否存在將所述待處理虛擬機(jī)運(yùn)行后,內(nèi)存占用率小于所述第一預(yù)設(shè)值的第四宿主機(jī);
第二遷移模塊,用于當(dāng)所述虛擬化平臺(tái)中存在將所述待處理虛擬機(jī)運(yùn)行后,內(nèi)存占用率小于所述第一預(yù)設(shè)值的第四宿主機(jī)時(shí),將所述待處理虛擬機(jī)遷移至所述第四宿主機(jī)中;
第一關(guān)閉模塊,用于當(dāng)所述虛擬化平臺(tái)中不存在將所述待處理虛擬機(jī)運(yùn)行后,內(nèi)存占用率小于所述第一預(yù)設(shè)值的第四宿主機(jī)時(shí),關(guān)閉所述待處理虛擬機(jī)的大頁(yè)。
優(yōu)選地,所述動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置還包括:
第四判斷模塊,用于判斷所述待處理虛擬機(jī)是否被授權(quán)可被關(guān)閉大頁(yè);
第二關(guān)閉模塊,用于當(dāng)所述待處理虛擬機(jī)被授權(quán)可被關(guān)閉大頁(yè)時(shí),啟動(dòng)所述第一關(guān)閉模塊。
優(yōu)選地,所述動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置還包括:
第六獲取模塊,用于每隔預(yù)設(shè)時(shí)間獲取所述虛擬化平臺(tái)的內(nèi)存占用率;
第五判斷模塊,用于判斷所述內(nèi)存占用率的波動(dòng)是否超過(guò)第四預(yù)設(shè)值;
啟動(dòng)模塊,用于當(dāng)所述內(nèi)存占用率的波動(dòng)不超過(guò)第四預(yù)設(shè)值時(shí),啟動(dòng)所述第一獲取模塊。
在本發(fā)明中獲取虛擬化平臺(tái)中未開(kāi)啟大頁(yè)的目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)所需的大頁(yè)運(yùn)行內(nèi)存值;根據(jù)所述大頁(yè)運(yùn)行內(nèi)存值,預(yù)估在所述目標(biāo)虛擬機(jī)所在的第一宿主機(jī)中對(duì)所述目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)時(shí),所述第一宿主機(jī)的第一內(nèi)存預(yù)計(jì)占用率;判斷所述第一內(nèi)存預(yù)計(jì)占用率是否大于第一預(yù)設(shè)值;當(dāng)所述第一內(nèi)存預(yù)計(jì)占用率小于或等于所述第一預(yù)設(shè)值時(shí),開(kāi)啟控制所述目標(biāo)虛擬機(jī)在所述第一宿主機(jī)中開(kāi)啟大頁(yè)。根據(jù)要開(kāi)啟大頁(yè)的虛擬機(jī)所在的宿主機(jī)的內(nèi)存情況動(dòng)態(tài)地選擇開(kāi)啟所述虛擬機(jī)的內(nèi)存大頁(yè),開(kāi)啟虛擬機(jī)大頁(yè)的同時(shí)保證了宿主機(jī)良好的運(yùn)行性能,使得宿主機(jī)的內(nèi)存和性能達(dá)到平衡,提高了宿主機(jī)運(yùn)行的性能。
附圖說(shuō)明
圖1為本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法第一實(shí)施例的流程示意圖;
圖2為本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法第二實(shí)施例中遷移目標(biāo)虛擬機(jī)并開(kāi)啟大頁(yè)的細(xì)化流程示意圖;
圖3為本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法第三實(shí)施例中關(guān)閉待處理虛擬機(jī)大頁(yè)的細(xì)化流程示意圖;
圖4為本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法第四實(shí)施例中根據(jù)授權(quán)關(guān)閉待處理虛擬機(jī)大頁(yè)的細(xì)化流程示意圖;
圖5為本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法第五實(shí)施例的流程示意圖;
圖6為本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置第一實(shí)施例的功能模塊示意圖;
圖7為本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置第二實(shí)施例的功能模塊示意圖;
圖8為本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置第三實(shí)施例的功能模塊示意圖;
圖9為本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置第四實(shí)施例的功能模塊示意圖;
圖10為本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置第五實(shí)施例的功能模塊示意圖。
本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說(shuō)明。
具體實(shí)施方式
應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明提出一種動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法,請(qǐng)參照?qǐng)D1,本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法第一實(shí)施例包括以下步驟:
步驟S10,獲取虛擬化平臺(tái)中未開(kāi)啟大頁(yè)的目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)所需的大頁(yè)運(yùn)行內(nèi)存值;
當(dāng)開(kāi)啟虛擬機(jī)的大頁(yè)時(shí),會(huì)耗費(fèi)一部分內(nèi)存資源來(lái)進(jìn)行內(nèi)存大頁(yè)的管理,所述目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)所需的內(nèi)存值的大小與開(kāi)啟大頁(yè)的頁(yè)面大小有關(guān),同時(shí)開(kāi)啟大頁(yè)會(huì)使宿主機(jī)的部分動(dòng)態(tài)內(nèi)存為固化內(nèi)存,減少宿主機(jī)的空余內(nèi)存資源。在開(kāi)啟大頁(yè)前對(duì)開(kāi)啟大頁(yè)所需的內(nèi)存值進(jìn)行分析,避免盲目開(kāi)啟,保護(hù)了所述目標(biāo)虛擬機(jī)的性能,也提高了整個(gè)所述虛擬化平臺(tái)中內(nèi)存大頁(yè)處理效率。
步驟S20,根據(jù)所述大頁(yè)運(yùn)行內(nèi)存值,預(yù)估在所述目標(biāo)虛擬機(jī)所在的第一宿主機(jī)中對(duì)所述目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)時(shí),所述第一宿主機(jī)的第一內(nèi)存預(yù)計(jì)占用率;
在本實(shí)施例中所述大頁(yè)運(yùn)行內(nèi)存值等于所述目標(biāo)虛擬機(jī)未開(kāi)啟大頁(yè)時(shí)被分配的內(nèi)存值,加兩倍的要開(kāi)啟大頁(yè)的頁(yè)面大小。需要說(shuō)明的是,具體大頁(yè)運(yùn)行內(nèi)存值的分析方法應(yīng)當(dāng)根據(jù)實(shí)際問(wèn)題具體而定,不受本說(shuō)明書(shū)中的公式所限制,例如在有些實(shí)施例中,虛擬化平臺(tái)中的虛擬機(jī)在開(kāi)啟大頁(yè)時(shí)會(huì)使用大頁(yè)合并技術(shù),所計(jì)算出的大頁(yè)運(yùn)行內(nèi)存值比本實(shí)施例中計(jì)算的值小。在本實(shí)施例中第一內(nèi)存預(yù)計(jì)占用率=(內(nèi)存使用值+大頁(yè)運(yùn)行內(nèi)存值)/宿主機(jī)的總內(nèi)存值。所述內(nèi)存使用值為所述第一宿主機(jī)使用的內(nèi)存值,所述宿主機(jī)的總內(nèi)存值為所述第一宿主機(jī)總的可用內(nèi)存值。
步驟S30,判斷所述第一內(nèi)存預(yù)計(jì)占用率是否大于第一預(yù)設(shè)值;
步驟S40,當(dāng)所述第一內(nèi)存預(yù)計(jì)占用率小于或等于所述第一預(yù)設(shè)值時(shí),控制所述目標(biāo)虛擬機(jī)在所述第一宿主機(jī)中開(kāi)啟大頁(yè)。
需要說(shuō)明的是,在有些實(shí)施例中只有當(dāng)用Hypervisor檢測(cè)所述目標(biāo)虛擬機(jī)內(nèi)存消耗過(guò)高或Hypervisor檢測(cè)Cache Miss發(fā)生過(guò)于頻繁時(shí),才為目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)。
具體地,在本實(shí)施例中所述目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)所需的大頁(yè)運(yùn)行內(nèi)存值為4G,所述第一宿主機(jī)的內(nèi)存使用值為10G,所述目標(biāo)虛擬機(jī)所在的第一宿主機(jī)的總內(nèi)存值為20G,所述第一預(yù)設(shè)值為90%。所以所述第一內(nèi)存預(yù)計(jì)占用率=(10G+4G)/20=70%,因?yàn)樗龅谝粌?nèi)存預(yù)計(jì)占用率小于所述第一預(yù)設(shè)值90%,所以直接為所述目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè);當(dāng)所述目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)所需的大頁(yè)運(yùn)行內(nèi)存值為9G時(shí),所計(jì)算出的內(nèi)存占用率是92%,因?yàn)榇笥诘谝活A(yù)設(shè)值90%,所以目標(biāo)虛擬機(jī)的不開(kāi)啟大頁(yè)。通過(guò)根據(jù)要開(kāi)啟大頁(yè)的虛擬機(jī)所在的宿主機(jī)的內(nèi)存情況動(dòng)態(tài)地選擇開(kāi)啟所述虛擬機(jī)的內(nèi)存大頁(yè),開(kāi)啟虛擬機(jī)大頁(yè)的同時(shí)保證了宿主機(jī)良好的運(yùn)行性能,使得宿主機(jī)的內(nèi)存和性能達(dá)到平衡,提高了宿主機(jī)運(yùn)行的性能。
應(yīng)當(dāng)說(shuō)明的是,在有些實(shí)施例中,所述目標(biāo)虛擬機(jī)為虛擬機(jī)平臺(tái)中的任一虛擬機(jī),在操作時(shí)會(huì)遍歷平臺(tái)內(nèi)的虛擬機(jī)按照步驟S10至步驟S40進(jìn)行處理,以達(dá)到在整個(gè)平臺(tái)中內(nèi)存資源和性能之間的平衡。
進(jìn)一步地,請(qǐng)參照?qǐng)D2,基于本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法第一實(shí)施例,在本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法第二實(shí)施例中,所述動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法還包括:
步驟S50,當(dāng)所述第一內(nèi)存預(yù)計(jì)占用率大于所述第一預(yù)設(shè)值時(shí),獲取第二宿主機(jī)的內(nèi)存占用率;
步驟S60,根據(jù)所述第二宿主機(jī)的內(nèi)存占用率和所述大頁(yè)運(yùn)行內(nèi)存值,計(jì)算將所述目標(biāo)虛擬機(jī)置于所述第二宿主機(jī)中開(kāi)啟大頁(yè)運(yùn)行時(shí),所述第二宿主機(jī)的第二內(nèi)存預(yù)計(jì)占用率;
步驟S70,判斷各第二宿主機(jī)對(duì)應(yīng)的第二內(nèi)存預(yù)計(jì)占用率是否大于第二預(yù)設(shè)值;
為使更多的虛擬機(jī)能開(kāi)啟大頁(yè)功能提升性能,從整個(gè)虛擬化平臺(tái)的角度考慮,整合整個(gè)平臺(tái)的內(nèi)存資源,在整個(gè)虛擬化平臺(tái)中尋找內(nèi)存占用率低的第二宿主機(jī)。
步驟S80,將所述目標(biāo)虛擬機(jī)遷移至,所述第二內(nèi)存預(yù)計(jì)占用率小于或等于第二預(yù)設(shè)值的一第二宿主機(jī)中,并開(kāi)啟大頁(yè)。
當(dāng)所述第二宿主機(jī)的內(nèi)存占用率(第二內(nèi)存預(yù)計(jì)占用率)小于或等于所述第二預(yù)設(shè)值時(shí),即表示所述第二宿主機(jī)在運(yùn)行所述目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)時(shí)空余內(nèi)存資源充足。應(yīng)把所述目標(biāo)虛擬機(jī)由所述第一宿主機(jī)遷移至所述第二宿主機(jī),并為其開(kāi)啟大頁(yè)以提升所述目標(biāo)虛擬機(jī)的性能,提高整個(gè)虛擬化平臺(tái)的內(nèi)存使用效率。
具體地,在本實(shí)施例中當(dāng)所述目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)所需的大頁(yè)運(yùn)行內(nèi)存值為9G時(shí),所述第二預(yù)設(shè)值同所述第一預(yù)設(shè)值一樣為90%,所計(jì)算出的內(nèi)存占用率是92%,因?yàn)榇笥谒龅谝活A(yù)設(shè)值90%,考慮將所述目標(biāo)虛擬機(jī)遷出并為其開(kāi)啟大頁(yè),所以在所述虛擬化平臺(tái)中尋找到第二宿主機(jī),所述第二宿主機(jī)總內(nèi)存值為20G,內(nèi)存使用值為1G,根據(jù)上述計(jì)算所述第二內(nèi)存預(yù)計(jì)占用率=(9+1)/10=50%,因?yàn)樾∮?0%,所以將所述目標(biāo)虛擬機(jī)遷移至所述第二宿主機(jī),并為所述目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè);如果所述第二宿主機(jī)總內(nèi)存值為11G,內(nèi)存使用值為0.9G,所述第二內(nèi)存預(yù)計(jì)占用率=(9+0.9)/11=90%,因?yàn)榈扔?0%,所以將所述目標(biāo)虛擬機(jī)遷移至所述第二宿主機(jī),并為所述目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)。使得利用整個(gè)平臺(tái)的內(nèi)存資源為更多的虛擬機(jī)開(kāi)啟大頁(yè),提升了虛擬機(jī)的性能,同時(shí)把內(nèi)存資源緊張的虛擬機(jī)熱遷移至內(nèi)存資源充沛的其他宿主機(jī),使得整個(gè)平臺(tái)內(nèi)的內(nèi)存資源利用率更高。
進(jìn)一步地,請(qǐng)參照?qǐng)D3,基于本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法第一實(shí)施例,在本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法第三實(shí)施例中,所述動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法還包括:
步驟S90,獲取虛擬化平臺(tái)中宿主機(jī)的內(nèi)存占用率大于第三預(yù)設(shè)值的第三宿主機(jī);
當(dāng)一臺(tái)宿主機(jī)的內(nèi)存占用率超過(guò)第三預(yù)設(shè)值時(shí),說(shuō)明其內(nèi)存資源緊張,空余內(nèi)存資源不能保證該宿主機(jī)的性能發(fā)揮,會(huì)降低宿主機(jī)及在其上運(yùn)行的虛擬機(jī)的性能,所以在本實(shí)施例中把該宿主機(jī)中已開(kāi)啟大頁(yè)的虛擬機(jī)的大頁(yè)關(guān)閉,以釋放被開(kāi)啟大頁(yè)所占用的固化內(nèi)存成空余內(nèi)存資源,降低宿主機(jī)的內(nèi)存占用率。
步驟S100,獲取所述第三宿主機(jī)中已經(jīng)開(kāi)啟大頁(yè)的待處理虛擬機(jī);
步驟S110,判斷所述虛擬化平臺(tái)中是否存在將所述待處理虛擬機(jī)運(yùn)行后,內(nèi)存占用率小于所述第一預(yù)設(shè)值的第四宿主機(jī);
在整個(gè)平臺(tái)中尋找是否存在所述第四宿主機(jī),所述第四宿主機(jī)在運(yùn)行所述待處理虛擬機(jī)的內(nèi)存占用率不超過(guò)第一預(yù)設(shè)值,即存在能保證所述待處理虛擬機(jī)開(kāi)啟大頁(yè)運(yùn)行的同時(shí)也滿足所述第四宿主機(jī)有充足的空余內(nèi)存資源。
若是,則執(zhí)行步驟S120,將所述待處理虛擬機(jī)遷移至所述第四宿主機(jī)中;
若否,則執(zhí)行步驟S130,關(guān)閉所述待處理虛擬機(jī)的大頁(yè)。
具體地,在本實(shí)施例中,監(jiān)測(cè)平臺(tái)內(nèi)的宿主機(jī),當(dāng)有第三宿主機(jī)的內(nèi)存占用率超過(guò)第三預(yù)設(shè)值時(shí)。需要說(shuō)明的是,在本實(shí)施例中所述第三預(yù)設(shè)值和所第一預(yù)設(shè)值都是90%。即在本實(shí)施例中,當(dāng)有宿主機(jī)的內(nèi)存占用率超過(guò)90%時(shí),則所述宿主機(jī)為第三宿主機(jī),將所述第三宿主機(jī)中所有已開(kāi)啟大頁(yè)的虛擬機(jī)列為待處理虛擬機(jī)。接著在整個(gè)虛擬化平臺(tái)中逐個(gè)尋找是否有第四宿主機(jī)在運(yùn)行所述待處理虛擬機(jī)時(shí),內(nèi)存占用率在第一預(yù)設(shè)值90%以下,如果存在所述第四宿主機(jī),則遷移所述待處理虛擬機(jī)至所述第四宿主機(jī),并處理下一個(gè)所述待處理虛擬機(jī),直至處理完所述第三宿主機(jī)中所有待處理虛擬機(jī)或所述第三宿主機(jī)的內(nèi)存占用率降低到90%(第三預(yù)設(shè)值)以下;如果所述虛擬化平臺(tái)中沒(méi)有所述第四宿主機(jī),即不存在運(yùn)行所述待處理虛擬機(jī)時(shí)內(nèi)存占用率在90%(第一預(yù)設(shè)值)以下的宿主機(jī)時(shí),關(guān)閉所述待處理虛擬機(jī)的大頁(yè),直至處理完所述第三宿主機(jī)中所有待處理虛擬機(jī)或所述第三宿主機(jī)的內(nèi)存占用率降低到90%(第三預(yù)設(shè)值)以下。通過(guò)監(jiān)測(cè)整個(gè)虛擬化平臺(tái)內(nèi)所有宿主機(jī),如果有宿主機(jī)內(nèi)存占用率偏高時(shí),把其中的已開(kāi)啟大頁(yè)的虛擬機(jī)遷移到空余內(nèi)存資源充沛的其他宿主機(jī)上,保證了整個(gè)平臺(tái)內(nèi)所有宿主機(jī)的性能,同時(shí)使得整個(gè)平臺(tái)內(nèi)內(nèi)存占用率更加均勻。
進(jìn)一步地,請(qǐng)參照?qǐng)D4,基于本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法第三實(shí)施例,在本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法第四實(shí)施例中,在所述步驟S130之前還包括:
步驟S140,判斷所述待處理虛擬機(jī)是否被授權(quán)可被關(guān)閉大頁(yè);
當(dāng)所述待處理虛擬機(jī)被授權(quán)可被關(guān)閉大頁(yè)時(shí),則執(zhí)行所述步驟S130。
有些虛擬機(jī)用戶,因?yàn)樘摂M機(jī)上運(yùn)行程序的特殊性,不希望所在的虛擬機(jī)大頁(yè)被調(diào)整,所以為了尊重用戶的具體選擇,在開(kāi)始處理前先進(jìn)行判斷,提升用戶體驗(yàn)的同時(shí)加快大頁(yè)處理過(guò)程。
本實(shí)施例中,在關(guān)閉所述待處理虛擬機(jī)大頁(yè)前,先檢查該所述待處理虛擬機(jī)的是否被授權(quán)可被關(guān)閉大頁(yè),如果被授權(quán),則代表該虛擬機(jī)用戶同意動(dòng)態(tài)關(guān)閉其虛擬機(jī)的大頁(yè);如果沒(méi)被授權(quán),則不能關(guān)閉所述待處理虛擬機(jī)的大頁(yè)。需要說(shuō)明的是,在有些實(shí)施例中,上述授權(quán)由后臺(tái)人員根據(jù)所述虛擬機(jī)上運(yùn)行程序的某些特性而由后臺(tái)管理人員自行設(shè)置的,所述虛擬機(jī)的用戶不直接參與設(shè)置。具體地在本實(shí)施例中當(dāng)檢測(cè)所述待處理虛擬機(jī)有被授權(quán)則關(guān)閉所述待處理虛擬機(jī)的大頁(yè);如果沒(méi)被授權(quán)則不進(jìn)行處理,接著處理下一個(gè)所述待處理虛擬機(jī)。
進(jìn)一步地,請(qǐng)參照?qǐng)D5,基于本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法第一實(shí)施例,在本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理方法第五實(shí)施例中,在步驟S10之前包括:
步驟S150,每隔預(yù)設(shè)時(shí)間獲取所述虛擬化平臺(tái)的內(nèi)存占用率;
步驟S160,判斷所述內(nèi)存占用率的波動(dòng)是否超過(guò)第四預(yù)設(shè)值;
在虛擬化平臺(tái)中由于所述虛擬機(jī)運(yùn)行的業(yè)務(wù)會(huì)根據(jù)時(shí)間的變化,在一定周期內(nèi)存在業(yè)務(wù)繁忙或業(yè)務(wù)減少的情況,從而形成內(nèi)存占用率的波動(dòng)。例如在有些實(shí)施例中所述虛擬化平臺(tái)中的虛擬機(jī)為一公司內(nèi)部的虛擬化平臺(tái),因?yàn)?點(diǎn)上班,全體員工同時(shí)開(kāi)始訪問(wèn)虛擬機(jī)業(yè)務(wù)的原因,所述虛擬化平臺(tái)的在8點(diǎn)左右會(huì)迎來(lái)業(yè)務(wù)量的會(huì)突然增大,同時(shí)所述內(nèi)存占用率會(huì)相應(yīng)增加,導(dǎo)致所述內(nèi)存占用率的波動(dòng)劇烈,而在8點(diǎn)30后公司人員進(jìn)入工作狀態(tài),專注其日常業(yè)務(wù),對(duì)所述虛擬化平臺(tái)的訪問(wèn)業(yè)務(wù)會(huì)趨于穩(wěn)定,導(dǎo)致所述內(nèi)存占用率的波動(dòng)減小。
當(dāng)所述內(nèi)存占用率的波動(dòng)不超過(guò)第四預(yù)設(shè)值時(shí),執(zhí)行所述步驟S10。
過(guò)于頻繁的調(diào)節(jié)所述虛擬化平臺(tái)內(nèi)虛擬機(jī)內(nèi)存大頁(yè),會(huì)增加CPU資源和空余內(nèi)存資源的消耗,影響整個(gè)所述虛擬化平臺(tái)內(nèi)所有虛擬機(jī)的運(yùn)行性能,所以本發(fā)明提出“延遲”的思想,即等待所述虛擬化平臺(tái)內(nèi)的內(nèi)存占用率穩(wěn)定后做出調(diào)整,使得整個(gè)內(nèi)存大頁(yè)調(diào)度更準(zhǔn)確,更有效率。
具體地,在本實(shí)施例中,所述虛擬化平臺(tái)是一公司的內(nèi)部虛擬機(jī)平臺(tái)。所述預(yù)設(shè)時(shí)間為2分鐘,所述第四預(yù)設(shè)值為10%。在工作日七點(diǎn)五十九分到八點(diǎn)零一這段時(shí)間內(nèi),最低的所述內(nèi)存占用率最低為10%,最高為80%,其波動(dòng)為70%,超過(guò)了所述10%,所以不執(zhí)行步驟S10;在十點(diǎn)三十和十點(diǎn)三十二這段時(shí)間內(nèi),所述內(nèi)存占用率最低為50%,最高為55%,其波動(dòng)為5%,低于所述第四預(yù)設(shè)值為10%,則啟動(dòng)所述步驟S10,開(kāi)始執(zhí)行所述步驟S10。
本發(fā)明還提出一種動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置。
請(qǐng)參照?qǐng)D6,在本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置第一實(shí)施例包括:
第一獲取模塊10,用于獲取虛擬化平臺(tái)中未開(kāi)啟大頁(yè)的目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)所需的大頁(yè)運(yùn)行內(nèi)存值;
當(dāng)開(kāi)啟虛擬機(jī)的大頁(yè)時(shí),會(huì)耗費(fèi)一部分空余內(nèi)存資源來(lái)進(jìn)行內(nèi)存大頁(yè)的管理,所述目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)所需的存值的大小與開(kāi)啟大頁(yè)的頁(yè)面大小有關(guān),同時(shí)開(kāi)啟大頁(yè)會(huì)使宿主機(jī)的部分動(dòng)態(tài)內(nèi)存為固化內(nèi)存,減少宿主機(jī)的空余內(nèi)存資源。在開(kāi)啟大頁(yè)前對(duì)開(kāi)啟大頁(yè)所需的內(nèi)存值進(jìn)行分析,避免盲目開(kāi)啟,保護(hù)了所述目標(biāo)虛擬機(jī)的性能,也提高了整個(gè)所述虛擬化平臺(tái)中內(nèi)存大頁(yè)處理效率。
第二獲取模塊20,用于根據(jù)所述大頁(yè)運(yùn)行內(nèi)存值,預(yù)估在所述目標(biāo)虛擬機(jī)所在的第一宿主機(jī)中對(duì)所述目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)時(shí),所述第一宿主機(jī)的第一內(nèi)存預(yù)計(jì)占用率;
在本實(shí)施例中所述大頁(yè)運(yùn)行內(nèi)存值等于所述目標(biāo)虛擬機(jī)未開(kāi)啟大頁(yè)時(shí)被分配的內(nèi)存值,加兩倍的要開(kāi)啟大頁(yè)的頁(yè)面大小。需要說(shuō)明的是,具體大頁(yè)運(yùn)行內(nèi)存值的分析方法應(yīng)當(dāng)根據(jù)實(shí)際問(wèn)題具體而定,不受本說(shuō)明書(shū)中的公式所限制,例如在有些實(shí)施例中,虛擬化平臺(tái)中的虛擬機(jī)在開(kāi)啟大頁(yè)時(shí)會(huì)使用大頁(yè)合并技術(shù),所計(jì)算出的大頁(yè)運(yùn)行內(nèi)存值比本實(shí)施例中計(jì)算的值小。在本實(shí)施例中第一內(nèi)存預(yù)計(jì)占用率=(內(nèi)存使用值+大頁(yè)運(yùn)行內(nèi)存值)/宿主機(jī)的總內(nèi)存值。所述內(nèi)存使用值為所述第一宿主機(jī)使用的內(nèi)存值,所述宿主機(jī)的總內(nèi)存值為所述第一宿主機(jī)總的可用內(nèi)存值。
第一判斷模塊30,用于判斷所述第一內(nèi)存預(yù)計(jì)占用率是否大于第一預(yù)設(shè)值;
開(kāi)啟模塊40,用于當(dāng)所述第一內(nèi)存預(yù)計(jì)占用率小于或等于所述第一預(yù)設(shè)值時(shí),控制所述目標(biāo)虛擬機(jī)在所述第一宿主機(jī)中開(kāi)啟大頁(yè)。
需要說(shuō)明的是,在有些實(shí)施例中只有當(dāng)用Hypervisor檢測(cè)所述目標(biāo)虛擬機(jī)內(nèi)存消耗過(guò)高或Hypervisor檢測(cè)Cache Miss發(fā)生過(guò)于頻繁時(shí),才為目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)。
具體地,在本實(shí)施例中第一獲取模塊10獲取所述目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)所需的大頁(yè)運(yùn)行內(nèi)存值為4G,所述第一宿主機(jī)的內(nèi)存使用值為10G,所述目標(biāo)虛擬機(jī)所在的第一宿主機(jī)的總內(nèi)存值為20G,所述第一預(yù)設(shè)值為90%。所以第二獲取模塊20得到所述第一內(nèi)存預(yù)計(jì)占用率=(10G+4G)/20=70%,因?yàn)榈谝慌袛嗄K30判斷所述第一內(nèi)存預(yù)計(jì)占用率小于所述第一預(yù)設(shè)值90%,所以開(kāi)啟模塊40直接為所述目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè);當(dāng)所述目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)所需的大頁(yè)運(yùn)行內(nèi)存值為9G時(shí),所計(jì)算出的內(nèi)存占用率是92%,因?yàn)榈谝慌袛嗄K30判斷所述第一內(nèi)存預(yù)計(jì)占用率大于第一預(yù)設(shè)值90%,所以目標(biāo)虛擬機(jī)的不開(kāi)啟大頁(yè)。通過(guò)根據(jù)要開(kāi)啟大頁(yè)的虛擬機(jī)所在的宿主機(jī)的內(nèi)存情況動(dòng)態(tài)地選擇開(kāi)啟所述虛擬機(jī)的內(nèi)存大頁(yè),開(kāi)啟虛擬機(jī)大頁(yè)的同時(shí)保證了宿主機(jī)良好的運(yùn)行性能,使得宿主機(jī)的內(nèi)存和性能達(dá)到平衡,提高了宿主機(jī)運(yùn)行的性能。
應(yīng)當(dāng)說(shuō)明的是,在有些實(shí)施例中,所述目標(biāo)虛擬機(jī)為虛擬機(jī)平臺(tái)中的任一虛擬機(jī),使用上述模塊遍歷平臺(tái)內(nèi)的所有虛擬機(jī)進(jìn)行處理,以達(dá)到在整個(gè)平臺(tái)中內(nèi)存資源和性能之間的平衡。
進(jìn)一步地,請(qǐng)參照?qǐng)D7,基于本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置第一實(shí)施例,在本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置第二實(shí)施例中,所述動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置還包括:
第三獲取模塊50,用于當(dāng)所述第一內(nèi)存預(yù)計(jì)占用率大于所述第一預(yù)設(shè)值時(shí),獲取第二宿主機(jī)的內(nèi)存占用率;
計(jì)算模塊60,用于根據(jù)所述第二宿主機(jī)的內(nèi)存占用率和所述大頁(yè)運(yùn)行內(nèi)存值,計(jì)算將所述目標(biāo)虛擬機(jī)置于所述第二宿主機(jī)中開(kāi)啟大頁(yè)運(yùn)行時(shí),所述第二宿主機(jī)的第二內(nèi)存預(yù)計(jì)占用率;
第二判斷模塊70,用于判斷各第二宿主機(jī)對(duì)應(yīng)的第二內(nèi)存預(yù)計(jì)占用率是否大于第二預(yù)設(shè)值;
為使更多的虛擬機(jī)能開(kāi)啟大頁(yè)功能提升性能,從整個(gè)虛擬化平臺(tái)的角度考慮,整合整個(gè)平臺(tái)的空余內(nèi)存資源,在整個(gè)虛擬化平臺(tái)中尋找內(nèi)存占用率低的第二宿主機(jī)。
第一遷移模塊80,用于將所述目標(biāo)虛擬機(jī)遷移至,所述第二內(nèi)存預(yù)計(jì)占用率小于或等于第二預(yù)設(shè)值的一第二宿主機(jī)中,并開(kāi)啟大頁(yè)。
當(dāng)所述第二宿主機(jī)的內(nèi)存占用率(第二內(nèi)存預(yù)計(jì)占用率)小于或等于所述第二預(yù)設(shè)值時(shí),即表示所述第二宿主機(jī)在運(yùn)行所述目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)時(shí)空余內(nèi)存資源充足。應(yīng)把所述目標(biāo)虛擬機(jī)由所述第一宿主機(jī)遷移至所述第二宿主機(jī),并為其開(kāi)啟大頁(yè)以提升所述目標(biāo)虛擬機(jī)的性能,提高整個(gè)虛擬化平臺(tái)的內(nèi)存使用效率。
具體地,在本實(shí)施例中當(dāng)所述目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)所需的大頁(yè)運(yùn)行內(nèi)存值為9G時(shí),所述第二預(yù)設(shè)值同所述第一預(yù)設(shè)值一樣為90%,所計(jì)算出的內(nèi)存占用率是92%,因?yàn)榇笥谒龅谝活A(yù)設(shè)值90%,考慮將所述目標(biāo)虛擬機(jī)遷出并為其開(kāi)啟大頁(yè),所以第三獲取模塊50在所述虛擬化平臺(tái)中尋找到第二宿主機(jī),所述第二宿主機(jī)總內(nèi)存值為20G,內(nèi)存使用值為1G,計(jì)算模塊60根據(jù)上述計(jì)算所述第二內(nèi)存預(yù)計(jì)占用率=(9+1)/10=50%,因?yàn)榈诙袛嗄K70判斷小于90%,所以第一遷移模塊80將所述目標(biāo)虛擬機(jī)遷移至所述第二宿主機(jī),并為所述目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè);如果所述第二宿主機(jī)總內(nèi)存值為11G,內(nèi)存使用值為0.9G,所述第二內(nèi)存預(yù)計(jì)占用率=(9+0.9)/11=90%,因?yàn)榈诙袛嗄K70判斷等于90%,所以第一遷移模塊80將所述目標(biāo)虛擬機(jī)遷移至所述第二宿主機(jī),并為所述目標(biāo)虛擬機(jī)開(kāi)啟大頁(yè)。使得利用整個(gè)平臺(tái)的空余內(nèi)存資源為更多的虛擬機(jī)開(kāi)啟大頁(yè),提升了虛擬機(jī)的性能,同時(shí)把內(nèi)存資源緊張的虛擬機(jī)熱遷移至空余內(nèi)存資源充沛的其他宿主機(jī),使得整個(gè)平臺(tái)內(nèi)的內(nèi)存資源利用率更高。
進(jìn)一步地,請(qǐng)參照?qǐng)D8,基于本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置第一實(shí)施例,在本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置第三實(shí)施例中,所述動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置還包括:
第四獲取模塊90,用于獲取虛擬化平臺(tái)中宿主機(jī)的內(nèi)存占用率大于第三預(yù)設(shè)值的第三宿主機(jī);
當(dāng)一臺(tái)宿主機(jī)的內(nèi)存占用率超過(guò)第三預(yù)設(shè)值時(shí),說(shuō)明其內(nèi)存資源緊張,內(nèi)存資源不能保證該宿主機(jī)的性能發(fā)揮,會(huì)降低宿主機(jī)及在其上運(yùn)行的虛擬機(jī)的性能,所以在本實(shí)施例中把該宿主機(jī)中已開(kāi)啟大頁(yè)的虛擬機(jī)的大頁(yè)關(guān)閉,以釋放被開(kāi)啟大頁(yè)所占用的固化內(nèi)存成內(nèi)存資源,降低宿主機(jī)的內(nèi)存占用率。
第五獲取模塊100,用于獲取所述第三宿主機(jī)中已經(jīng)開(kāi)啟大頁(yè)的待處理虛擬機(jī);
第三判斷模塊110,用于判斷所述虛擬化平臺(tái)中是否存在將所述待處理虛擬機(jī)運(yùn)行后,內(nèi)存占用率小于所述第一預(yù)設(shè)值的第四宿主機(jī);
在整個(gè)平臺(tái)中尋找是否存在所述第四宿主機(jī),所述第四宿主機(jī)在運(yùn)行所述待處理虛擬機(jī)的內(nèi)存占用率不超過(guò)第一預(yù)設(shè)值,即存在能保證所述待處理虛擬機(jī)開(kāi)啟大頁(yè)運(yùn)行的同時(shí)也滿足所述第四宿主機(jī)有充足的空余內(nèi)存資源。
第二遷移模塊120,用于當(dāng)所述虛擬化平臺(tái)中存在將所述待處理虛擬機(jī)運(yùn)行后,內(nèi)存占用率小于所述第一預(yù)設(shè)值的第四宿主機(jī)時(shí),將所述待處理虛擬機(jī)遷移至所述第四宿主機(jī)中;
第一關(guān)閉模塊130,用于當(dāng)所述虛擬化平臺(tái)中不存在將所述待處理虛擬機(jī)運(yùn)行后,內(nèi)存占用率小于所述第一預(yù)設(shè)值的第四宿主機(jī)時(shí),關(guān)閉所述待處理虛擬機(jī)的大頁(yè)。
具體地,在本實(shí)施例中,監(jiān)測(cè)平臺(tái)內(nèi)的宿主機(jī),當(dāng)有第三宿主機(jī)的內(nèi)存占用率超過(guò)第三預(yù)設(shè)值時(shí)。需要說(shuō)明的是,在本實(shí)施例中所述第三預(yù)設(shè)值和所第一預(yù)設(shè)值都是90%。即在本實(shí)施例中,當(dāng)?shù)谒墨@取模塊90發(fā)現(xiàn)有宿主機(jī)的內(nèi)存占用率超過(guò)90%時(shí),則所述宿主機(jī)為第三宿主機(jī),第五獲取模塊100將所述第三宿主機(jī)中所有已開(kāi)啟大頁(yè)的虛擬機(jī)列為待處理虛擬機(jī)。接著第三判斷模塊110在整個(gè)虛擬化平臺(tái)中逐個(gè)尋找是否有第四宿主機(jī)在運(yùn)行所述待處理虛擬機(jī)時(shí),內(nèi)存占用率在第一預(yù)設(shè)值90%以下,如果存在所述第四宿主機(jī),則第二遷移模塊120遷移所述待處理虛擬機(jī)至所述第四宿主機(jī),并處理下一個(gè)所述待處理虛擬機(jī),直至處理完所述第三宿主機(jī)中所有待處理虛擬機(jī)或所述第三宿主機(jī)的內(nèi)存占用率降低到90%(第三預(yù)設(shè)值)以下;如果所述虛擬化平臺(tái)中沒(méi)有所述第四宿主機(jī),即不存在運(yùn)行所述待處理虛擬機(jī)時(shí)內(nèi)存占用率在90%(第一預(yù)設(shè)值)以下的宿主機(jī)時(shí),第一關(guān)閉模塊130關(guān)閉所述待處理虛擬機(jī)的大頁(yè),直至處理完所述第三宿主機(jī)中所有待處理虛擬機(jī)或所述第三宿主機(jī)的內(nèi)存占用率降低到90%(第三預(yù)設(shè)值)以下。通過(guò)監(jiān)測(cè)整個(gè)虛擬化平臺(tái)內(nèi)所有宿主機(jī),如果有宿主機(jī)內(nèi)存占用率偏高時(shí),把其中的已開(kāi)啟大頁(yè)的虛擬機(jī)遷移到空余內(nèi)存資源充沛的其他宿主機(jī)上,保證了整個(gè)平臺(tái)內(nèi)所有宿主機(jī)的性能,同時(shí)使得整個(gè)平臺(tái)內(nèi)內(nèi)存占用率更加均勻。
進(jìn)一步地,請(qǐng)參照?qǐng)D9,基于本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置第三實(shí)施例,在本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置第四實(shí)施例中,所述動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置還包括
第四判斷模塊140,用于判斷所述待處理虛擬機(jī)是否被授權(quán)可被關(guān)閉大頁(yè);
第二關(guān)閉模塊141,用于當(dāng)所述待處理虛擬機(jī)被授權(quán)可被關(guān)閉大頁(yè)時(shí),啟動(dòng)所述第一關(guān)閉模塊130。
有些虛擬機(jī)用戶,因?yàn)樘摂M機(jī)上運(yùn)行程序的特殊性,不希望所在的虛擬機(jī)大頁(yè)被調(diào)整,所以為了尊重用戶的具體選擇,在開(kāi)始處理前先進(jìn)行判斷,提升用戶體驗(yàn)的同時(shí)加快大頁(yè)處理過(guò)程。
本實(shí)施例中,在關(guān)閉所述待處理虛擬機(jī)大頁(yè)前,先檢查該所述待處理虛擬機(jī)的是否被授權(quán)可被關(guān)閉大頁(yè),如果被授權(quán),則代表該虛擬機(jī)用戶同意動(dòng)態(tài)關(guān)閉其虛擬機(jī)的大頁(yè);如果沒(méi)被授權(quán),則不能關(guān)閉所述待處理虛擬機(jī)的大頁(yè)。需要說(shuō)明的是,在有些實(shí)施例中,上述授權(quán)由后臺(tái)人員根據(jù)所述虛擬機(jī)上運(yùn)行程序的某些特性而由后臺(tái)管理人員自行設(shè)置的,所述虛擬機(jī)的用戶不直接參與設(shè)置。具體地在本實(shí)施例中當(dāng)?shù)谒呐袛嗄K140判斷所述待處理虛擬機(jī)有被授權(quán)則啟動(dòng)第二關(guān)閉模塊141關(guān)閉所述待處理虛擬機(jī)的大頁(yè);如果沒(méi)被授權(quán)則不進(jìn)行處理,接著處理下一個(gè)所述待處理虛擬機(jī)。
進(jìn)一步地,請(qǐng)參照?qǐng)D10,基于本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置第一實(shí)施例,在本發(fā)明動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置第五實(shí)施例中,所述動(dòng)態(tài)內(nèi)存大頁(yè)調(diào)度處理裝置還包括:
第六獲取模塊150,用于每隔預(yù)設(shè)時(shí)間獲取所述虛擬化平臺(tái)的內(nèi)存占用率;
第五判斷模塊160,用于判斷所述內(nèi)存占用率的波動(dòng)是否超過(guò)第四預(yù)設(shè)值;
在虛擬化平臺(tái)中由于所述虛擬機(jī)運(yùn)行的業(yè)務(wù)會(huì)根據(jù)時(shí)間的變化,在一定周期內(nèi)存在業(yè)務(wù)繁忙或業(yè)務(wù)減少的情況,從而形成內(nèi)存占用率的波動(dòng)。例如在有些實(shí)施例中所述虛擬化平臺(tái)中的虛擬機(jī)為一公司內(nèi)部的虛擬化平臺(tái),因?yàn)?點(diǎn)上班,全體員工同時(shí)開(kāi)始訪問(wèn)虛擬機(jī)業(yè)務(wù)的原因,所述虛擬化平臺(tái)的在8點(diǎn)左右會(huì)迎來(lái)業(yè)務(wù)量的會(huì)突然增大,同時(shí)所述內(nèi)存占用率會(huì)相應(yīng)增加,導(dǎo)致所述內(nèi)存占用率的波動(dòng)劇烈,而在8點(diǎn)30后公司人員進(jìn)入工作狀態(tài),專注其日常業(yè)務(wù),對(duì)所述虛擬化平臺(tái)的訪問(wèn)業(yè)務(wù)會(huì)趨于穩(wěn)定,導(dǎo)致所述內(nèi)存占用率的波動(dòng)減小。
啟動(dòng)模塊161,用于當(dāng)所述內(nèi)存占用率的波動(dòng)不超過(guò)第四預(yù)設(shè)值時(shí),啟動(dòng)所述第一獲取模塊10。
過(guò)于頻繁的調(diào)節(jié)所述虛擬化平臺(tái)內(nèi)虛擬機(jī)內(nèi)存大頁(yè),會(huì)增加CPU資源和空余內(nèi)存資源的消耗,影響整個(gè)所述虛擬化平臺(tái)內(nèi)所有虛擬機(jī)的運(yùn)行性能,所以本發(fā)明提出“延遲”的思想,即等待所述虛擬化平臺(tái)內(nèi)的內(nèi)存占用率穩(wěn)定后做出調(diào)整,使得整個(gè)內(nèi)存大頁(yè)調(diào)度更準(zhǔn)確,更有效率。
具體地,在本實(shí)施例中,所述虛擬化平臺(tái)是一公司的內(nèi)部虛擬機(jī)平臺(tái)。所述預(yù)設(shè)時(shí)間為2分鐘,所述第四預(yù)設(shè)值為10%。第六獲取模塊150在工作日七點(diǎn)五十九分到八點(diǎn)零一這段時(shí)間內(nèi),獲取最低的所述內(nèi)存占用率最低為10%,最高為80%,其波動(dòng)為70%,第五判斷模塊160判斷超過(guò)了所述10%,所以不開(kāi)啟所述第一獲取模塊10;在十點(diǎn)三十和十點(diǎn)三十二這段時(shí)間內(nèi),所述內(nèi)存占用率最低為50%,最高為55%,其波動(dòng)為5%,第五判斷模塊160判斷低于所述第四預(yù)設(shè)值為10%,則打開(kāi)啟動(dòng)模塊161開(kāi)啟所述第一獲取模塊10。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是在本發(fā)明的發(fā)明構(gòu)思下,利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等效結(jié)構(gòu)變換,或直接/間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域均包括在本發(fā)明的專利保護(hù)范圍內(nèi)。