本申請(qǐng)實(shí)施例提供一種虛擬機(jī)內(nèi)存回收方法及裝置,所述方法包括:監(jiān)控虛擬機(jī)內(nèi)存使用狀態(tài),確定處于未使用狀態(tài)的內(nèi)存;回收所述處于未使用狀態(tài)的內(nèi)存,更新內(nèi)存分配信息。本申請(qǐng)實(shí)施例可以有效回收虛擬機(jī)占用的內(nèi)存資源,實(shí)現(xiàn)內(nèi)存資源的高效時(shí)分復(fù)用,提高系統(tǒng)運(yùn)行效率。
Virtual machine memory recovery method and device
The embodiment of the application provides memory recovery method and device of a virtual machine, the method includes monitoring virtual machine memory usage, determined in the unused state memory; the recovery is not in use of memory, memory allocation information update. The embodiment of the invention can effectively recover the memory resources occupied by the virtual machine, realize the efficient time division multiplexing of the memory resources, and improve the operation efficiency of the system.
【技術(shù)實(shí)現(xiàn)步驟摘要】
一種虛擬機(jī)內(nèi)存回收方法及裝置
本申請(qǐng)涉及計(jì)算機(jī)
,尤其涉及一種虛擬機(jī)內(nèi)存回收方法及裝置。
技術(shù)介紹
隨著計(jì)算機(jī)技術(shù)和互聯(lián)網(wǎng)的快速發(fā)展,操作系統(tǒng)虛擬化技術(shù)日益成熟,虛擬化系統(tǒng)允許多個(gè)操作系統(tǒng)并發(fā)運(yùn)行在同一臺(tái)物理主機(jī)(以下簡(jiǎn)稱物理機(jī))上,所述多個(gè)操作系統(tǒng)使用相同的硬件且彼此互不影響。然而,不同的計(jì)算機(jī)硬件資源在使用時(shí)有著不同的特點(diǎn)。對(duì)于中央處理器CPU和輸入輸出(I/O)等天然的時(shí)分復(fù)用型資源,在使用完畢后,這些資源由虛擬機(jī)監(jiān)控器(英文簡(jiǎn)稱為VMM,英文全稱為VirtualMachineMonitor)收回,不會(huì)處于繼續(xù)使用的狀態(tài)。但對(duì)于內(nèi)存等空間型資源來(lái)說(shuō),虛擬機(jī)第一次使用某個(gè)內(nèi)存頁(yè)時(shí),會(huì)向VMM申請(qǐng)資源,但實(shí)際的內(nèi)存使用情況VMM無(wú)法感知,也無(wú)法釋放掉未使用的內(nèi)存頁(yè),這會(huì)造成一些不必要的頁(yè)面交換和頁(yè)面合并的開(kāi)銷(xiāo),影響虛擬機(jī)的性能。現(xiàn)有技術(shù)中,內(nèi)核虛擬機(jī)(英文簡(jiǎn)稱為KVM,英文全稱為Kenel-basedVirtualMachine)為了簡(jiǎn)化虛擬機(jī)資源的管理,把虛擬機(jī)抽象成了系統(tǒng)中的一個(gè)進(jìn)程,采用峰值分配的方法限定虛擬機(jī)內(nèi)存分配的上限。這種分配方式會(huì)因?yàn)閮?nèi)存分配給虛擬機(jī)后,內(nèi)存資源占而不用造成一些不必要的損耗,影響虛擬機(jī)的性能。
技術(shù)實(shí)現(xiàn)思路
本申請(qǐng)實(shí)施例提供了一種虛擬機(jī)內(nèi)存回收方法及裝置,可以有效回收虛擬機(jī)占用的內(nèi)存資源,實(shí)現(xiàn)內(nèi)存資源的高效時(shí)分復(fù)用,提高系統(tǒng)運(yùn)行效率。為此,本申請(qǐng)實(shí)施例提供如下技術(shù)方案:第一方面,本申請(qǐng)實(shí)施例提供了一種虛擬機(jī)內(nèi)存回收方法,包括:監(jiān)控虛擬機(jī)內(nèi)存使用狀態(tài),確定處于未使用狀態(tài)的內(nèi)存;回收所述處于未使用狀態(tài)的內(nèi)存,更新內(nèi)存分配信息。在一些實(shí)施方式中,所述監(jiān)控虛擬機(jī)內(nèi)存使用狀態(tài),確定處于未使用狀態(tài)的內(nèi)存包括:利用虛擬機(jī)空閑內(nèi)存鏈表記錄內(nèi)存使用狀態(tài),根據(jù)所述空閑內(nèi)存鏈表記錄確定處于未使用狀態(tài)的內(nèi)存。在一些實(shí)施方式中,所述處于未使用狀態(tài)的內(nèi)存為通過(guò)匿名映射方式分配給虛擬機(jī)的內(nèi)存。在一些實(shí)施方式中,所述處于未使用狀態(tài)的內(nèi)存為分配時(shí)間大于第一設(shè)定閾值且使用頻率低于第二設(shè)定閾值的內(nèi)存。在一些實(shí)施方式中,所述方法還包括:為首次分配給虛擬機(jī)且處于未使用狀態(tài)的內(nèi)存設(shè)置第一標(biāo)志位;所述根據(jù)所述空閑內(nèi)存鏈表記錄確定處于未使用狀態(tài)的內(nèi)存包括:將除設(shè)置第一標(biāo)志位之外的未使用內(nèi)存確定為處于未使用狀態(tài)的內(nèi)存。在一些實(shí)施方式中,所述回收所述處于未使用狀態(tài)的內(nèi)存,更新內(nèi)存分配信息包括:鎖定所述處于未使用狀態(tài)的內(nèi)存,將所述內(nèi)存進(jìn)行置零處理,釋放所述內(nèi)存;更新內(nèi)存分配信息,解鎖所述內(nèi)存,以便于重新分配所述內(nèi)存。第二方面,本申請(qǐng)實(shí)施例提供了一種虛擬機(jī)內(nèi)存回收裝置,包括:確定模塊,用于監(jiān)控虛擬機(jī)內(nèi)存使用狀態(tài),確定處于未使用狀態(tài)的內(nèi)存;回收模塊,用于回收所述處于未使用狀態(tài)的內(nèi)存,更新內(nèi)存分配信息。在一些實(shí)施方式中,所述確定模塊具體用于:利用虛擬機(jī)空閑內(nèi)存鏈表記錄內(nèi)存使用狀態(tài),根據(jù)所述空閑內(nèi)存鏈表記錄確定處于未使用狀態(tài)的內(nèi)存。在一些實(shí)施方式中,所述回收模塊具體用于:鎖定所述處于未使用狀態(tài)的內(nèi)存,將所述內(nèi)存進(jìn)行置零處理,釋放所述內(nèi)存;更新內(nèi)存分配信息,解鎖所述內(nèi)存,以便于重新分配所述內(nèi)存。第三方面,本申請(qǐng)實(shí)施例提供了一種用于虛擬機(jī)內(nèi)存回收的裝置,包括有存儲(chǔ)器,以及一個(gè)或者一個(gè)以上的程序,其中一個(gè)或者一個(gè)以上程序存儲(chǔ)于存儲(chǔ)器中,且經(jīng)配置以由一個(gè)或者一個(gè)以上處理器執(zhí)行所述一個(gè)或者一個(gè)以上程序包含用于進(jìn)行以下操作的指令:監(jiān)控虛擬機(jī)內(nèi)存使用狀態(tài),確定處于未使用狀態(tài)的內(nèi)存;回收所述處于未使用狀態(tài)的內(nèi)存,更新內(nèi)存分配信息。本申請(qǐng)實(shí)施例提供的虛擬機(jī)內(nèi)存回收方法及裝置,可以監(jiān)控虛擬機(jī)內(nèi)存使用狀態(tài),確定處于未使用狀態(tài)的內(nèi)存,并回收所述處于未使用狀態(tài)的內(nèi)存,更新內(nèi)存分配信息,以便重新分配回收的內(nèi)存。由此,可以有效地對(duì)回收分配給虛擬機(jī)占而不用的內(nèi)存,實(shí)現(xiàn)內(nèi)存資源的高效時(shí)分復(fù)用,提高系統(tǒng)的運(yùn)行效率。附圖說(shuō)明為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本申請(qǐng)中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。圖1為本申請(qǐng)實(shí)施例提供的虛擬機(jī)內(nèi)存回收方法示意圖;圖2為本申請(qǐng)實(shí)施例提供的虛擬機(jī)內(nèi)存回收架構(gòu)示意圖;圖3為本申請(qǐng)實(shí)施例提供的虛擬機(jī)內(nèi)存回收裝置示意圖;圖4為本申請(qǐng)實(shí)施例提供的用于虛擬機(jī)內(nèi)存回收的裝置的示意圖。具體實(shí)施方式本申請(qǐng)實(shí)施例提供了一種虛擬機(jī)內(nèi)存回收方法及裝置,可以有效回收虛擬機(jī)占用的內(nèi)存資源,實(shí)現(xiàn)內(nèi)存資源的高效時(shí)分復(fù)用,提高系統(tǒng)運(yùn)行效率。為了使本
的人員更好地理解本申請(qǐng)方案,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例。基于本申請(qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。在本申請(qǐng)實(shí)施例中使用的術(shù)語(yǔ)是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本申請(qǐng)。在本申請(qǐng)實(shí)施例和所附權(quán)利要求書(shū)中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語(yǔ)“和/或”是指并包含一個(gè)或多個(gè)相關(guān)聯(lián)的列出項(xiàng)目的任何或所有可能組合。其中,本申請(qǐng)實(shí)施例涉及的技術(shù)術(shù)語(yǔ)“物理機(jī)”一般用于表示物理實(shí)體計(jì)算機(jī),為虛擬機(jī)提供硬件環(huán)境。其中,本申請(qǐng)實(shí)施例涉及的技術(shù)術(shù)語(yǔ)“虛擬機(jī)”(英文全稱為VirtualMachine)一般指通過(guò)軟件模擬的具有完整硬件系統(tǒng)功能的、運(yùn)行在一個(gè)完全隔離環(huán)境中的完整計(jì)算機(jī)系統(tǒng)。一般地,通過(guò)物理機(jī)和虛擬機(jī)的配合,一臺(tái)計(jì)算機(jī)上可以安裝上多個(gè)操作系統(tǒng),并且多個(gè)操作系統(tǒng)間互不影響。下面將結(jié)合附圖1至附圖2對(duì)本申請(qǐng)示例性實(shí)施例示出的虛擬機(jī)內(nèi)存回收方法進(jìn)行介紹。參見(jiàn)圖1,為本申請(qǐng)一實(shí)施例提供的虛擬機(jī)內(nèi)存回收方法流程圖。如圖1所示,可以包括:S101,監(jiān)控虛擬機(jī)內(nèi)存使用狀態(tài),確定處于未使用狀態(tài)的內(nèi)存。在本申請(qǐng)具體實(shí)現(xiàn)時(shí),可以監(jiān)控虛擬機(jī)(也可以稱之為客戶機(jī))內(nèi)存使用狀態(tài),并可以回收虛擬機(jī)中處于未使用狀態(tài)的內(nèi)存。在一些實(shí)施方式中,所述處于未使用狀態(tài)的內(nèi)存為通過(guò)匿名映射方式分配給虛擬機(jī)且處于未使用狀態(tài)的內(nèi)存。以Linux操作系統(tǒng)為例進(jìn)行說(shuō)明。在Linnux系統(tǒng)中中,一般有兩種內(nèi)存申請(qǐng)方式,分別對(duì)應(yīng)mmap(一般用于將一個(gè)文件或者對(duì)象映射到內(nèi)存)和brk(一般用于調(diào)用動(dòng)態(tài)內(nèi)存)兩個(gè)系統(tǒng)調(diào)用。其中,mmap用于將硬盤(pán)上的文件映像加載到內(nèi)存,常用于加載程序和文件,是緩存機(jī)制的重要環(huán)節(jié)。Brk所申請(qǐng)的內(nèi)存是匿名映射的內(nèi)存,用于程序動(dòng)態(tài)申請(qǐng)內(nèi)存的分配,與緩存無(wú)關(guān),此類內(nèi)存大量存在于各種應(yīng)用程序的內(nèi)存映射中,可以被回收的也是這部分內(nèi)存。虛擬機(jī)向物理機(jī)申請(qǐng)內(nèi)存成功,若使用完畢所述內(nèi)存,在虛擬機(jī)內(nèi)部釋放掉內(nèi)存后,這部分內(nèi)存就處于未使用狀態(tài)。現(xiàn)有技術(shù)中,物理機(jī)并不能夠感知虛擬機(jī)內(nèi)部?jī)?nèi)存的使用狀態(tài)。在本申請(qǐng)中,可以監(jiān)控虛擬機(jī)的內(nèi)存使用狀態(tài),并對(duì)處于未使用狀態(tài)的內(nèi)存進(jìn)行分配。具體地,可以通過(guò)安裝在虛擬機(jī)內(nèi)部的驅(qū)動(dòng)程序,收集整理處于未使用狀態(tài)的內(nèi)存,并可以通過(guò)一定的篩選機(jī)制,去除剛分配但未使用的內(nèi)存部本文檔來(lái)自技高網(wǎng)...

