一種調(diào)控虛擬機(jī)物理內(nèi)存的方法和裝置制造方法
【專利摘要】本發(fā)明實(shí)施例提供一種調(diào)控虛擬機(jī)物理內(nèi)存的方法和裝置,以提高物理內(nèi)存資源的利用率。所述裝置包括內(nèi)存監(jiān)控器和虛擬機(jī)管理模塊;內(nèi)存監(jiān)控器用于通過(guò)獲取的訪存請(qǐng)求以及基于虛擬機(jī)管理模塊傳送的更新的虛擬機(jī)頁(yè)表信息,獲取虛擬機(jī)訪問(wèn)特征信息,將虛擬機(jī)訪問(wèn)特征信息傳遞至所述虛擬機(jī)管理模塊;虛擬機(jī)管理模塊用于監(jiān)控到虛擬機(jī)的頁(yè)表改變時(shí),將更新的虛擬機(jī)頁(yè)表信息傳送至內(nèi)存監(jiān)控器,并基于內(nèi)存監(jiān)控器返回的虛擬機(jī)訪問(wèn)特征信息執(zhí)行對(duì)虛擬機(jī)物理內(nèi)存的調(diào)控。本發(fā)明提供的方法可以獲得比較準(zhǔn)確的物理內(nèi)存調(diào)控的依據(jù),依此依據(jù)能夠得到比較準(zhǔn)確的調(diào)控決策,從而能夠通過(guò)準(zhǔn)確調(diào)控為虛擬機(jī)分配的物理內(nèi)存來(lái)提高物理內(nèi)存資源的利用率。
【專利說(shuō)明】一種調(diào)控虛擬機(jī)物理內(nèi)存的方法和裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信領(lǐng)域,尤其涉及一種調(diào)控虛擬機(jī)物理內(nèi)存的方法和裝置。
【背景技術(shù)】
[0002] 為了更好地實(shí)現(xiàn)資源復(fù)用和應(yīng)用隔離等特性,虛擬化技術(shù)已在工業(yè)界被廣泛使 用。在虛擬化的環(huán)境下,同一臺(tái)物理機(jī)上的所有虛擬機(jī)共享物理內(nèi)存等資源。為了提高物 理內(nèi)存的資源利用率,應(yīng)該盡量根據(jù)虛擬機(jī)對(duì)物理內(nèi)存的實(shí)際需求來(lái)分配相應(yīng)數(shù)量的物理 內(nèi)存,保證不會(huì)出現(xiàn)分配給虛擬機(jī)的物理內(nèi)存資源被閑置的情況?,F(xiàn)有的虛擬機(jī)管理軟件 一般都支持動(dòng)態(tài)調(diào)節(jié)虛擬機(jī)所分配的物理內(nèi)存,通過(guò)這種動(dòng)態(tài)調(diào)節(jié)機(jī)制,虛擬機(jī)管理軟件, 例如虛擬機(jī)監(jiān)控器(Virtual Machine Monitor,VMM)可以將某些虛擬機(jī)暫時(shí)不用的物理內(nèi) 存分配給其他物理內(nèi)存不足的虛擬機(jī),或是利用這些物理內(nèi)存來(lái)創(chuàng)建新的虛擬機(jī)。
[0003] 由于虛擬機(jī)運(yùn)行的應(yīng)用負(fù)載不同,不同虛擬機(jī)對(duì)物理內(nèi)存的需求也不同。而且,同 一虛擬機(jī)的負(fù)載在不同時(shí)刻對(duì)物理內(nèi)存的需求也是動(dòng)態(tài)變化的。因而,虛擬機(jī)管理軟件需 要實(shí)時(shí)檢測(cè)虛擬機(jī)對(duì)物理內(nèi)存的實(shí)際需求,例如虛擬機(jī)一段時(shí)間的工作集大小等指標(biāo)。如 果虛擬機(jī)當(dāng)前實(shí)際需要的物理內(nèi)存比虛擬機(jī)管理軟件分配給它的物理內(nèi)存要小,即,虛擬 機(jī)當(dāng)前的物理內(nèi)存工作集大小小于已分配的物理內(nèi)存,則虛擬機(jī)需要釋放一部分物理內(nèi)存 頁(yè)面,反之,則需要虛擬機(jī)管理軟件為之增加物理內(nèi)存。因此,準(zhǔn)確、低開銷地分析或預(yù)測(cè)虛 擬機(jī)對(duì)物理內(nèi)存的實(shí)際需求以及準(zhǔn)確掌握虛擬機(jī)的物理內(nèi)存頁(yè)面的訪問(wèn)特征,對(duì)動(dòng)態(tài)調(diào)控 物理內(nèi)存具有非常重要的意義。
[0004] 現(xiàn)有技術(shù)提供的一種動(dòng)態(tài)調(diào)控制虛擬機(jī)內(nèi)存的方法是內(nèi)存均衡器(MEmory Balancer,MEB)通過(guò)監(jiān)控虛擬機(jī)一段時(shí)間內(nèi)的內(nèi)存使用情況,并預(yù)測(cè)它的內(nèi)存需求來(lái)實(shí)現(xiàn)。 為了監(jiān)控某個(gè)虛擬機(jī)對(duì)某個(gè)內(nèi)存頁(yè)面的訪問(wèn)情況,MEB在VMM中通過(guò)軟件方式提高該內(nèi)存 頁(yè)面頁(yè)表項(xiàng)的訪問(wèn)優(yōu)先級(jí)。當(dāng)虛擬機(jī)訪問(wèn)這個(gè)頁(yè)面時(shí),由于訪問(wèn)權(quán)限不夠,就會(huì)觸發(fā)中斷, 陷入到VMM中。如此,VMM就能監(jiān)控到對(duì)這個(gè)頁(yè)面的訪問(wèn)。由于VMM修改頁(yè)表的方式顯然 不能用來(lái)監(jiān)控所有頁(yè)面,因此,MEB是使用采樣機(jī)制選擇部分頁(yè)面作為監(jiān)控的目標(biāo)。
[0005] 由于上述現(xiàn)有技術(shù)提供的動(dòng)態(tài)調(diào)控制虛擬機(jī)內(nèi)存的方法是通過(guò)采樣集合內(nèi)的物 理內(nèi)存頁(yè)面訪問(wèn)情況來(lái)推測(cè)整個(gè)虛擬機(jī)的一段時(shí)間內(nèi)的工作集大小,這種方式分析出的工 作集大小與采樣的頁(yè)面存在較大的關(guān)聯(lián),準(zhǔn)確度較低,不能反映真實(shí)的工作集,因此,不能 為動(dòng)態(tài)調(diào)控制虛擬機(jī)內(nèi)存提供準(zhǔn)確的依據(jù)。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明實(shí)施例提供一種調(diào)控虛擬機(jī)物理內(nèi)存的方法和裝置,以通過(guò)準(zhǔn)確調(diào)控為虛 擬機(jī)分配的物理內(nèi)存來(lái)提高物理內(nèi)存資源的利用率。
[0007] 本發(fā)明實(shí)施例提供一種調(diào)控虛擬機(jī)物理內(nèi)存的裝置,所述裝置包括內(nèi)存監(jiān)控器和 虛擬機(jī)管理模塊;所述內(nèi)存監(jiān)控器,用于通過(guò)獲取的訪存請(qǐng)求以及基于所述虛擬機(jī)管理模 塊傳送的更新的虛擬機(jī)頁(yè)表信息,獲取虛擬機(jī)訪問(wèn)特征信息,將所述虛擬機(jī)訪問(wèn)特征信息 傳遞至所述虛擬機(jī)管理模塊;所述虛擬機(jī)管理模塊,用于監(jiān)控到虛擬機(jī)的頁(yè)表改變時(shí),將更 新的虛擬機(jī)頁(yè)表信息傳送至所述內(nèi)存監(jiān)控器,并基于所述內(nèi)存監(jiān)控器返回的虛擬機(jī)訪問(wèn)特 征信息執(zhí)行對(duì)虛擬機(jī)物理內(nèi)存的調(diào)控。
[0008] 可選地,所述裝置還包括內(nèi)存控制器,所述內(nèi)存控制器通過(guò)第一總線與所述虛擬 機(jī)管理模塊連接,所述內(nèi)存控制器通過(guò)第二總線與內(nèi)存芯片連接,所述內(nèi)存監(jiān)控器通過(guò)偵 聽所述第一總線或第二總線獲取所述訪存請(qǐng)求;或者,所述內(nèi)存控制器包括所述內(nèi)存監(jiān)控 器,所述內(nèi)存監(jiān)控器從所述內(nèi)存控制器獲取所述訪存請(qǐng)求。
[0009] 可選地,所述內(nèi)存監(jiān)控器包括虛擬機(jī)確定模塊和至少一個(gè)虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單 元,每一個(gè)所述虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元對(duì)應(yīng)于一個(gè)虛擬機(jī);所述虛擬機(jī)確定模塊,用于根 據(jù)所述訪存請(qǐng)求確定所述訪存請(qǐng)求中攜帶的訪存地址對(duì)應(yīng)的虛擬機(jī),并將所述訪存地址和 訪存地址對(duì)應(yīng)的虛擬機(jī)的編號(hào)信息傳送至與所述虛擬機(jī)對(duì)應(yīng)的虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元; 所述虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元,用于根據(jù)所述訪存地址和訪存地址對(duì)應(yīng)的虛擬機(jī)的編號(hào)信 息生成對(duì)應(yīng)虛擬機(jī)的虛擬機(jī)訪問(wèn)特征信息,將所述虛擬機(jī)訪問(wèn)特征信息傳遞至所述虛擬機(jī) 管理模塊。
[0010] 可選地,所述虛擬機(jī)確定模塊包括訪存?zhèn)陕爢卧⑴渲脝卧吞摂M機(jī)頁(yè)表信息維 護(hù)單元;所述訪存?zhèn)陕爢卧?,用于在偵聽到所述訪存請(qǐng)求后,根據(jù)所述訪存請(qǐng)求攜帶的訪 存地址查詢所述配置單元,在所述訪存地址屬于所述配置單元配置的所監(jiān)控地址空間范圍 時(shí),將所述訪存地址發(fā)送至所述虛擬機(jī)頁(yè)表信息維護(hù)單元;所述配置單元,用于配置所監(jiān)控 地址空間范圍,接受所述訪存?zhèn)陕爢卧獙?duì)其配置的所監(jiān)控地址空間范圍的查詢,或者,在接 受所述訪存?zhèn)陕爢卧獙?duì)其配置的所監(jiān)控地址空間范圍的查詢并且所述訪存地址屬于所述 配置的所監(jiān)控地址空間范圍時(shí),將所述訪存地址發(fā)送至所述虛擬機(jī)頁(yè)表信息維護(hù)單元;所 述虛擬機(jī)頁(yè)表信息維護(hù)單元,用于根據(jù)其維護(hù)的虛擬機(jī)頁(yè)表信息和收到的所述訪存地址, 確定所述訪存地址對(duì)應(yīng)的虛擬機(jī),將所述訪存地址和訪存地址對(duì)應(yīng)的虛擬機(jī)的編號(hào)信息傳 送至與所述虛擬機(jī)對(duì)應(yīng)的虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元。
[0011] 可選地,所述虛擬機(jī)管理模塊包括虛擬機(jī)頁(yè)表監(jiān)控單元、虛擬機(jī)內(nèi)存決策單元和 虛擬機(jī)內(nèi)存管理單元;所述虛擬機(jī)頁(yè)表監(jiān)控單元,用于監(jiān)控虛擬機(jī)頁(yè)表的改變,并將更新的 虛擬機(jī)頁(yè)表信息傳送至所述內(nèi)存監(jiān)控器;所述虛擬機(jī)內(nèi)存決策單元,用于根據(jù)所述內(nèi)存監(jiān) 控器返回的虛擬機(jī)訪問(wèn)特征信息確定內(nèi)存管理決策,并將所述內(nèi)存管理決策傳送至所述虛 擬機(jī)內(nèi)存管理單元;所述虛擬機(jī)內(nèi)存管理單元,用于根據(jù)所述內(nèi)存管理決策,調(diào)控分配給對(duì) 應(yīng)的虛擬機(jī)的物理內(nèi)存。
[0012] 本發(fā)明實(shí)施例提供一種調(diào)控虛擬機(jī)物理內(nèi)存的方法,所述方法包括:內(nèi)存監(jiān)控器 通過(guò)獲取的訪存請(qǐng)求以及基于虛擬機(jī)管理模塊傳送的更新的虛擬機(jī)頁(yè)表信息,獲取虛擬機(jī) 訪問(wèn)特征信息,將所述虛擬機(jī)訪問(wèn)特征信息傳遞至所述虛擬機(jī)管理模塊;所述虛擬機(jī)管理 模塊監(jiān)控到虛擬機(jī)的頁(yè)表改變時(shí),將更新的虛擬機(jī)頁(yè)表信息傳送至所述內(nèi)存監(jiān)控器,并基 于所述內(nèi)存監(jiān)控器返回的虛擬機(jī)訪問(wèn)特征信息執(zhí)行對(duì)虛擬機(jī)物理內(nèi)存的調(diào)控。
[0013] 可選地,所述虛擬機(jī)管理模塊通過(guò)第一總線與內(nèi)存控制器連接,所述內(nèi)存控制器 通過(guò)第二總線與內(nèi)存芯片連接,所述內(nèi)存監(jiān)控器通過(guò)偵聽所述第一總線或第二總線獲取所 述訪存請(qǐng)求;或者,所述內(nèi)存控制器包括所述內(nèi)存監(jiān)控器,所述內(nèi)存監(jiān)控器從所述內(nèi)存控制 器獲取所述訪存請(qǐng)求。
[0014] 可選地,所述內(nèi)存監(jiān)控器包括虛擬機(jī)確定模塊和至少一個(gè)虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單 元,每一個(gè)所述虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元對(duì)應(yīng)于一個(gè)虛擬機(jī),所述內(nèi)存監(jiān)控器通過(guò)獲取的 訪存請(qǐng)求以及基于虛擬機(jī)管理模塊傳送的虛擬機(jī)頁(yè)表信息,獲取虛擬機(jī)訪問(wèn)特征信息,將 所述虛擬機(jī)訪問(wèn)特征信息傳遞至所述虛擬機(jī)管理模塊包括:所述虛擬機(jī)確定模塊根據(jù)所述 訪存請(qǐng)求確定所述訪存請(qǐng)求中攜帶的訪存地址對(duì)應(yīng)的虛擬機(jī),并將所述訪存地址和訪存地 址對(duì)應(yīng)的虛擬機(jī)的編號(hào)信息傳送至與所述虛擬機(jī)對(duì)應(yīng)的虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元;所述虛 擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元根據(jù)所述虛擬機(jī)確定模塊傳送的訪存地址和訪存地址對(duì)應(yīng)的虛擬 機(jī)的編號(hào)信息生成對(duì)應(yīng)虛擬機(jī)的虛擬機(jī)訪問(wèn)特征信息,將所述虛擬機(jī)訪問(wèn)特征信息傳遞至 所述虛擬機(jī)管理模塊。
[0015] 可選地,所述虛擬機(jī)確定模塊包括訪存?zhèn)陕爢卧?、配置單元和虛擬機(jī)頁(yè)表信息維 護(hù)單元,所述虛擬機(jī)確定模塊根據(jù)所述訪存請(qǐng)求確定所述訪存請(qǐng)求中攜帶的訪存地址對(duì)應(yīng) 的虛擬機(jī),并將所述訪存地址和訪存地址對(duì)應(yīng)的虛擬機(jī)的編號(hào)信息傳送至與所述虛擬機(jī)對(duì) 應(yīng)的虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元包括:
[0016] 所述訪存?zhèn)陕爢卧趥陕牭剿鲈L存請(qǐng)求后,根據(jù)所述訪存請(qǐng)求攜帶的訪存地址 查詢所述配置單元,在所述訪存地址屬于所述配置單元配置的所監(jiān)控地址空間范圍時(shí),將 所述訪存地址發(fā)送至所述虛擬機(jī)頁(yè)表信息維護(hù)單元;所述配置單元配置所監(jiān)控地址空間范 圍,接受所述訪存?zhèn)陕爢卧獙?duì)其配置的所監(jiān)控地址空間范圍的查詢,或者,在接受所述訪存 偵聽單元對(duì)其配置的所監(jiān)控地址空間范圍的查詢并且所述訪存地址屬于所述配置的所監(jiān) 控地址空間范圍時(shí),將所述訪存地址發(fā)送至所述虛擬機(jī)頁(yè)表信息維護(hù)單元;所述虛擬機(jī)頁(yè) 表信息維護(hù)單元根據(jù)其維護(hù)的虛擬機(jī)頁(yè)表信息和所述訪存?zhèn)陕爢卧蛩雠渲脝卧l(fā)送 的訪存地址,確定所述訪存地址對(duì)應(yīng)的虛擬機(jī),將所述訪存地址和訪存地址對(duì)應(yīng)的虛擬機(jī) 的編號(hào)信息傳送至與所述虛擬機(jī)對(duì)應(yīng)的虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元。
[0017] 可選地,所述虛擬機(jī)管理模塊包括虛擬機(jī)頁(yè)表監(jiān)控單元、虛擬機(jī)內(nèi)存決策單元和 虛擬機(jī)內(nèi)存管理單元,所述虛擬機(jī)管理模塊監(jiān)控到虛擬機(jī)的頁(yè)表改變時(shí),將更新的虛擬機(jī) 頁(yè)表信息傳送至所述內(nèi)存監(jiān)控器,并基于所述內(nèi)存監(jiān)控器返回的虛擬機(jī)訪問(wèn)特征信息執(zhí)行 對(duì)虛擬機(jī)物理內(nèi)存的調(diào)控包括:所述虛擬機(jī)頁(yè)表監(jiān)控單元監(jiān)控虛擬機(jī)頁(yè)表,在監(jiān)控到虛擬 機(jī)頁(yè)表改變時(shí)將更新的虛擬機(jī)頁(yè)表信息傳送至所述內(nèi)存監(jiān)控器;所述虛擬機(jī)內(nèi)存決策單元 根據(jù)所述內(nèi)存監(jiān)控器返回的虛擬機(jī)訪問(wèn)特征信息確定內(nèi)存管理決策,并將所述內(nèi)存管理決 策傳送至所述虛擬機(jī)內(nèi)存管理單元;所述虛擬機(jī)內(nèi)存管理單元根據(jù)所述虛擬機(jī)內(nèi)存決策單 元傳送的內(nèi)存管理決策,調(diào)控分配給對(duì)應(yīng)的虛擬機(jī)的物理內(nèi)存。
[0018] 從上述本發(fā)明實(shí)施例可知,內(nèi)存監(jiān)控器能夠?qū)@取的虛擬機(jī)訪問(wèn)特征信息傳遞至 虛擬機(jī)管理模塊供所述虛擬機(jī)管理模塊進(jìn)行內(nèi)存管理的決策,虛擬機(jī)管理模塊在監(jiān)控到虛 擬機(jī)的頁(yè)表改變時(shí),基于內(nèi)存監(jiān)控器返回的虛擬機(jī)訪問(wèn)特征信息執(zhí)行對(duì)虛擬機(jī)物理內(nèi)存的 調(diào)控。由于虛擬機(jī)管理模塊在監(jiān)控到的虛擬機(jī)頁(yè)表改變信息和內(nèi)存監(jiān)控器返回的虛擬機(jī)訪 問(wèn)特征信息都是對(duì)訪存請(qǐng)求的實(shí)際監(jiān)控獲得,不是一個(gè)采樣或統(tǒng)計(jì)得到的推測(cè)結(jié)果,因此, 與現(xiàn)有技術(shù)提供的動(dòng)態(tài)調(diào)控制虛擬機(jī)內(nèi)存的方法相比,本發(fā)明實(shí)施例提供的方法可以獲得 比較準(zhǔn)確的物理內(nèi)存調(diào)控的依據(jù),依此依據(jù)能夠得到比較準(zhǔn)確的調(diào)控決策,從而能夠通過(guò) 準(zhǔn)確調(diào)控為虛擬機(jī)分配的物理內(nèi)存來(lái)提高物理內(nèi)存資源的利用率。
【專利附圖】
【附圖說(shuō)明】
[0019] 為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)現(xiàn)有技術(shù)或?qū)嵤├枋鲋?所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí) 施例,對(duì)于本領(lǐng)域技術(shù)人員來(lái)講,還可以如這些附圖獲得其他的附圖。
[0020] 圖1是本發(fā)明實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的裝置結(jié)構(gòu)示意圖;
[0021] 圖2-a是本發(fā)明另一實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的裝置結(jié)構(gòu)示意圖;
[0022] 圖2_b是本發(fā)明另一實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的裝置結(jié)構(gòu)示意圖;
[0023] 圖3是本發(fā)明另一實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的裝置結(jié)構(gòu)示意圖;
[0024] 圖4是本發(fā)明另一實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的裝置結(jié)構(gòu)示意圖;
[0025] 圖5_a是本發(fā)明另一實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的裝置結(jié)構(gòu)示意圖;
[0026] 圖5_b是本發(fā)明另一實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的裝置結(jié)構(gòu)示意圖;
[0027] 圖5-c是本發(fā)明另一實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的裝置結(jié)構(gòu)示意圖;
[0028] 圖5_d是本發(fā)明另一實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的裝置結(jié)構(gòu)示意圖;
[0029] 圖6是本發(fā)明實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的方法流程示意圖;
[0030] 圖7是本發(fā)明另一實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的方法流程示意圖。
【具體實(shí)施方式】
[0031] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0032] 請(qǐng)參閱附圖1,是本發(fā)明實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的裝置結(jié)構(gòu)示意圖。為 了便于說(shuō)明,僅僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。附圖1示例的調(diào)控虛擬機(jī)物理內(nèi)存 的裝置包括內(nèi)存監(jiān)控器101和虛擬機(jī)管理模塊102,其中:
[0033] 內(nèi)存監(jiān)控器101,用于通過(guò)獲取的訪存請(qǐng)求以及基于虛擬機(jī)管理模塊102傳送的 更新的虛擬機(jī)頁(yè)表信息,獲取虛擬機(jī)訪問(wèn)特征信息,將所述虛擬機(jī)訪問(wèn)特征信息傳遞至虛 擬機(jī)管理模塊102 ;
[0034] 虛擬機(jī)管理模塊102,用于監(jiān)控到虛擬機(jī)的頁(yè)表改變時(shí),將更新的虛擬機(jī)頁(yè)表信息 傳送至內(nèi)存監(jiān)控器101,并基于內(nèi)存監(jiān)控器101返回的虛擬機(jī)訪問(wèn)特征信息執(zhí)行對(duì)虛擬機(jī) 物理內(nèi)存的調(diào)控。
[0035] 附圖1示例的內(nèi)存監(jiān)控器101是一個(gè)硬件模塊/單元,可以是內(nèi)存控制器里的一 個(gè)硬件模塊/單元,也可以是能夠偵聽內(nèi)存總線的內(nèi)存監(jiān)控卡。在本發(fā)明實(shí)施例中,內(nèi)存監(jiān) 控器101在獲取訪存請(qǐng)求以及與虛擬機(jī)管理模塊102交互時(shí)都以硬件方式進(jìn)行。由于硬件 方式獲取訪存請(qǐng)求以及交互的開銷小于軟件方式獲取訪存請(qǐng)求以及交互的開銷,因此,本 發(fā)明實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的裝置在執(zhí)行虛擬機(jī)物理內(nèi)存的調(diào)控時(shí),開銷較低 并且效率較高。
[0036] 附圖1示例的虛擬機(jī)管理模塊102可以是一個(gè)軟件模塊,例如,虛擬機(jī)監(jiān)控器 (Virtual Machine Monitor, VMM),也可以是一個(gè)硬件模塊,或者是軟硬件相結(jié)合的模塊, 本發(fā)明實(shí)施例對(duì)虛擬機(jī)管理模塊102的實(shí)現(xiàn)方式不做限定。
[0037] 從上述本發(fā)明實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的裝置可知,內(nèi)存監(jiān)控器101能 夠?qū)@取的虛擬機(jī)訪問(wèn)特征信息傳遞至虛擬機(jī)管理模塊102供所述虛擬機(jī)管理模塊102進(jìn) 行內(nèi)存管理的決策,虛擬機(jī)管理模塊102在監(jiān)控到虛擬機(jī)的頁(yè)表改變時(shí),基于內(nèi)存監(jiān)控器 101返回的虛擬機(jī)訪問(wèn)特征信息執(zhí)行對(duì)虛擬機(jī)物理內(nèi)存的調(diào)控。由于虛擬機(jī)管理模塊102 在監(jiān)控到的虛擬機(jī)頁(yè)表改變信息和內(nèi)存監(jiān)控器101返回的虛擬機(jī)訪問(wèn)特征信息都是對(duì)訪 存請(qǐng)求的實(shí)際監(jiān)控獲得,不是一個(gè)采樣或統(tǒng)計(jì)得到的推測(cè)結(jié)果,因此,與現(xiàn)有技術(shù)提供的動(dòng) 態(tài)調(diào)控制虛擬機(jī)內(nèi)存的方法相比,本發(fā)明實(shí)施例提供的方法可以獲得比較準(zhǔn)確的物理內(nèi)存 調(diào)控的依據(jù),依此依據(jù)能夠得到比較準(zhǔn)確的調(diào)控決策,從而能夠通過(guò)準(zhǔn)確調(diào)控為虛擬機(jī)分 配的物理內(nèi)存來(lái)提高物理內(nèi)存資源的利用率。
[0038] 附圖1示例的調(diào)控虛擬機(jī)物理內(nèi)存的裝置還可以包括內(nèi)存控制器201,如附圖2-a 所示本發(fā)明另一實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的裝置。在附圖2-a示例的調(diào)控虛擬機(jī) 物理內(nèi)存的裝置中,內(nèi)存控制器201通過(guò)第一總線與虛擬機(jī)管理模塊102連接,通過(guò)第二總 線與內(nèi)存芯片203連接。在本發(fā)明實(shí)施例中,第一總線是連接內(nèi)存控制器201和虛擬機(jī)管 理模塊102的內(nèi)存總線,第二總線是連接內(nèi)存控制器201與內(nèi)存芯片203的內(nèi)存總線,內(nèi)存 監(jiān)控器201可以位于第一總線或第二總線上,通過(guò)偵聽第一總線或第二總線獲取來(lái)自中央 處理器的訪存請(qǐng)求。
[0039] 如前所述,內(nèi)存監(jiān)控器101可以是內(nèi)存控制器里的一個(gè)硬件模塊/單元,因此,附 圖1示例的調(diào)控虛擬機(jī)物理內(nèi)存的裝置還可以有另一實(shí)現(xiàn)方式,如附圖2-b所示本發(fā)明另 一實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的裝置。在附圖2-b示例的調(diào)控虛擬機(jī)物理內(nèi)存的裝 置中,內(nèi)存控制器201包括內(nèi)存監(jiān)控器101,內(nèi)存監(jiān)控器101從內(nèi)存控制器201獲取訪存請(qǐng) 求。具體地,內(nèi)存監(jiān)控器101可以監(jiān)控內(nèi)存控制器201中的某個(gè)部件,由于該部件接收來(lái)自 中央處理器發(fā)送的訪存請(qǐng)求,因此,內(nèi)存監(jiān)控器101可以通過(guò)監(jiān)控內(nèi)存控制器201中的該部 件,獲取訪存請(qǐng)求。
[0040] 附圖2-a或附圖2-b示例的內(nèi)存監(jiān)控器101可以包括虛擬機(jī)確定模塊301和至少 一個(gè)虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元302,其中,每一個(gè)虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元302對(duì)應(yīng)于一個(gè) 虛擬機(jī)。以附圖2-a示例的內(nèi)存監(jiān)控器101包括虛擬機(jī)確定模塊301和至少一個(gè)虛擬機(jī)內(nèi) 存訪問(wèn)監(jiān)控單元302為例,附圖3給出了本發(fā)明另一實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的 裝置。在附圖3示例的調(diào)控虛擬機(jī)物理內(nèi)存的裝置中,虛擬機(jī)確定模塊301用于根據(jù)內(nèi)存 監(jiān)控器101獲取的訪存請(qǐng)求,確定所述訪存請(qǐng)求中攜帶的訪存地址對(duì)應(yīng)的虛擬機(jī)。由于每 一個(gè)虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元302對(duì)應(yīng)于一個(gè)虛擬機(jī),因此,在虛擬機(jī)確定模塊301確定訪 存請(qǐng)求中攜帶的訪存地址對(duì)應(yīng)的虛擬機(jī)后,可以將訪存地址和訪存地址對(duì)應(yīng)的虛擬機(jī)的編 號(hào)信息傳送至與虛擬機(jī)對(duì)應(yīng)的虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元302 ;
[0041] 虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元302用于根據(jù)所述訪存地址和訪存地址對(duì)應(yīng)的虛擬機(jī) 的編號(hào)信息生成對(duì)應(yīng)虛擬機(jī)的虛擬機(jī)訪問(wèn)特征信息,將所述虛擬機(jī)訪問(wèn)特征信息傳送至虛 擬機(jī)管理模塊102。具體地,每個(gè)虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元302包括物理頁(yè)面訪問(wèn)隊(duì)列和物 理頁(yè)面訪問(wèn)頻度計(jì)數(shù)器。虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元302接收到訪存地址和訪存地址對(duì)應(yīng)的 虛擬機(jī)的編號(hào)信息后,更新其中的物理頁(yè)面訪問(wèn)隊(duì)列和物理頁(yè)面訪問(wèn)頻度計(jì)數(shù)器等。在本 發(fā)明實(shí)施例中,物理頁(yè)面訪問(wèn)隊(duì)列用于根據(jù)現(xiàn)有訪問(wèn)頁(yè)面的情況來(lái)推算適合虛擬機(jī)的工作 集大小,其可以組織成多種形式,例如,LRU直方圖的形式等。物理頁(yè)面訪問(wèn)頻度計(jì)數(shù)器用 于計(jì)算每個(gè)虛擬機(jī)對(duì)應(yīng)物理頁(yè)面的訪問(wèn)頻度,其也可以用多種組織形式,例如,可以為每一 個(gè)頁(yè)面分配一個(gè)物理頁(yè)面訪問(wèn)頻度計(jì)數(shù)器,也可以將多個(gè)頁(yè)面組織為一個(gè)組,而為每個(gè)組 分配一個(gè)物理頁(yè)面訪問(wèn)頻度計(jì)數(shù)器。在本發(fā)明實(shí)施例中,虛擬機(jī)的工作集大小以及虛擬機(jī) 對(duì)應(yīng)物理頁(yè)面的訪問(wèn)頻度等信息構(gòu)成對(duì)應(yīng)虛擬機(jī)的虛擬機(jī)訪問(wèn)特征信息。
[0042] 需要說(shuō)明的是,雖然附圖3是以附圖2-a示例的內(nèi)存監(jiān)控器101包括虛擬機(jī)確定 模塊301和至少一個(gè)虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元302為例,說(shuō)明本發(fā)明另一實(shí)施例提供的調(diào) 控虛擬機(jī)物理內(nèi)存的裝置,但附圖3示例的虛擬機(jī)確定模塊301和至少一個(gè)虛擬機(jī)內(nèi)存訪 問(wèn)監(jiān)控單元302也同樣適用于附圖2-b示例的內(nèi)存監(jiān)控器101。
[0043] 附圖3示例的虛擬機(jī)確定模塊301包括訪存?zhèn)陕爢卧?01、配置單元402和虛擬機(jī) 頁(yè)表信息維護(hù)單元403,如附圖4所示本發(fā)明另一實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的裝 置,其中:
[0044] 訪存?zhèn)陕爢卧?01,用于在偵聽到訪存請(qǐng)求后,根據(jù)訪存請(qǐng)求攜帶的訪存地址查詢 配置單元402,在訪存地址屬于配置單元401配置的所監(jiān)控地址空間范圍時(shí),將訪存地址發(fā) 送至虛擬機(jī)頁(yè)表信息維護(hù)單元403 ;
[0045] 配置單元402,用于配置所監(jiān)控地址空間范圍,接受訪存?zhèn)陕爢卧?01對(duì)其配置的 所監(jiān)控地址空間范圍的查詢,或者,在接受訪存?zhèn)陕爢卧?01對(duì)其配置的所監(jiān)控地址空間 范圍的查詢并且訪存地址屬于配置的所監(jiān)控地址空間范圍時(shí),將訪存地址發(fā)送至虛擬機(jī)頁(yè) 表信息維護(hù)單兀403 ;
[0046] 虛擬機(jī)頁(yè)表信息維護(hù)單元403,用于根據(jù)其維護(hù)的虛擬機(jī)頁(yè)表信息和收到的訪存 地址,確定訪存地址對(duì)應(yīng)的虛擬機(jī),將訪存地址和訪存地址對(duì)應(yīng)的虛擬機(jī)的編號(hào)信息傳送 至與虛擬機(jī)對(duì)應(yīng)的虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元302。
[0047] 在附圖4示例的調(diào)控虛擬機(jī)物理內(nèi)存的裝置中,配置單元401配置一段地址空間, 該段地址空間是本發(fā)明實(shí)施例中內(nèi)存監(jiān)控器101需要監(jiān)控的并且可能被訪問(wèn)的物理內(nèi)存 的地址范圍。一旦訪存?zhèn)陕爢卧?01根據(jù)訪存請(qǐng)求攜帶的訪存地址查詢到訪存地址屬于 配置單元401配置的所監(jiān)控地址空間范圍,則訪存?zhèn)陕爢卧?01可以將訪存地址發(fā)送至虛 擬機(jī)頁(yè)表信息維護(hù)單元403,也可以由配置單元402將訪存地址發(fā)送至虛擬機(jī)頁(yè)表信息維 護(hù)單元403。虛擬機(jī)頁(yè)表信息維護(hù)單元403與虛擬機(jī)管理模塊102是連接在一起或者能夠 以某種方式與虛擬機(jī)管理模塊102中的功能單元交互,接收虛擬機(jī)管理模塊102發(fā)送過(guò)來(lái) 的虛擬機(jī)頁(yè)表信息后更新其中維護(hù)的每個(gè)虛擬機(jī)的頁(yè)表信息。在虛擬機(jī)頁(yè)表信息維護(hù)單元 403收到訪存?zhèn)陕爢卧?01或配置單元401發(fā)送的訪存地址后,遍歷所有虛擬機(jī)的頁(yè)表信 息,直至在某個(gè)虛擬機(jī)的頁(yè)表信息中找到該訪存地址,從而確定該訪存地址對(duì)應(yīng)的虛擬機(jī)。 之后,虛擬機(jī)頁(yè)表信息維護(hù)單元403將該虛擬機(jī)對(duì)應(yīng)的虛擬機(jī)編號(hào)信息和該訪存地址一起 發(fā)送相應(yīng)的虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元302。
[0048] 附圖1至附圖4任一示例的虛擬機(jī)管理模塊102包括虛擬機(jī)頁(yè)表監(jiān)控單元501、虛 擬機(jī)內(nèi)存決策單元502和虛擬機(jī)內(nèi)存管理單元503,如附圖5-a至附圖5-d所示本發(fā)明另一 實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的裝置,其中:
[0049] 虛擬機(jī)頁(yè)表監(jiān)控單元501,用于監(jiān)控虛擬機(jī)頁(yè)表的改變,并將更新的虛擬機(jī)頁(yè)表信 息傳送至內(nèi)存監(jiān)控器101 ;
[0050] 虛擬機(jī)內(nèi)存決策單元502,用于根據(jù)內(nèi)存監(jiān)控器101返回的虛擬機(jī)訪問(wèn)特征信息 確定內(nèi)存管理決策,并將內(nèi)存管理決策傳送至虛擬機(jī)內(nèi)存管理單元503 ;
[0051] 虛擬機(jī)內(nèi)存管理單元503,用于根據(jù)虛擬機(jī)內(nèi)存決策單元502傳送的內(nèi)存管理決 策,調(diào)控分配給對(duì)應(yīng)的虛擬機(jī)的物理內(nèi)存。
[0052] 在附圖5-a至附圖5-d任一示例的調(diào)控虛擬機(jī)物理內(nèi)存的裝置中,虛擬機(jī)頁(yè)表監(jiān) 控單元501所監(jiān)控的虛擬機(jī)頁(yè)表的改變包括:虛擬機(jī)管理模塊102創(chuàng)建虛擬機(jī)時(shí)為新創(chuàng)建 的虛擬機(jī)對(duì)應(yīng)創(chuàng)建一個(gè)虛擬機(jī)頁(yè)表,即虛擬機(jī)頁(yè)表的改變包括新增虛擬機(jī)頁(yè)表,也包括虛 擬機(jī)管理模塊102為虛擬機(jī)增加頁(yè)面或釋放頁(yè)面時(shí),對(duì)該虛擬機(jī)頁(yè)表項(xiàng)的修改等等,虛擬 機(jī)頁(yè)表的改變構(gòu)成更新的虛擬機(jī)頁(yè)表信息,將由虛擬機(jī)管理模塊102或者其虛擬機(jī)頁(yè)表監(jiān) 控單元501傳送至內(nèi)存監(jiān)控器102或其虛擬機(jī)頁(yè)表信息維護(hù)單元403,虛擬機(jī)頁(yè)表信息維護(hù) 單元403根據(jù)新的虛擬機(jī)頁(yè)表信息更新對(duì)與某個(gè)虛擬機(jī)對(duì)應(yīng)的虛擬機(jī)頁(yè)表信息進(jìn)行更新。 虛擬機(jī)內(nèi)存決策單元502根據(jù)內(nèi)存監(jiān)控器101返回的虛擬機(jī)訪問(wèn)特征信息確定內(nèi)存管理決 策,將內(nèi)存管理決策傳送至虛擬機(jī)內(nèi)存管理單元503后,虛擬機(jī)內(nèi)存管理單元503根據(jù)虛擬 機(jī)內(nèi)存決策單元502傳送的內(nèi)存管理決策,調(diào)控分配給對(duì)應(yīng)的虛擬機(jī)的物理內(nèi)存,包括為 指定的虛擬機(jī)分配新的物理內(nèi)存、暫時(shí)凍結(jié)物理內(nèi)存或者釋放某個(gè)虛擬機(jī)的全部或部分物 理內(nèi)存等。
[0053] 以附圖5_d示例的調(diào)控虛擬機(jī)物理內(nèi)存的裝置為例,虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元 302對(duì)應(yīng)虛擬機(jī)的虛擬機(jī)訪問(wèn)特征信息即虛擬機(jī)的工作集大小以及虛擬機(jī)對(duì)應(yīng)物理頁(yè)面的 訪問(wèn)頻度等信息,通過(guò)虛擬機(jī)信息反饋通路傳送至虛擬機(jī)管理模塊102的虛擬機(jī)內(nèi)存決策 單元502。虛擬機(jī)信息反饋通路的具體實(shí)現(xiàn)包括多種方式,例如,可以將虛擬機(jī)訪問(wèn)特征信 息存放到內(nèi)存監(jiān)控器101的配置空間中,而且指定這部分配置空間的作用只是為了虛擬機(jī) 訪問(wèn)特征信息傳送至虛擬機(jī)管理模塊102的虛擬機(jī)內(nèi)存決策單元502 ;也可以通過(guò)類似PCI 的方式將虛擬機(jī)訪問(wèn)特征信息通過(guò)PCI接口傳送至虛擬機(jī)管理模塊102的虛擬機(jī)內(nèi)存決策 單元502。虛擬機(jī)信息反饋通路的實(shí)現(xiàn)跟內(nèi)存監(jiān)控器101的存在形式具有一些關(guān)聯(lián),例如, 內(nèi)存監(jiān)控器101存在于前述實(shí)施例的第二總線即連接內(nèi)存控制器101與內(nèi)存芯片203的總 線上時(shí),內(nèi)存監(jiān)控器101通過(guò)旁路硬件或是其他方式偵聽第二總線上的訪存請(qǐng)求,根據(jù)這 些訪存請(qǐng)求可以推算出請(qǐng)求的地址和數(shù)據(jù),對(duì)于內(nèi)存監(jiān)控器101的這種存在形式,可以在 旁路硬件上增加 PCI-e的接口,內(nèi)存監(jiān)控器101通過(guò)PCI-e鏈路將虛擬機(jī)訪問(wèn)特征信息反 饋至虛擬機(jī)管理模塊102,此時(shí),虛擬機(jī)信息反饋通路即PCI-e鏈路;再如,內(nèi)存監(jiān)控器101 也可以存在于內(nèi)存控制器201中,此時(shí),內(nèi)存監(jiān)控器101只需要監(jiān)控內(nèi)存控制器201中接收 中央處理器發(fā)送訪存請(qǐng)求的部件即可獲取請(qǐng)求的訪存地址或數(shù)據(jù),對(duì)于內(nèi)存監(jiān)控器101的 這種存在形式,可以在內(nèi)存控制器101增加一些配置接口,例如寄存器,虛擬機(jī)訪問(wèn)特征信 息存放在這些寄存器中,虛擬機(jī)管理模塊102可以直接讀取寄存器的值,內(nèi)存控制器101的 寄存器接口即虛擬機(jī)信息反饋通路。
[0054] 請(qǐng)參閱附圖6,是本發(fā)明實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的方法流程示意圖,主 要包括步驟S601和步驟S602,詳細(xì)說(shuō)明如下:
[0055] S601,內(nèi)存監(jiān)控器通過(guò)獲取的訪存請(qǐng)求以及基于虛擬機(jī)管理模塊傳送的更新的虛 擬機(jī)頁(yè)表信息,獲取虛擬機(jī)訪問(wèn)特征信息,將所述虛擬機(jī)訪問(wèn)特征信息傳遞至所述虛擬機(jī) 管理模塊。
[0056] S602,虛擬機(jī)管理模塊監(jiān)控到虛擬機(jī)的頁(yè)表改變時(shí),將更新的虛擬機(jī)頁(yè)表信息傳 送至所述內(nèi)存監(jiān)控器,并基于所述內(nèi)存監(jiān)控器返回的虛擬機(jī)訪問(wèn)特征信息執(zhí)行對(duì)虛擬機(jī)物 理內(nèi)存的調(diào)控。
[0057] 附圖6示例的調(diào)控虛擬機(jī)物理內(nèi)存的方法中,內(nèi)存監(jiān)控器是一個(gè)硬件模塊/單元, 可以是內(nèi)存控制器里的一個(gè)硬件模塊/單元,也可以是能夠偵聽內(nèi)存總線的內(nèi)存監(jiān)控卡。 在本實(shí)施例中,內(nèi)存監(jiān)控器在獲取訪存請(qǐng)求以及與虛擬機(jī)管理模塊交互時(shí)都以硬件方式進(jìn) 行。由于硬件方式獲取訪存請(qǐng)求以及交互的開銷小于軟件方式獲取訪存請(qǐng)求以及交互的 開銷,因此,本發(fā)明實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的裝置在執(zhí)行虛擬機(jī)物理內(nèi)存的調(diào) 控時(shí),開銷較低并且效率較高。虛擬機(jī)管理模塊可以是一個(gè)軟件模塊,例如,虛擬機(jī)監(jiān)控器 (Virtual Machine Monitor, VMM),也可以是一個(gè)硬件模塊,或者是軟硬件相結(jié)合的模塊, 本實(shí)施例對(duì)虛擬機(jī)管理模塊的實(shí)現(xiàn)方式不做限定。
[0058] 附圖6示例的調(diào)控虛擬機(jī)物理內(nèi)存的方法中,虛擬機(jī)管理模塊通過(guò)第一總線與內(nèi) 存控制器連接,內(nèi)存控制器通過(guò)第二總線與內(nèi)存芯片連接。在本實(shí)施例中,第一總線是連 接內(nèi)存控制器和虛擬機(jī)管理模塊的內(nèi)存總線,第二總線是連接內(nèi)存控制器與內(nèi)存芯片的內(nèi) 存總線,內(nèi)存監(jiān)控器可以位于第一總線或第二總線上,通過(guò)偵聽第一總線或第二總線獲取 來(lái)自中央處理器的訪存請(qǐng)求。如前所述,內(nèi)存監(jiān)控器可以是內(nèi)存控制器里的一個(gè)硬件模塊 /單元,因此,附圖6示例的調(diào)控虛擬機(jī)物理內(nèi)存的方法中,內(nèi)存控制器包括內(nèi)存監(jiān)控器,內(nèi) 存監(jiān)控器從內(nèi)存控制器獲取訪存請(qǐng)求。具體地,內(nèi)存監(jiān)控器可以監(jiān)控內(nèi)存控制器中的某個(gè) 部件,由于該部件接收來(lái)自中央處理器發(fā)送的訪存請(qǐng)求,因此,內(nèi)存監(jiān)控器可以通過(guò)監(jiān)控內(nèi) 存控制器中的該部件,獲取訪存請(qǐng)求。
[0059] 附圖6示例的調(diào)控虛擬機(jī)物理內(nèi)存的方法中,內(nèi)存監(jiān)控器可以包括虛擬機(jī)確定模 塊和至少一個(gè)虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元,其中,每一個(gè)虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元對(duì)應(yīng)于一 個(gè)虛擬機(jī)。內(nèi)存監(jiān)控器通過(guò)獲取的訪存請(qǐng)求以及基于虛擬機(jī)管理模塊傳送的虛擬機(jī)頁(yè)表信 息,獲取虛擬機(jī)訪問(wèn)特征信息,將所述虛擬機(jī)訪問(wèn)特征信息傳遞至所述虛擬機(jī)管理模塊可 以是:虛擬機(jī)確定模塊根據(jù)內(nèi)存監(jiān)控器獲取的訪存請(qǐng)求,確定所述訪存請(qǐng)求中攜帶的訪存 地址對(duì)應(yīng)的虛擬機(jī)。由于每一個(gè)虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元對(duì)應(yīng)于一個(gè)虛擬機(jī),因此,在虛擬 機(jī)確定模塊確定訪存請(qǐng)求中攜帶的訪存地址對(duì)應(yīng)的虛擬機(jī)后,可以將訪存地址和訪存地址 對(duì)應(yīng)的虛擬機(jī)的編號(hào)信息傳送至與虛擬機(jī)對(duì)應(yīng)的虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元。虛擬機(jī)內(nèi)存訪 問(wèn)監(jiān)控單元根據(jù)訪存地址和訪存地址對(duì)應(yīng)的虛擬機(jī)的編號(hào)信息生成對(duì)應(yīng)虛擬機(jī)的虛擬機(jī) 訪問(wèn)特征信息,將所述虛擬機(jī)訪問(wèn)特征信息傳送至虛擬機(jī)管理模塊。具體地,每個(gè)虛擬機(jī)內(nèi) 存訪問(wèn)監(jiān)控單元包括物理頁(yè)面訪問(wèn)隊(duì)列和物理頁(yè)面訪問(wèn)頻度計(jì)數(shù)器。虛擬機(jī)內(nèi)存訪問(wèn)監(jiān) 控單元接收到訪存地址和訪存地址對(duì)應(yīng)的虛擬機(jī)的編號(hào)信息后,更新其中的物理頁(yè)面訪問(wèn) 隊(duì)列和物理頁(yè)面訪問(wèn)頻度計(jì)數(shù)器等。在本實(shí)施例中,物理頁(yè)面訪問(wèn)隊(duì)列用于根據(jù)現(xiàn)有訪問(wèn) 頁(yè)面的情況來(lái)推算適合虛擬機(jī)的工作集大小,其可以組織成多種形式,例如,最近最少使用 (Least Recently Used,LRU)直方圖的形式等。物理頁(yè)面訪問(wèn)頻度計(jì)數(shù)器用于計(jì)算每個(gè)虛 擬機(jī)對(duì)應(yīng)物理頁(yè)面的訪問(wèn)頻度,其也可以用多種組織形式,例如,可以為每一個(gè)頁(yè)面分配一 個(gè)物理頁(yè)面訪問(wèn)頻度計(jì)數(shù)器,也可以將多個(gè)頁(yè)面組織為一個(gè)組,而為每個(gè)組分配一個(gè)物理 頁(yè)面訪問(wèn)頻度計(jì)數(shù)器。在本發(fā)明實(shí)施例中,虛擬機(jī)的工作集大小以及虛擬機(jī)對(duì)應(yīng)物理頁(yè)面 的訪問(wèn)頻度等信息構(gòu)成對(duì)應(yīng)虛擬機(jī)的虛擬機(jī)訪問(wèn)特征信息。
[0060] 需要說(shuō)明的是,雖然上述是以內(nèi)存控制器包括內(nèi)存監(jiān)控器為例說(shuō)明本發(fā)明另一實(shí) 施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的方法,但該方法也同樣適用于內(nèi)存監(jiān)控器位于第一總線 或第二總線上的情形。
[0061] 上述示例的調(diào)控虛擬機(jī)物理內(nèi)存的方法中,虛擬機(jī)確定模塊包括訪存?zhèn)陕爢卧?配置單元和虛擬機(jī)頁(yè)表信息維護(hù)單元。訪存?zhèn)陕爢卧趥陕牭皆L存請(qǐng)求后,根據(jù)訪存請(qǐng)求 攜帶的訪存地址查詢配置單元,在訪存地址屬于配置單元配置的所監(jiān)控地址空間范圍時(shí), 將訪存地址發(fā)送至虛擬機(jī)頁(yè)表信息維護(hù)單元。配置單元配置所監(jiān)控地址空間范圍,接受訪 存?zhèn)陕爢卧獙?duì)其配置的所監(jiān)控地址空間范圍的查詢,或者,在接受訪存?zhèn)陕爢卧獙?duì)其配置 的所監(jiān)控地址空間范圍的查詢并且訪存地址屬于配置的所監(jiān)控地址空間范圍時(shí),將訪存地 址發(fā)送至虛擬機(jī)頁(yè)表信息維護(hù)單元。虛擬機(jī)頁(yè)表信息維護(hù)單元根據(jù)其維護(hù)的虛擬機(jī)頁(yè)表信 息和收到的訪存地址,確定訪存地址對(duì)應(yīng)的虛擬機(jī),將訪存地址和訪存地址對(duì)應(yīng)的虛擬機(jī) 的編號(hào)信息傳送至與虛擬機(jī)對(duì)應(yīng)的虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元。具體地,配置單元配置一段 地址空間,該段地址空間是本發(fā)明實(shí)施例中內(nèi)存監(jiān)控器需要監(jiān)控的并且可能被訪問(wèn)的物理 內(nèi)存的地址范圍。一旦訪存?zhèn)陕爢卧鶕?jù)訪存請(qǐng)求攜帶的訪存地址查詢到訪存地址屬于配 置單元配置的所監(jiān)控地址空間范圍,則訪存?zhèn)陕爢卧梢詫⒃L存地址發(fā)送至虛擬機(jī)頁(yè)表信 息維護(hù)單元,也可以由配置單元將訪存地址發(fā)送至虛擬機(jī)頁(yè)表信息維護(hù)單元。虛擬機(jī)頁(yè)表 信息維護(hù)單元與虛擬機(jī)管理模塊是連接在一起或者能夠以某種方式與虛擬機(jī)管理模塊中 的功能單元交互,接收虛擬機(jī)管理模塊發(fā)送過(guò)來(lái)的虛擬機(jī)頁(yè)表信息后更新其中維護(hù)的每個(gè) 虛擬機(jī)的頁(yè)表信息。在虛擬機(jī)頁(yè)表信息維護(hù)單元收到訪存?zhèn)陕爢卧蚺渲脝卧l(fā)送的訪存 地址后,遍歷所有虛擬機(jī)的頁(yè)表信息,直至在某個(gè)虛擬機(jī)的頁(yè)表信息中找到該訪存地址,從 而確定該訪存地址對(duì)應(yīng)的虛擬機(jī)。之后,虛擬機(jī)頁(yè)表信息維護(hù)單元將該虛擬機(jī)對(duì)應(yīng)的虛擬 機(jī)編號(hào)信息和該訪存地址一起發(fā)送相應(yīng)的虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元。
[0062] 在上述任一示例的調(diào)控虛擬機(jī)物理內(nèi)存的方法中,虛擬機(jī)管理模塊可以包括虛擬 機(jī)頁(yè)表監(jiān)控單元、虛擬機(jī)內(nèi)存決策單元和虛擬機(jī)頁(yè)表監(jiān)控單元。虛擬機(jī)頁(yè)表監(jiān)控單元監(jiān)控 虛擬機(jī)頁(yè)表的改變,并將更新的虛擬機(jī)頁(yè)表信息傳送至內(nèi)存監(jiān)控器。虛擬機(jī)內(nèi)存決策單元 根據(jù)內(nèi)存監(jiān)控器返回的虛擬機(jī)訪問(wèn)特征信息確定內(nèi)存管理決策,并將內(nèi)存管理決策傳送至 虛擬機(jī)內(nèi)存管理單元。虛擬機(jī)內(nèi)存管理單元根據(jù)虛擬機(jī)內(nèi)存決策單元傳送的內(nèi)存管理決 策,調(diào)控分配給對(duì)應(yīng)的虛擬機(jī)的物理內(nèi)存。具體地,虛擬機(jī)頁(yè)表監(jiān)控單元所監(jiān)控的虛擬機(jī) 頁(yè)表的改變包括:虛擬機(jī)管理模塊創(chuàng)建虛擬機(jī)時(shí)為新創(chuàng)建的虛擬機(jī)對(duì)應(yīng)創(chuàng)建一個(gè)虛擬機(jī)頁(yè) 表,即虛擬機(jī)頁(yè)表的改變包括新增虛擬機(jī)頁(yè)表,也包括虛擬機(jī)管理模塊為虛擬機(jī)增加頁(yè)面 或釋放頁(yè)面時(shí),對(duì)該虛擬機(jī)頁(yè)表項(xiàng)的修改等等,虛擬機(jī)頁(yè)表的改變構(gòu)成更新的虛擬機(jī)頁(yè)表 信息,將由虛擬機(jī)管理模塊或者其虛擬機(jī)頁(yè)表監(jiān)控單元傳送至內(nèi)存監(jiān)控器或其虛擬機(jī)頁(yè)表 信息維護(hù)單元,虛擬機(jī)頁(yè)表信息維護(hù)單元根據(jù)新的虛擬機(jī)頁(yè)表信息更新對(duì)與某個(gè)虛擬機(jī)對(duì) 應(yīng)的虛擬機(jī)頁(yè)表信息進(jìn)行更新。虛擬機(jī)內(nèi)存決策單元根據(jù)內(nèi)存監(jiān)控器返回的虛擬機(jī)訪問(wèn)特 征信息確定內(nèi)存管理決策,將內(nèi)存管理決策傳送至虛擬機(jī)內(nèi)存管理單元后,虛擬機(jī)內(nèi)存管 理單元根據(jù)虛擬機(jī)內(nèi)存決策單元傳送的內(nèi)存管理決策,調(diào)控分配給對(duì)應(yīng)的虛擬機(jī)的物理內(nèi) 存,包括為指定的虛擬機(jī)分配新的物理內(nèi)存、暫時(shí)凍結(jié)物理內(nèi)存或者釋放某個(gè)虛擬機(jī)的全 部或部分物理內(nèi)存等。
[0063] 以上述虛擬機(jī)管理模塊包括虛擬機(jī)頁(yè)表監(jiān)控單元、虛擬機(jī)內(nèi)存決策單元和虛擬機(jī) 頁(yè)表監(jiān)控單元,虛擬機(jī)確定模塊包括訪存?zhèn)陕爢卧?、配置單元和虛擬機(jī)頁(yè)表信息維護(hù)單元 為例,虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元對(duì)應(yīng)虛擬機(jī)的虛擬機(jī)訪問(wèn)特征信息即虛擬機(jī)的工作集大小 以及虛擬機(jī)對(duì)應(yīng)物理頁(yè)面的訪問(wèn)頻度等信息,通過(guò)虛擬機(jī)信息反饋通路傳送至虛擬機(jī)管理 模塊的虛擬機(jī)內(nèi)存決策單元。虛擬機(jī)信息反饋通路的具體實(shí)現(xiàn)包括多種方式,例如,可以將 虛擬機(jī)訪問(wèn)特征信息存放到內(nèi)存監(jiān)控器的配置空間中,而且指定這部分配置空間的作用只 是為了虛擬機(jī)訪問(wèn)特征信息傳送至虛擬機(jī)管理模塊的虛擬機(jī)內(nèi)存決策單元;也可以通過(guò)類 似PCI的方式將虛擬機(jī)訪問(wèn)特征信息通過(guò)PCI接口傳送至虛擬機(jī)管理模塊的虛擬機(jī)內(nèi)存決 策單元。虛擬機(jī)信息反饋通路的實(shí)現(xiàn)跟內(nèi)存監(jiān)控器的存在形式具有一些關(guān)聯(lián),例如,內(nèi)存監(jiān) 控器存在于前述實(shí)施例的第二總線即連接內(nèi)存控制器與內(nèi)存芯片的總線上時(shí),內(nèi)存監(jiān)控器 通過(guò)旁路硬件或是其他方式偵聽第二總線上的訪存請(qǐng)求,根據(jù)這些訪存請(qǐng)求可以推算出請(qǐng) 求的地址和數(shù)據(jù),對(duì)于內(nèi)存監(jiān)控器的這種存在形式,可以在旁路硬件上增加 PCI-e的接口, 內(nèi)存監(jiān)控器通過(guò)PCI-e鏈路將虛擬機(jī)訪問(wèn)特征信息反饋至虛擬機(jī)管理模塊,此時(shí),虛擬機(jī) 信息反饋通路即PCI-e鏈路;再如,內(nèi)存監(jiān)控器也可以存在于內(nèi)存控制器中,此時(shí),內(nèi)存監(jiān) 控器只需要監(jiān)控內(nèi)存控制器中接收中央處理器發(fā)送訪存請(qǐng)求的部件即可獲取請(qǐng)求的訪存 地址或數(shù)據(jù),對(duì)于內(nèi)存監(jiān)控器的這種存在形式,可以在內(nèi)存控制器增加一些配置接口,例如 寄存器,虛擬機(jī)訪問(wèn)特征信息存放在這些寄存器中,虛擬機(jī)管理模塊可以直接讀取寄存器 的值,內(nèi)存控制器的寄存器接口即虛擬機(jī)信息反饋通路。
[0064] 從上述本發(fā)明實(shí)施例提供的調(diào)控虛擬機(jī)物理內(nèi)存的方法可知,內(nèi)存監(jiān)控器能夠?qū)?獲取的虛擬機(jī)訪問(wèn)特征信息傳遞至虛擬機(jī)管理模塊供所述虛擬機(jī)管理模塊進(jìn)行內(nèi)存管理 的決策,虛擬機(jī)管理模塊在監(jiān)控到虛擬機(jī)的頁(yè)表改變時(shí),基于內(nèi)存監(jiān)控器返回的虛擬機(jī)訪 問(wèn)特征信息執(zhí)行對(duì)虛擬機(jī)物理內(nèi)存的調(diào)控。由于虛擬機(jī)管理模塊在監(jiān)控到的虛擬機(jī)頁(yè)表改 變信息和內(nèi)存監(jiān)控器返回的虛擬機(jī)訪問(wèn)特征信息都是對(duì)訪存請(qǐng)求的實(shí)際監(jiān)控獲得,不是一 個(gè)采樣或統(tǒng)計(jì)得到的推測(cè)結(jié)果,因此,與現(xiàn)有技術(shù)提供的動(dòng)態(tài)調(diào)控制虛擬機(jī)內(nèi)存的方法相 t匕,本發(fā)明實(shí)施例提供的方法可以獲得比較準(zhǔn)確的物理內(nèi)存調(diào)控的依據(jù),依此依據(jù)能夠得 到比較準(zhǔn)確的調(diào)控決策,從而能夠通過(guò)準(zhǔn)確調(diào)控為虛擬機(jī)分配的物理內(nèi)存來(lái)提高物理內(nèi)存 資源的利用率。
[0065] 以下以附圖5_d示例的調(diào)控虛擬機(jī)物理內(nèi)存的裝置為例,進(jìn)一步說(shuō)明本發(fā)明實(shí)施 例提供的調(diào)控虛擬機(jī)物理內(nèi)存的方法。請(qǐng)參閱附圖7,是本發(fā)明另一實(shí)施例提供的調(diào)控虛擬 機(jī)物理內(nèi)存的方法流程圖,詳細(xì)說(shuō)明如下:
[0066] S701,創(chuàng)建并運(yùn)行虛擬機(jī),同時(shí)執(zhí)行S702和S706。
[0067] 創(chuàng)建并運(yùn)行虛擬機(jī)的工作由虛擬機(jī)管理模塊負(fù)責(zé)完成。
[0068] S702,調(diào)控物理內(nèi)存。
[0069] 具體包括:在創(chuàng)建虛擬機(jī)時(shí),虛擬機(jī)管理模塊為虛擬機(jī)分配物理內(nèi)存,或是在運(yùn)行 過(guò)程中,虛擬機(jī)管理模塊為虛擬機(jī)增加物理內(nèi)存、凍結(jié)物理內(nèi)存或減少物理內(nèi)存。
[0070] S703,監(jiān)控各虛擬機(jī)頁(yè)表的變化。
[0071] 具體地,由虛擬機(jī)頁(yè)表監(jiān)控單元監(jiān)控虛擬機(jī)頁(yè)表的創(chuàng)建和修改等動(dòng)作。
[0072] S704,將更新的虛擬機(jī)頁(yè)表信息傳送至內(nèi)存監(jiān)控器。
[0073] 具體地,虛擬機(jī)頁(yè)表監(jiān)控單元將監(jiān)控虛擬機(jī)頁(yè)表的創(chuàng)建和修改等獲得的新的虛擬 機(jī)頁(yè)表信息傳送至內(nèi)存監(jiān)控器,可以通過(guò)將虛擬機(jī)頁(yè)表信息寫入到內(nèi)存監(jiān)控器的配置空間 中來(lái)實(shí)現(xiàn)。
[0074] S705,將從配置空間中獲取的虛擬機(jī)頁(yè)表信息更新到虛擬機(jī)頁(yè)表信息維護(hù)單元 中,之后跳轉(zhuǎn)到S703執(zhí)行。
[0075] 具體地,內(nèi)存監(jiān)控器將從配置空間中獲取的虛擬機(jī)頁(yè)表信息更新到虛擬機(jī)頁(yè)表信 息維護(hù)單元中,之后跳轉(zhuǎn)到S703執(zhí)行。
[0076] S706,確定當(dāng)前訪存請(qǐng)求所屬的虛擬機(jī)。
[0077] 具體地,由內(nèi)存監(jiān)控器的訪存?zhèn)陕爢卧獙?shí)時(shí)監(jiān)測(cè)訪存請(qǐng)求(其中攜帶訪存地址), 查詢配置單元,再由虛擬機(jī)頁(yè)表信息維護(hù)單元確定出當(dāng)前訪存地址對(duì)應(yīng)的虛擬機(jī)。
[0078] S707,更新虛擬機(jī)訪問(wèn)特征信息。
[0079] 具體地,由訪存地址對(duì)應(yīng)的虛擬機(jī)對(duì)應(yīng)的虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元更新其所維護(hù) 的虛擬機(jī)訪問(wèn)特征信息,包括虛擬機(jī)的工作集大小以及虛擬機(jī)對(duì)應(yīng)物理頁(yè)面的訪問(wèn)頻度 等。
[0080] S708,根據(jù)虛擬機(jī)的內(nèi)存訪問(wèn)情況計(jì)算當(dāng)前虛擬機(jī)的虛擬機(jī)訪問(wèn)特征信息。
[0081] 包括:虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元根據(jù)虛擬機(jī)的內(nèi)存訪問(wèn)情況計(jì)算當(dāng)前虛擬機(jī)的工 作集大小和物理頁(yè)面訪問(wèn)頻度等信息,之后跳轉(zhuǎn)到S706執(zhí)行。
[0082] 需要說(shuō)明的是,上述裝置各模塊/單元之間的信息交互、執(zhí)行過(guò)程等內(nèi)容,由于與 本發(fā)明方法實(shí)施例基于同一構(gòu)思,其帶來(lái)的技術(shù)效果與本發(fā)明方法實(shí)施例相同,具體內(nèi)容 可參見本發(fā)明方法實(shí)施例中的敘述,此處不再贅述。
[0083] 本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可 以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,比如以下各種方法的一種或多種或全部:
[0084] 內(nèi)存監(jiān)控器通過(guò)獲取的訪存請(qǐng)求以及基于虛擬機(jī)管理模塊傳送的更新的虛擬機(jī) 頁(yè)表信息,獲取虛擬機(jī)訪問(wèn)特征信息,將所述虛擬機(jī)訪問(wèn)特征信息傳遞至所述虛擬機(jī)管理 模塊;
[0085] 虛擬機(jī)管理模塊監(jiān)控到虛擬機(jī)的頁(yè)表改變時(shí),將更新的虛擬機(jī)頁(yè)表信息傳送至所 述內(nèi)存監(jiān)控器,并基于所述內(nèi)存監(jiān)控器返回的虛擬機(jī)訪問(wèn)特征信息執(zhí)行對(duì)虛擬機(jī)物理內(nèi)存 的調(diào)控。
[0086] 本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可 以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存 儲(chǔ)介質(zhì)可以包括:只讀存儲(chǔ)器(ROM,Read Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁盤或光盤等。
[0087] 以上對(duì)本發(fā)明實(shí)施例提供的一種調(diào)控虛擬機(jī)物理內(nèi)存的方法和裝置進(jìn)行了詳細(xì) 介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明 只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本 發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書內(nèi)容不應(yīng) 理解為對(duì)本發(fā)明的限制。
【權(quán)利要求】
1. 一種調(diào)控虛擬機(jī)物理內(nèi)存的裝置,其特征在于,所述裝置包括內(nèi)存監(jiān)控器和虛擬機(jī) 管理模塊; 所述內(nèi)存監(jiān)控器,用于通過(guò)獲取的訪存請(qǐng)求以及基于所述虛擬機(jī)管理模塊傳送的更新 的虛擬機(jī)頁(yè)表信息,獲取虛擬機(jī)訪問(wèn)特征信息,將所述虛擬機(jī)訪問(wèn)特征信息傳遞至所述虛 擬機(jī)管理模塊; 所述虛擬機(jī)管理模塊,用于監(jiān)控到虛擬機(jī)的頁(yè)表改變時(shí),將更新的虛擬機(jī)頁(yè)表信息傳 送至所述內(nèi)存監(jiān)控器,并基于所述內(nèi)存監(jiān)控器返回的虛擬機(jī)訪問(wèn)特征信息執(zhí)行對(duì)虛擬機(jī)物 理內(nèi)存的調(diào)控。
2. 如權(quán)利要求1所述的裝置,其特征在于,所述裝置還包括內(nèi)存控制器,所述內(nèi)存控制 器通過(guò)第一總線與所述虛擬機(jī)管理模塊連接,所述內(nèi)存控制器通過(guò)第二總線與內(nèi)存芯片連 接,所述內(nèi)存監(jiān)控器通過(guò)偵聽所述第一總線或第二總線獲取所述訪存請(qǐng)求;或者 所述內(nèi)存控制器包括所述內(nèi)存監(jiān)控器,所述內(nèi)存監(jiān)控器從所述內(nèi)存控制器獲取所述訪 存請(qǐng)求。
3. 如權(quán)利要求2所述的裝置,其特征在于,所述內(nèi)存監(jiān)控器包括虛擬機(jī)確定模塊和至 少一個(gè)虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元,每一個(gè)所述虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元對(duì)應(yīng)于一個(gè)虛擬 機(jī); 所述虛擬機(jī)確定模塊,用于根據(jù)所述訪存請(qǐng)求確定所述訪存請(qǐng)求中攜帶的訪存地址對(duì) 應(yīng)的虛擬機(jī),并將所述訪存地址和訪存地址對(duì)應(yīng)的虛擬機(jī)的編號(hào)信息傳送至與所述虛擬機(jī) 對(duì)應(yīng)的虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元; 所述虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元,用于根據(jù)所述訪存地址和訪存地址對(duì)應(yīng)的虛擬機(jī)的編 號(hào)信息生成對(duì)應(yīng)虛擬機(jī)的虛擬機(jī)訪問(wèn)特征信息,將所述虛擬機(jī)訪問(wèn)特征信息傳遞至所述虛 擬機(jī)管理模塊。
4. 如權(quán)利要求3所述的裝置,其特征在于,所述虛擬機(jī)確定模塊包括訪存?zhèn)陕爢卧?、?置單元和虛擬機(jī)頁(yè)表信息維護(hù)單元; 所述訪存?zhèn)陕爢卧糜谠趥陕牭剿鲈L存請(qǐng)求后,根據(jù)所述訪存請(qǐng)求攜帶的訪存地 址查詢所述配置單元,在所述訪存地址屬于所述配置單元配置的所監(jiān)控地址空間范圍時(shí), 將所述訪存地址發(fā)送至所述虛擬機(jī)頁(yè)表信息維護(hù)單元; 所述配置單元,用于配置所監(jiān)控地址空間范圍,接受所述訪存?zhèn)陕爢卧獙?duì)其配置的所 監(jiān)控地址空間范圍的查詢,或者,在接受所述訪存?zhèn)陕爢卧獙?duì)其配置的所監(jiān)控地址空間范 圍的查詢并且所述訪存地址屬于所述配置的所監(jiān)控地址空間范圍時(shí),將所述訪存地址發(fā)送 至所述虛擬機(jī)頁(yè)表信息維護(hù)單元; 所述虛擬機(jī)頁(yè)表信息維護(hù)單元,用于根據(jù)其維護(hù)的虛擬機(jī)頁(yè)表信息和收到的所述訪存 地址,確定所述訪存地址對(duì)應(yīng)的虛擬機(jī),將所述訪存地址和訪存地址對(duì)應(yīng)的虛擬機(jī)的編號(hào) 信息傳送至與所述虛擬機(jī)對(duì)應(yīng)的虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元。
5. 如權(quán)利要求1至4任意一項(xiàng)所述的裝置,其特征在于,所述虛擬機(jī)管理模塊包括虛擬 機(jī)頁(yè)表監(jiān)控單元、虛擬機(jī)內(nèi)存決策單元和虛擬機(jī)內(nèi)存管理單元; 所述虛擬機(jī)頁(yè)表監(jiān)控單元,用于監(jiān)控虛擬機(jī)頁(yè)表的改變,并將更新的虛擬機(jī)頁(yè)表信息 傳送至所述內(nèi)存監(jiān)控器; 所述虛擬機(jī)內(nèi)存決策單元,用于根據(jù)所述內(nèi)存監(jiān)控器返回的虛擬機(jī)訪問(wèn)特征信息確定 內(nèi)存管理決策,并將所述內(nèi)存管理決策傳送至所述虛擬機(jī)內(nèi)存管理單元; 所述虛擬機(jī)內(nèi)存管理單元,用于根據(jù)所述內(nèi)存管理決策,調(diào)控分配給對(duì)應(yīng)的虛擬機(jī)的 物理內(nèi)存。
6. -種調(diào)控虛擬機(jī)物理內(nèi)存的方法,其特征在于,所述方法包括: 內(nèi)存監(jiān)控器通過(guò)獲取的訪存請(qǐng)求以及基于虛擬機(jī)管理模塊傳送的更新的虛擬機(jī)頁(yè) 表信息,獲取虛擬機(jī)訪問(wèn)特征信息,將所述虛擬機(jī)訪問(wèn)特征信息傳遞至所述虛擬機(jī)管理模 塊; 所述虛擬機(jī)管理模塊監(jiān)控到虛擬機(jī)的頁(yè)表改變時(shí),將更新的虛擬機(jī)頁(yè)表信息傳送至所 述內(nèi)存監(jiān)控器,并基于所述內(nèi)存監(jiān)控器返回的虛擬機(jī)訪問(wèn)特征信息執(zhí)行對(duì)虛擬機(jī)物理內(nèi)存 的調(diào)控。
7. 如權(quán)利要求6所述的方法,其特征在于,所述虛擬機(jī)管理模塊通過(guò)第一總線與內(nèi)存 控制器連接,所述內(nèi)存控制器通過(guò)第二總線與內(nèi)存芯片連接,所述內(nèi)存監(jiān)控器通過(guò)偵聽所 述第一總線或第二總線獲取所述訪存請(qǐng)求;或者 所述內(nèi)存控制器包括所述內(nèi)存監(jiān)控器,所述內(nèi)存監(jiān)控器從所述內(nèi)存控制器獲取所述訪 存請(qǐng)求。
8. 如權(quán)利要求7所述的方法,其特征在于,所述內(nèi)存監(jiān)控器包括虛擬機(jī)確定模塊和至 少一個(gè)虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元,每一個(gè)所述虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元對(duì)應(yīng)于一個(gè)虛擬 機(jī),所述內(nèi)存監(jiān)控器通過(guò)獲取的訪存請(qǐng)求以及基于虛擬機(jī)管理模塊傳送的虛擬機(jī)頁(yè)表信 息,獲取虛擬機(jī)訪問(wèn)特征信息,將所述虛擬機(jī)訪問(wèn)特征信息傳遞至所述虛擬機(jī)管理模塊包 括: 所述虛擬機(jī)確定模塊根據(jù)所述訪存請(qǐng)求確定所述訪存請(qǐng)求中攜帶的訪存地址對(duì)應(yīng)的 虛擬機(jī),并將所述訪存地址和訪存地址對(duì)應(yīng)的虛擬機(jī)的編號(hào)信息傳送至與所述虛擬機(jī)對(duì)應(yīng) 的虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元; 所述虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元根據(jù)所述虛擬機(jī)確定模塊傳送的訪存地址和訪存地址 對(duì)應(yīng)的虛擬機(jī)的編號(hào)信息生成對(duì)應(yīng)虛擬機(jī)的虛擬機(jī)訪問(wèn)特征信息,將所述虛擬機(jī)訪問(wèn)特征 信息傳遞至所述虛擬機(jī)管理模塊。
9. 如權(quán)利要求8所述的方法,其特征在于,所述虛擬機(jī)確定模塊包括訪存?zhèn)陕爢卧⑴?置單元和虛擬機(jī)頁(yè)表信息維護(hù)單元,所述虛擬機(jī)確定模塊根據(jù)所述訪存請(qǐng)求確定所述訪存 請(qǐng)求中攜帶的訪存地址對(duì)應(yīng)的虛擬機(jī),并將所述訪存地址和訪存地址對(duì)應(yīng)的虛擬機(jī)的編號(hào) 信息傳送至與所述虛擬機(jī)對(duì)應(yīng)的虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元包括: 所述訪存?zhèn)陕爢卧趥陕牭剿鲈L存請(qǐng)求后,根據(jù)所述訪存請(qǐng)求攜帶的訪存地址查詢 所述配置單元,在所述訪存地址屬于所述配置單元配置的所監(jiān)控地址空間范圍時(shí),將所述 訪存地址發(fā)送至所述虛擬機(jī)頁(yè)表信息維護(hù)單元; 所述配置單元配置所監(jiān)控地址空間范圍,接受所述訪存?zhèn)陕爢卧獙?duì)其配置的所監(jiān)控地 址空間范圍的查詢,或者,在接受所述訪存?zhèn)陕爢卧獙?duì)其配置的所監(jiān)控地址空間范圍的查 詢并且所述訪存地址屬于所述配置的所監(jiān)控地址空間范圍時(shí),將所述訪存地址發(fā)送至所述 虛擬機(jī)頁(yè)表信息維護(hù)單元; 所述虛擬機(jī)頁(yè)表信息維護(hù)單元根據(jù)其維護(hù)的虛擬機(jī)頁(yè)表信息和所述訪存?zhèn)陕爢卧?所述配置單元發(fā)送的訪存地址,確定所述訪存地址對(duì)應(yīng)的虛擬機(jī),將所述訪存地址和訪存 地址對(duì)應(yīng)的虛擬機(jī)的編號(hào)信息傳送至與所述虛擬機(jī)對(duì)應(yīng)的虛擬機(jī)內(nèi)存訪問(wèn)監(jiān)控單元。
10.如權(quán)利要求6至9任意一項(xiàng)所述的方法,其特征在于,所述虛擬機(jī)管理模塊包括虛 擬機(jī)頁(yè)表監(jiān)控單元、虛擬機(jī)內(nèi)存決策單元和虛擬機(jī)內(nèi)存管理單元,所述虛擬機(jī)管理模塊監(jiān) 控到虛擬機(jī)的頁(yè)表改變時(shí),將更新的虛擬機(jī)頁(yè)表信息傳送至所述內(nèi)存監(jiān)控器,并基于所述 內(nèi)存監(jiān)控器返回的虛擬機(jī)訪問(wèn)特征信息執(zhí)行對(duì)虛擬機(jī)物理內(nèi)存的調(diào)控包括: 所述虛擬機(jī)頁(yè)表監(jiān)控單元監(jiān)控虛擬機(jī)頁(yè)表,在監(jiān)控到虛擬機(jī)頁(yè)表改變時(shí)將更新的虛擬 機(jī)頁(yè)表信息傳送至所述內(nèi)存監(jiān)控器; 所述虛擬機(jī)內(nèi)存決策單元根據(jù)所述內(nèi)存監(jiān)控器返回的虛擬機(jī)訪問(wèn)特征信息確定內(nèi)存 管理決策,并將所述內(nèi)存管理決策傳送至所述虛擬機(jī)內(nèi)存管理單元; 所述虛擬機(jī)內(nèi)存管理單元根據(jù)所述虛擬機(jī)內(nèi)存決策單元傳送的內(nèi)存管理決策,調(diào)控分 配給對(duì)應(yīng)的虛擬機(jī)的物理內(nèi)存。
【文檔編號(hào)】G06F9/455GK104063281SQ201310092264
【公開日】2014年9月24日 申請(qǐng)日期:2013年3月21日 優(yōu)先權(quán)日:2013年3月21日
【發(fā)明者】黃永兵, 陳荔城, 阮元 申請(qǐng)人:華為技術(shù)有限公司, 中國(guó)科學(xué)院計(jì)算技術(shù)研究所