專利名稱:內(nèi)存配額的調(diào)整方法和限制方法及其裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及內(nèi)存配額的管理,尤其是一種內(nèi)存配額的調(diào)整方法和控制方法及其裝置。
背景技術(shù):
在現(xiàn)有技術(shù)中,在服務(wù)器上可運(yùn)行多個(gè)虛擬機(jī),同時(shí)每個(gè)虛擬機(jī)又可能會(huì)有多個(gè)進(jìn)程的啟動(dòng),如不加管理和控制,會(huì)導(dǎo)致某個(gè)虛擬機(jī)中的某個(gè)進(jìn)程內(nèi)存占用過大,而影響整個(gè)虛擬機(jī)的性能。目前已經(jīng)為各個(gè)虛擬機(jī)或者各個(gè)進(jìn)程分配的內(nèi)存配額基本固定不變,當(dāng)某個(gè)進(jìn)程的內(nèi)存配額分配過大時(shí)會(huì)造成浪費(fèi),而某個(gè)進(jìn)程的內(nèi)存配額過小時(shí)又造成頻繁報(bào)錯(cuò)。因此,動(dòng)態(tài)、按需的內(nèi)存配額管理是提高服務(wù)器性能的關(guān)鍵。需要一種技術(shù)對(duì)內(nèi)存配額進(jìn)行動(dòng)態(tài)調(diào)整。當(dāng)某個(gè)虛擬機(jī)占用的內(nèi)存配額已經(jīng)較大時(shí),需要有一種技術(shù)能夠限制該虛擬機(jī)繼續(xù)啟動(dòng)更多的線程造成內(nèi)存配額的負(fù)荷過大。Page Fault是進(jìn)程的缺頁(yè)錯(cuò)誤數(shù),是每個(gè)進(jìn)程的屬性,可通過系統(tǒng)信息直接獲得的,該值時(shí)刻在更新變化,體現(xiàn)不同時(shí)刻進(jìn)程的實(shí)體內(nèi)存需求情況。通過實(shí)時(shí)觀察統(tǒng)計(jì)PageFault,能夠動(dòng)態(tài)獲取內(nèi)存需求變化,相應(yīng)進(jìn)行內(nèi)存配額的調(diào)整和限制。
發(fā)明內(nèi)容
PageFault Rate為單位時(shí)間(周期)內(nèi)的PageFault數(shù),該值可反應(yīng)出某一進(jìn)程在某個(gè)時(shí)段的實(shí)體內(nèi)存使用情況,在本項(xiàng)目中該值為實(shí)現(xiàn)核心算法的重要參考依據(jù)。作為內(nèi)存配額管理的服務(wù)端,應(yīng)合理的分配管理各個(gè)虛擬機(jī)中的內(nèi)存,平衡虛擬機(jī)的性能,以最佳性能運(yùn)行。由于每個(gè)進(jìn)程的Page Fault Rate可以代表該進(jìn)程實(shí)體內(nèi)存的使用狀況,Page Fault Rate太低,代表實(shí)體內(nèi)存有很多的富余,Page Fault Rate太高,則代表實(shí)體內(nèi)存已經(jīng)不夠用了。故此,本發(fā)明利用PageFaultRate值,及時(shí)統(tǒng)計(jì)每個(gè)進(jìn)程的PageFaultRate值和整個(gè)虛擬機(jī)的PageFaultRate平均值,并根據(jù)需要進(jìn)行實(shí)時(shí)調(diào)整,成為實(shí)現(xiàn)當(dāng)需要內(nèi)存管理或判斷是否可允許啟動(dòng)新進(jìn)程時(shí)的功能的重要參考依據(jù)。為解決上述問題,本發(fā)明提出了以下技術(shù)方案:一種內(nèi)存配額的調(diào)整方法,包括以下步驟:步驟A,更新內(nèi)存信息,獲取每個(gè)進(jìn)程當(dāng)前的PageFault值,根據(jù)一段時(shí)間內(nèi)的PageFault值,計(jì)算單位時(shí)間內(nèi)的PageFault以獲得每個(gè)進(jìn)程的PageFaultRate ;步驟B,根據(jù)內(nèi)存信息判斷是否需要調(diào)整進(jìn)程的內(nèi)存配額;如不需要?jiǎng)t退出;如需要,則進(jìn)入步驟C ;步驟C,查找當(dāng)前PageFaultRate最小的進(jìn)程;對(duì)該進(jìn)程的內(nèi)存配額按照削減步長(zhǎng)進(jìn)行削減。如上所述的方法,還包括,步驟A運(yùn)行之前設(shè)置步驟A啟動(dòng)條件,包括:設(shè)置定時(shí)器,按周期定時(shí)啟動(dòng)步驟A ;或者,設(shè)置觸發(fā)條件,滿足條件時(shí)立即啟動(dòng)步驟A。
如上所述的方法,步驟A中更新內(nèi)存信息還包括,統(tǒng)計(jì)每個(gè)虛擬機(jī)中的內(nèi)存剩余量,針對(duì)每個(gè)虛擬機(jī),將單個(gè)虛擬機(jī)內(nèi)包括的各個(gè)進(jìn)程的PageFaultRate取平均值,分別獲得每個(gè)虛擬機(jī)的平均PageFaultRate。如上所述的方法,步驟B中根據(jù)內(nèi)存信息判斷是否需要調(diào)整進(jìn)程的內(nèi)存配額包括根據(jù)以下信息至少一種進(jìn)行判斷:每個(gè)進(jìn)程的PageFaultRate,每個(gè)虛擬機(jī)中的內(nèi)存剩余量,每個(gè)虛擬機(jī)的平均PageFaultRate。如上所述的方法,所述步驟C之后還包括,步驟D,查找當(dāng)前PageFaultRate最大的進(jìn)程;對(duì)該進(jìn)程的內(nèi)存配額按照增加步長(zhǎng)進(jìn)行增加。一種內(nèi)存配額的限制方法,包括以下步驟:步驟J,更新內(nèi)存信息,獲取每個(gè)進(jìn)程當(dāng)前的PageFault值,根據(jù)一段時(shí)間內(nèi)的PageFault值,計(jì)算單位時(shí)間內(nèi)的PageFault以獲得每個(gè)進(jìn)程的PageFaultRate ;步驟K,當(dāng)虛擬機(jī)發(fā)出開啟新進(jìn)程請(qǐng)求時(shí),根據(jù)內(nèi)存信息判斷是否允許開啟新進(jìn)程;如不允許則通知虛擬機(jī)不允許開啟,并且退出,否則進(jìn)入步驟L ;步驟L,通知虛擬機(jī)允許開啟。如上所述的方法,步驟J中更新內(nèi)存信息還包括,統(tǒng)計(jì)每個(gè)虛擬機(jī)中的內(nèi)存剩余量,針對(duì)每個(gè)虛擬機(jī),將單個(gè)虛擬機(jī)內(nèi)包括的各個(gè)進(jìn)程的PageFaultRate取平均值,分別獲得每個(gè)虛擬機(jī)的平均PageFaultRate。如上所述的方法,步驟K中根據(jù)內(nèi)存信息判斷是否允許開啟新進(jìn)程包括根據(jù)以下信息至少一種進(jìn)行判斷:該虛擬機(jī)中的內(nèi)存剩余量,該虛擬機(jī)的平均PageFaultRate,該虛擬機(jī)已經(jīng)啟動(dòng)的進(jìn)程數(shù)。本發(fā)明還提出了:一種內(nèi)存配額的調(diào)整裝置,包括以下模塊:模塊A,用于更新內(nèi)存信息,獲取每個(gè)進(jìn)程當(dāng)前的PageFault值,根據(jù)一段時(shí)間內(nèi)的PageFault值,計(jì)算單位時(shí)間內(nèi)的PageFault以獲得每個(gè)進(jìn)程的PageFaultRate ;模塊B,用于根據(jù)內(nèi)存信息判斷是否需要調(diào)整進(jìn)程的內(nèi)存配額;如不需要?jiǎng)t退出處理;如需要,則轉(zhuǎn)由模塊C處理;模塊C,用于查找當(dāng)前PageFaultRate最小的進(jìn)程;對(duì)該進(jìn)程的內(nèi)存配額按照削減步長(zhǎng)進(jìn)行削減。如上所述的裝置,進(jìn)一步還可以包括:模塊D,用于查找當(dāng)前PageFaultRate最大的進(jìn)程;對(duì)該進(jìn)程的內(nèi)存配額按照增加步長(zhǎng)進(jìn)行增加。一種內(nèi)存配額的限制裝置,包括以下模塊:模塊J,用于更新內(nèi)存信息,獲取每個(gè)進(jìn)程當(dāng)前的PageFault值,根據(jù)一段時(shí)間內(nèi)的PageFault值,計(jì)算單位時(shí)間內(nèi)的PageFault以獲得每個(gè)進(jìn)程的PageFaultRate ;模塊K,用于當(dāng)虛擬機(jī)發(fā)出開啟新進(jìn)程請(qǐng)求時(shí),根據(jù)內(nèi)存信息判斷是否允許開啟新進(jìn)程;如不允許則通知虛擬機(jī)不允許開啟,并且退出處理,否則轉(zhuǎn)由模塊L處理;
模塊L,用于通知虛擬機(jī)允許開啟。本發(fā)明實(shí)現(xiàn)后,可以讓服務(wù)器合理科學(xué)的控制每個(gè)連接登陸上的用戶虛擬機(jī),及控制用戶虛擬機(jī)上的進(jìn)程數(shù)并且科學(xué)及時(shí)的調(diào)整用戶虛擬機(jī)的內(nèi)存使用,達(dá)到每個(gè)用戶虛擬機(jī)都可以穩(wěn)定的運(yùn)行目的。
以下結(jié)合附圖詳細(xì)說明本發(fā)明的實(shí)施例,其中:
圖1為本發(fā)明提出的內(nèi)存配額的調(diào)整方法圖2為本發(fā)明提出的內(nèi)存配額的限制方法
具體實(shí)施例方式如圖1所示,本發(fā)明提出的內(nèi)存配額的調(diào)整方法,首先設(shè)置啟動(dòng)條件,優(yōu)選的方法可以采用定時(shí)器,每當(dāng)定時(shí)周期到達(dá)時(shí),即執(zhí)行內(nèi)存配額的調(diào)整,當(dāng)然也可以用條件觸發(fā)的方式啟動(dòng),預(yù)先設(shè)置啟動(dòng)的條件或者條件組合,例如,內(nèi)存的總剩余量、進(jìn)程總數(shù)量、內(nèi)存報(bào)錯(cuò)次數(shù)等等條件的任意組合。當(dāng)滿足觸發(fā)條件時(shí),則執(zhí)行內(nèi)存配額的調(diào)整方法。該方法包括以下步驟:步驟A,更新內(nèi)存信息,從系統(tǒng)信息中獲取每個(gè)進(jìn)程當(dāng)前的PageFault值,根據(jù)一段時(shí)間內(nèi)的PageFault值,計(jì)算單位時(shí)間內(nèi)的PageFault以獲得每個(gè)進(jìn)程的PageFaultRate ;步驟A中更新內(nèi)存信息還包括,統(tǒng)計(jì)每個(gè)虛擬機(jī)中的內(nèi)存剩余量,針對(duì)每個(gè)虛擬機(jī),將單個(gè)虛擬機(jī)內(nèi)包括的各個(gè)進(jìn)程的PageFaultRate取平均值,分別獲得每個(gè)虛擬機(jī)的平均 PageFaultRate。步驟B,根據(jù)內(nèi)存信息判斷是否需要調(diào)整進(jìn)程的內(nèi)存配額;如不需要?jiǎng)t退出;如需要,則進(jìn)入步驟C ;步驟B中根據(jù)內(nèi)存信息判斷是否需要調(diào)整進(jìn)程的內(nèi)存配額包括根據(jù)以下信息至少一種進(jìn)行判斷:每個(gè)進(jìn)程的PageFaultRate,每個(gè)虛擬機(jī)中的內(nèi)存剩余量,每個(gè)虛擬機(jī)的平均PageFaultRate??梢詾樯鲜雒總€(gè)信息分別設(shè)置一個(gè)閾值,當(dāng)任何一個(gè)超過閾值之后即可判斷為需要進(jìn)行調(diào)整,當(dāng)然也可以為上述信息分別設(shè)置權(quán)重,為其加權(quán)平均設(shè)置統(tǒng)一的閾值,以此來(lái)綜合判斷是否需要調(diào)整。步驟C,查找當(dāng)前PageFaultRate最小的進(jìn)程;對(duì)該進(jìn)程的內(nèi)存配額按照削減步長(zhǎng)進(jìn)行削減。削減步長(zhǎng)可以是根據(jù)經(jīng)驗(yàn)預(yù)先設(shè)定的百分比,例如20%,也可以是預(yù)先設(shè)定的固定值。還可以是根據(jù)內(nèi)存信息判斷的動(dòng)態(tài)值,當(dāng)內(nèi)存配額緊張時(shí),即內(nèi)存信息超閾值較多時(shí),削減步長(zhǎng)較大,當(dāng)內(nèi)存配額寬松時(shí),即內(nèi)存信息超閾值較少時(shí),削減步長(zhǎng)較小。盡管削減最富裕的進(jìn)程的內(nèi)存配額之后,即已經(jīng)解決了本發(fā)明的技術(shù)問題之一。但,所述步驟C之后還可以優(yōu)選包括,步驟D,查找當(dāng)前PageFaultRate最大的進(jìn)程;對(duì)該進(jìn)程的內(nèi)存配額按照增加步長(zhǎng)進(jìn)行增加。即對(duì)于內(nèi)存配額太小難以滿足需求的進(jìn)程,適當(dāng)增加其內(nèi)存配額。除了動(dòng)態(tài)調(diào)整內(nèi)存配額之外,本發(fā)明還提出了一種內(nèi)存配額的限制方法,包括以下步驟:
步驟J,更新內(nèi)存信息,獲取每個(gè)進(jìn)程當(dāng)前的PageFault值,根據(jù)一段時(shí)間內(nèi)的PageFault值,計(jì)算單位時(shí)間內(nèi)的PageFault以獲得每個(gè)進(jìn)程的PageFaultRate ;所述的更新內(nèi)存信息可以通過設(shè)置定時(shí)器,每當(dāng)定時(shí)到達(dá)時(shí)執(zhí)行,也可以設(shè)置條件觸發(fā),滿足條件時(shí)執(zhí)行。步驟J中更新內(nèi)存信息還包括,統(tǒng)計(jì)每個(gè)虛擬機(jī)中的內(nèi)存剩余量,針對(duì)每個(gè)虛擬機(jī),將單個(gè)虛擬機(jī)內(nèi)包括的各個(gè)進(jìn)程的PageFaultRate取平均值,分別獲得每個(gè)虛擬機(jī)的平均 PageFaultRate。步驟K,當(dāng)虛擬機(jī)發(fā)出開啟新進(jìn)程請(qǐng)求時(shí),根據(jù)內(nèi)存信息判斷是否允許開啟新進(jìn)程;如不允許則通知虛擬機(jī)不允許開啟,并且退出,否則進(jìn)入步驟L ;步驟K中根據(jù)內(nèi)存信息判斷是否允許開啟新進(jìn)程包括根據(jù)以下信息至少一種進(jìn)行判斷:該虛擬機(jī)中的內(nèi)存剩余量,該虛擬機(jī)的平均PageFaultRate,該虛擬機(jī)已經(jīng)啟動(dòng)的進(jìn)程數(shù)??梢詾樯鲜雒總€(gè)信息分別設(shè)置一個(gè)閾值,當(dāng)任何一個(gè)超過閾值之后即可判斷為需要進(jìn)行限制,當(dāng)然也可以為上述信息分別設(shè)置權(quán)重,為其加權(quán)平均設(shè)置統(tǒng)一的閾值,以此來(lái)綜合判斷是否需要限制。步驟L,通知虛擬機(jī)允許開啟。本發(fā)明還提出了,一種內(nèi)存配額的調(diào)整裝置,包括以下模塊:模塊A,用于更新內(nèi)存信息,獲取每個(gè)進(jìn)程當(dāng)前的PageFault值,根據(jù)一段時(shí)間內(nèi)的PageFault值,計(jì)算單位時(shí)間內(nèi)的PageFault以獲得每個(gè)進(jìn)程的PageFaultRate ;模塊A的啟動(dòng)條件,包括:設(shè)置定時(shí)器,按周期定時(shí)啟動(dòng)模塊A ;或者,設(shè)置觸發(fā)條件,滿足條件時(shí)立即啟動(dòng)模塊A。模塊A中更新內(nèi)存信息還包括,統(tǒng)計(jì)每個(gè)虛擬機(jī)中的內(nèi)存剩余量,針對(duì)每個(gè)虛擬機(jī),將單個(gè)虛擬機(jī)內(nèi)包括的各個(gè)進(jìn)程的PageFaultRate取平均值,分別獲得每個(gè)虛擬機(jī)的平均 PageFaultRate。模塊B,用于根據(jù)內(nèi)存信息判斷是否需要調(diào)整進(jìn)程的內(nèi)存配額;如不需要?jiǎng)t退出處理;如需要,則轉(zhuǎn)由模塊C處理;模塊B中根據(jù)內(nèi)存信息判斷是否需要調(diào)整進(jìn)程的內(nèi)存配額包括根據(jù)以下信息至少一種進(jìn)行判斷:每個(gè)進(jìn)程的PageFaultRate,每個(gè)虛擬機(jī)中的內(nèi)存剩余量,每個(gè)虛擬機(jī)的平均PageFaultRate。 模塊C,用于查找當(dāng)前PageFau11Rate最小的進(jìn)程;對(duì)該進(jìn)程的內(nèi)存配額按照削減步長(zhǎng)進(jìn)行削減。如上所述的裝置,進(jìn)一步還可以包括:模塊D,用于查找當(dāng)前PageFaultRate最大的進(jìn)程;對(duì)該進(jìn)程的內(nèi)存配額按照增加步長(zhǎng)進(jìn)行增加。本發(fā)明還提出了,
—種內(nèi)存配額的限制裝置,包括以下模塊:模塊J,用于更新內(nèi)存信息,獲取每個(gè)進(jìn)程當(dāng)前的PageFault值,根據(jù)一段時(shí)間內(nèi)的PageFault值,計(jì)算單位時(shí)間內(nèi)的PageFault以獲得每個(gè)進(jìn)程的PageFaultRate ;所述的更新內(nèi)存信息可以通過設(shè)置定時(shí)器,每當(dāng)定時(shí)到達(dá)時(shí)執(zhí)行,也可以設(shè)置條件觸發(fā),滿足條件時(shí)執(zhí)行。模塊J中更新內(nèi)存信息還包括,統(tǒng)計(jì)每個(gè)虛擬機(jī)中的內(nèi)存剩余量,針對(duì)每個(gè)虛擬機(jī),將單個(gè)虛擬機(jī)內(nèi)包括的各個(gè)進(jìn)程的PageFaultRate取平均值,分別獲得每個(gè)虛擬機(jī)的平均 PageFaultRate。模塊K,用于當(dāng)虛擬機(jī)發(fā)出開啟新進(jìn)程請(qǐng)求時(shí),根據(jù)內(nèi)存信息判斷是否允許開啟新進(jìn)程;如不允許則通知虛擬機(jī)不允許開啟,并且退出處理,否則轉(zhuǎn)由模塊L處理;模塊K中根據(jù)內(nèi)存信息判斷是否允許開啟新進(jìn)程包括根據(jù)以下信息至少一種進(jìn)行判斷:該虛擬機(jī)中的內(nèi)存剩余量,該虛擬機(jī)的平均PageFaultRate,該虛擬機(jī)已經(jīng)啟動(dòng)的進(jìn)程數(shù)。模塊L,用于通知虛擬機(jī)允許開啟。本發(fā)明充分利用PageFaultRate對(duì)于進(jìn)程實(shí)體內(nèi)存的使用狀況的反映,對(duì)于需要調(diào)整的進(jìn)程的內(nèi)存配額能夠動(dòng)態(tài)調(diào)整,需要限制配額時(shí),能夠禁止虛擬機(jī)啟動(dòng)新的進(jìn)程。本發(fā)明實(shí)現(xiàn)后,可以讓服務(wù)器合理科學(xué)的控制每個(gè)連接登陸上的用戶虛擬機(jī),及控制用戶虛擬機(jī)上的進(jìn)程數(shù)并且科學(xué)及時(shí)的調(diào)整用戶虛擬機(jī)的內(nèi)存使用,達(dá)到每個(gè)用戶虛擬機(jī)都可以穩(wěn)定的運(yùn)行目的。本發(fā)明的上述方法及裝置,本領(lǐng)域人員熟知能夠使用軟件、硬件、固件中的任意一種或者其任意組合來(lái)實(shí)現(xiàn)。以上描述僅為示例性說明,并不限制其具體的實(shí)施形式。以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種內(nèi)存配額的調(diào)整方法,包括以下步驟: 步驟A,更新內(nèi)存信息,獲取每個(gè)進(jìn)程當(dāng)前的PageFault值,根據(jù)一段時(shí)間內(nèi)的PageFault值,計(jì)算單位時(shí)間內(nèi)的PageFault以獲得每個(gè)進(jìn)程的PageFaultRate ; 步驟B,根據(jù)內(nèi)存信息判斷是否需要調(diào)整進(jìn)程的內(nèi)存配額;如不需要?jiǎng)t退出;如需要,則進(jìn)入步驟C ; 步驟C,查找當(dāng)前PageFaultRate最小的進(jìn)程;對(duì)該進(jìn)程的內(nèi)存配額按照削減步長(zhǎng)進(jìn)行削減。
2.如權(quán)利要求1所述的方法,還包括,步驟A運(yùn)行之前設(shè)置步驟A啟動(dòng)條件,包括: 設(shè)置定時(shí)器,按周期定時(shí)啟動(dòng)步驟A ;或者, 設(shè)置觸發(fā)條件,滿足條件時(shí)立即啟動(dòng)步驟A。
3.如權(quán)利要求1所述的方法,步驟A中更新內(nèi)存信息還包括,統(tǒng)計(jì)每個(gè)虛擬機(jī)中的內(nèi)存剩余量,針對(duì)每個(gè)虛擬機(jī),將單個(gè)虛擬機(jī)內(nèi)包括的各個(gè)進(jìn)程的PageFaultRate取平均值,分別獲得每個(gè)虛擬機(jī)的平均PageFaultRate。
4.如權(quán)利要求3所述的方法,步驟B中根據(jù)內(nèi)存信息判斷是否需要調(diào)整進(jìn)程的內(nèi)存配額包括根據(jù)以下信息至少一種進(jìn)行判斷: 每個(gè)進(jìn)程的PageFaultRate,每個(gè)虛擬機(jī)中的內(nèi)存剩余量,每個(gè)虛擬機(jī)的平均PageFaultRate0
5.如權(quán)利要求1所述的方法,所述步驟C之后還包括, 步驟D,查找當(dāng)前PageFaultRate最大的進(jìn)程;對(duì)該進(jìn)程的內(nèi)存配額按照增加步長(zhǎng)進(jìn)行增加。
6.一種內(nèi)存配額的限制方法,包括以下步驟: 步驟J,更新內(nèi)存信息,獲取每個(gè)進(jìn)程當(dāng)前的PageFault值,根據(jù)一段時(shí)間內(nèi)的PageFault值,計(jì)算單位時(shí)間內(nèi)的PageFault以獲得每個(gè)進(jìn)程的PageFaultRate ; 步驟K,當(dāng)虛擬機(jī)發(fā)出開啟新進(jìn)程請(qǐng)求時(shí),根據(jù)內(nèi)存信息判斷是否允許開啟新進(jìn)程;如不允許則通知虛擬機(jī)不允許開啟,并且退出,否則進(jìn)入步驟L ; 步驟L,通知虛擬機(jī)允許開啟。
7.如權(quán)利要求6所述的方法,步驟J中更新內(nèi)存信息還包括,統(tǒng)計(jì)每個(gè)虛擬機(jī)中的內(nèi)存剩余量,針對(duì)每個(gè)虛擬機(jī),將單個(gè)虛擬機(jī)內(nèi)包括的各個(gè)進(jìn)程的PageFaultRate取平均值,分別獲得每個(gè)虛擬機(jī)的平均PageFaultRate。
8.如權(quán)利要求7所述的方法,步驟K中根據(jù)內(nèi)存信息判斷是否允許開啟新進(jìn)程包括根據(jù)以下信息至少一種進(jìn)行判斷: 該虛擬機(jī)中的內(nèi)存剩余量,該虛擬機(jī)的平均PageFaultRate,該虛擬機(jī)已經(jīng)啟動(dòng)的進(jìn)程數(shù)。
9.一種內(nèi)存配額的調(diào)整裝置,包括以下模塊: 模塊A,用于更新內(nèi)存信息,獲取每個(gè)進(jìn)程當(dāng)前的PageFault值,根據(jù)一段時(shí)間內(nèi)的PageFault值,計(jì)算單位時(shí)間內(nèi)的PageFault以獲得每個(gè)進(jìn)程的PageFaultRate ; 模塊B,用于根據(jù)內(nèi)存信息判斷是否需要調(diào)整進(jìn)程的內(nèi)存配額;如不需要?jiǎng)t退出處理;如需要,則轉(zhuǎn)由模塊C處理; 模塊C,用于查找當(dāng)前PageFaultRate最小的進(jìn)程;對(duì)該進(jìn)程的內(nèi)存配額按照削減步長(zhǎng)進(jìn)行削減。
10.一種內(nèi)存配額的限制裝置,包括以下模塊: 模塊J,用于更新內(nèi)存信息,獲取每個(gè)進(jìn)程當(dāng)前的PageFault值,根據(jù)一段時(shí)間內(nèi)的PageFault值,計(jì)算單位時(shí)間內(nèi)的PageFault以獲得每個(gè)進(jìn)程的PageFaultRate ; 模塊K,用于當(dāng)虛擬機(jī)發(fā)出開啟新進(jìn)程請(qǐng)求時(shí),根據(jù)內(nèi)存信息判斷是否允許開啟新進(jìn)程;如不允許則通知虛擬機(jī)不允許開啟,并且退出處理,否則轉(zhuǎn)由模塊L處理; 模塊L,用于通知虛擬機(jī)允許開啟。
全文摘要
本發(fā)明提出一種內(nèi)存配額的調(diào)整方法和限制方法,及其相應(yīng)的裝置。利用PageFaultRate值,及時(shí)統(tǒng)計(jì)每個(gè)進(jìn)程的PageFaultRate值和整個(gè)虛擬機(jī)的PageFaultRate平均值,并根據(jù)需要進(jìn)行實(shí)時(shí)調(diào)整。本發(fā)明實(shí)現(xiàn)后,可以讓服務(wù)器合理科學(xué)的控制每個(gè)連接登陸上的用戶虛擬機(jī),及控制用戶虛擬機(jī)上的進(jìn)程數(shù)并且科學(xué)及時(shí)的調(diào)整用戶虛擬機(jī)的內(nèi)存使用,達(dá)到每個(gè)用戶虛擬機(jī)都可以穩(wěn)定的運(yùn)行目的。
文檔編號(hào)G06F9/455GK103116516SQ20121056810
公開日2013年5月22日 申請(qǐng)日期2012年12月24日 優(yōu)先權(quán)日2012年12月24日
發(fā)明者李瑞平 申請(qǐng)人:北京伸得緯科技有限公司, 國(guó)際伸得緯有限公司