【技術(shù)保護(hù)點(diǎn)】
一種虛擬機(jī)內(nèi)存回收方法,其特征在于,包括:監(jiān)控虛擬機(jī)內(nèi)存使用狀態(tài),確定處于未使用狀態(tài)的內(nèi)存;回收所述處于未使用狀態(tài)的內(nèi)存,更新內(nèi)存分配信息。
【技術(shù)特征摘要】
1.一種虛擬機(jī)內(nèi)存回收方法,其特征在于,包括:監(jiān)控虛擬機(jī)內(nèi)存使用狀態(tài),確定處于未使用狀態(tài)的內(nèi)存;回收所述處于未使用狀態(tài)的內(nèi)存,更新內(nèi)存分配信息。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述監(jiān)控虛擬機(jī)內(nèi)存使用狀態(tài),確定處于未使用狀態(tài)的內(nèi)存包括:利用虛擬機(jī)空閑內(nèi)存鏈表記錄內(nèi)存使用狀態(tài),根據(jù)所述空閑內(nèi)存鏈表記錄確定處于未使用狀態(tài)的內(nèi)存。3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述處于未使用狀態(tài)的內(nèi)存為通過(guò)匿名映射方式分配給虛擬機(jī)的內(nèi)存。4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述處于未使用狀態(tài)的內(nèi)存為分配時(shí)間大于第一設(shè)定閾值且使用頻率低于第二設(shè)定閾值的內(nèi)存。5.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述方法還包括:為首次分配給虛擬機(jī)且處于未使用狀態(tài)的內(nèi)存設(shè)置第一標(biāo)志位;所述根據(jù)所述空閑內(nèi)存鏈表記錄確定處于未使用狀態(tài)的內(nèi)存包括:將除設(shè)置第一標(biāo)志位之外的未使用內(nèi)存確定為處于未使用狀態(tài)的內(nèi)存。6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述回收所述處于未使用狀態(tài)的內(nèi)存,更新內(nèi)存分配信息包括:鎖定所述處于未使用狀態(tài)的內(nèi)存...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:高峰,
申請(qǐng)(專利權(quán))人:鄭州云海信息技術(shù)有限公司,
類型:發(fā)明
國(guó)別省市:河南,41
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。