亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

用于在虛擬機(jī)監(jiān)視器環(huán)境中的虛擬機(jī)之間同步瞬時資源使用的系統(tǒng)和方法

文檔序號:6350454閱讀:244來源:國知局
專利名稱:用于在虛擬機(jī)監(jiān)視器環(huán)境中的虛擬機(jī)之間同步瞬時資源使用的系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及應(yīng)用服務(wù)器和虛擬機(jī),特別涉及用于在虛擬機(jī)監(jiān)視器 (hypervisor)內(nèi)運(yùn)行的虛擬機(jī)(例如,JVM)之間同步瞬時資源使用情況的系統(tǒng)和方法。
背景技術(shù)
使用虛擬機(jī)監(jiān)視器的服務(wù)器虛擬化是降低服務(wù)器的操作成本以及改善能量效率的有價值的技術(shù)。帶有標(biāo)準(zhǔn)操作系統(tǒng)和不同的服務(wù)器應(yīng)用的標(biāo)準(zhǔn)服務(wù)器很少一直被完全使用。由于當(dāng)軟件空閑時當(dāng)前服務(wù)器硬件不會顯著降低能量消耗,這將導(dǎo)致能量浪費(fèi)。服務(wù)器虛擬化可使許多虛擬服務(wù)器在單個物理服務(wù)器上運(yùn)行,因此,以前浪費(fèi)的處理器(cpu) 周期和存儲器可以供另一個虛擬服務(wù)器使用。使此成為可能的軟件此處被稱為虛擬機(jī)監(jiān)視
O當(dāng)操作系統(tǒng)和服務(wù)器應(yīng)用被虛擬化到物理硬件上時,必須提供安全裕量,以處理當(dāng)服務(wù)器應(yīng)用的CPU周期使用和/或存儲器使用中有突發(fā)浪涌時的那些情況。取決于服務(wù)器應(yīng)用資源使用的易失性如何,此裕量可以是很小的或大的。如果在虛擬機(jī)監(jiān)視器內(nèi)運(yùn)行的所有虛擬服務(wù)器的總的易失性低,那么,裕量可以保持得小些,這將一般提供較高的節(jié)省量,因?yàn)楦嗵摂M服務(wù)器可以可靠地在同一個物理硬件上運(yùn)行。許多服務(wù)器應(yīng)用當(dāng)前是以高級語言Java編寫的。這樣的應(yīng)用與Java虛擬機(jī)(JVM) 一起運(yùn)行。令人遺憾的是,JVM的cpu周期和存儲器使用十分易失,并獨(dú)立于服務(wù)器應(yīng)用本身。這是由于這一事實(shí)JVM必須對Java堆進(jìn)行垃圾收集,以及優(yōu)化被檢測為熱點(diǎn)的代碼。 這些資源使用是瞬時的并且是顯著的。由于此,虛擬化的Java應(yīng)用需要比其他服務(wù)器應(yīng)用更大的安全裕量,這意味著虛擬化的Java服務(wù)器應(yīng)用的虛擬化節(jié)省量小于其他類型的服務(wù)器應(yīng)用的虛擬化節(jié)省量。這是本發(fā)明的各實(shí)施例旨在解決的方面。

發(fā)明內(nèi)容
此處公開了用于在虛擬機(jī)監(jiān)視器內(nèi)運(yùn)行的虛擬機(jī)(例如,Java虛擬機(jī)(JVM))之間同步瞬時資源使用的系統(tǒng)和方法。根據(jù)一個實(shí)施例,系統(tǒng)允許同步垃圾收集和代碼優(yōu)化, 以降低瞬時處理器(cpu)和存儲器使用。根據(jù)一個實(shí)施例,系統(tǒng)包括計算機(jī);用于執(zhí)行各自運(yùn)行JVM的虛擬服務(wù)器的虛擬機(jī)監(jiān)視器;虛擬服務(wù)器之間的通信信道;其中,每一虛擬服務(wù)器進(jìn)一步包括非瞬時和瞬時存儲器和同步模塊。根據(jù)一個實(shí)施例,同步模塊調(diào)度垃圾收集和代碼優(yōu)化以最小化重疊,從而降低峰值瞬時存儲器和cpu使用,以及所產(chǎn)生的計算機(jī)內(nèi)的瞬時資源使用的易失性。根據(jù)另一實(shí)施例,云管理器可以在計算機(jī)之間移動虛擬服務(wù)器, 以優(yōu)化云內(nèi)的計算機(jī)易失性。


圖1示出了根據(jù)一個實(shí)施例的用于同步瞬時資源使用的系統(tǒng)的圖示。圖2示出了根據(jù)一個實(shí)施例的示出了如何提前垃圾回收的圖。圖3示出了根據(jù)一個實(shí)施例的如何使用輪詢的方案來防止單獨(dú)的JVM中的并行代碼優(yōu)化的圖示。圖4示出了根據(jù)一個實(shí)施例的如何通過提前垃圾收集和推遲代碼優(yōu)化來在三個 JVM之間實(shí)現(xiàn)同步的圖示。圖5示出了根據(jù)一個實(shí)施例以不同規(guī)模實(shí)現(xiàn)的同步和低易失性的圖示。圖6示出了根據(jù)一個實(shí)施例的同步瞬時資源使用的方法的流程圖。圖7示出了根據(jù)一個實(shí)施例的提前垃圾收集以避免重疊的方法的流程圖。圖8示出了根據(jù)一個實(shí)施例的云管理器如何控制計算機(jī)的云以降低計算機(jī)易失性的圖示。圖9示出了根據(jù)一個實(shí)施例的云管理器如何控制計算機(jī)的云以減少計算機(jī)資源使用的圖示。
具體實(shí)施例方式此處描述了用于在虛擬機(jī)(例如,在虛擬機(jī)監(jiān)視器內(nèi)運(yùn)行的JVM)之間同步瞬時資源使用的系統(tǒng)和方法。如此處所描述的,需要降低每一虛擬服務(wù)器的資源使用易失性,以允許更多虛擬服務(wù)器在同一個虛擬機(jī)監(jiān)視器內(nèi)安全地運(yùn)行。令人遺憾的是,JVM對于可以消耗大量的存儲器和處理器(cpu)資源的垃圾收集和代碼優(yōu)化具有相當(dāng)高的易失性。根據(jù)一個實(shí)施例,提供了通過提前或推遲不同的JVM中的進(jìn)程的執(zhí)行而允許瞬時資源使用被同步從而避免瞬時資源使用中的峰值的系統(tǒng)和方法;如此,降低易失性并允許更多虛擬服務(wù)器在單個虛擬機(jī)監(jiān)視器內(nèi)以相同安全裕量運(yùn)行。這是可能的,因?yàn)槔占痛a優(yōu)化是這樣的進(jìn)程其中,前者可以被提前,而后者可以被推遲,而不會顯著影響正在運(yùn)行的系統(tǒng)的性能。避免重疊的進(jìn)程并不總是可能的。固定時間段內(nèi)的重疊的瞬時進(jìn)程的數(shù)量是計算機(jī)的總的易失性的指標(biāo)。根據(jù)一個實(shí)施例,此數(shù)量可以被用來評估計算機(jī)是否具有好的安全裕量。根據(jù)另一實(shí)施例,虛擬服務(wù)器可以在云內(nèi)的計算機(jī)之間移動,以降低具有高易失性的服務(wù)器的易失性,并增大具有無效力地低的易失性的服務(wù)器的易失性。根據(jù)另一實(shí)施例, 只能運(yùn)行單個JVM的定制的操作系統(tǒng)可以降低虛擬服務(wù)器的易失性,因?yàn)闆]有其他可能的進(jìn)程爭奪資源。圖1示出了根據(jù)一個實(shí)施例的系統(tǒng)的圖示。如圖1所示,系統(tǒng)的實(shí)施例一般包括具有在其上面運(yùn)行了多個虛擬服務(wù)器104,105,107的虛擬機(jī)監(jiān)視器102的計算機(jī)100。每一虛擬服務(wù)器都運(yùn)行需要內(nèi)部存儲器106,109,111才能運(yùn)轉(zhuǎn)的JVM。每一虛擬服務(wù)器進(jìn)一步包括執(zhí)行應(yīng)用服務(wù)器代碼所需的Java堆108,113,115。內(nèi)部存儲器和堆兩者都被視為緩慢地改變大小的非瞬時存儲器110 (如果是的話)。諸如垃圾收集之類的短壽命的進(jìn)程要求存儲器112執(zhí)行。短命的進(jìn)程的其他示例是代碼優(yōu)化,以及它執(zhí)行所需的存儲器114。這些短命的進(jìn)程所需的存儲器被視為瞬時存儲器 116。每一虛擬服務(wù)器包含同步模塊118,119,120。隨機(jī)地選擇這些同步模塊中的一個為主同步模塊120。主同步模塊使用通信信道122來同步在虛擬機(jī)監(jiān)視器內(nèi)運(yùn)行的所有虛擬服務(wù)器的瞬時資源使用。這可以用于例如防止并行運(yùn)行不同虛擬服務(wù)器中的垃圾收集和碼生成,并且從而降低瞬時存儲器和cpu循環(huán)的峰值使用情況。圖2示出了根據(jù)一個實(shí)施例的示出了如何提前垃圾回收的圖。如圖2所示,圖200 示出了 Java堆的已使用的存儲器202如何隨著時間的推移而增大的示例。已使用的存儲器中的每一小的下降204都是非??焖俚牟⒁笊倭康腸pu和存儲器使用的幼兒園(nursery)垃圾收集的結(jié)果。已使用的存儲器206中的比較大的下降是可以要求大量的cpu和存儲器使用的整個堆垃圾收集的結(jié)果。當(dāng)在時間208用完所有Java堆時,將迫使整個堆垃圾收集。根據(jù)一個實(shí)施例,可以利用Java堆使用圖的斜率的線性近似,并延長此線,直到它達(dá)到Java堆大小210,來預(yù)測此時間。可以預(yù)測垃圾的結(jié)束時間是開始時間加同一個JVM中的前一垃圾收集的長度。垃圾收集可以在208之前任何時候啟動,S卩,它被提前到其天然的執(zhí)行時間(這是 Java堆已滿時)之前。在時間212,主同步模塊需要將預(yù)測的垃圾收集從時間208提前到時間214。根據(jù)一個實(shí)施例,這是通過使用通信信道122來發(fā)送開始GC令牌216以及合適的期限來實(shí)現(xiàn)的,以確保GC在時間214之前發(fā)生。圖3示出了根據(jù)一個實(shí)施例的如何使用由主同步模塊控制的輪詢方案來防止各個JVM中發(fā)生并行代碼優(yōu)化的圖示。如圖3所示,提供了三個優(yōu)化隊列300,301,303,一個隊列用于多個JVM中的每一個,其中,每一隊列都包含需要對于該JVM被優(yōu)化的方法的列表。已優(yōu)化的代碼通常不在不同的JVM之間共享,因?yàn)閮?yōu)化有時取決于在JVM之間可能不同的運(yùn)行時行為。不在不同的JVM之間共享已優(yōu)化的代碼的另一原因是,已優(yōu)化的代碼還編碼對只在該特定JVM內(nèi)有效的固定地址的多個運(yùn)行時引用。如果已優(yōu)化的代碼將在不同的JVMs之間移動,這些引用必須被重新鏈接。如此示例所示,在第一 JVM已經(jīng)優(yōu)化了方法 Buyer. toString 302之后,同步模塊將優(yōu)化令牌304傳輸?shù)降诙?JVM。在至多由優(yōu)化令牌所指定的某一時間(在本實(shí)例中是Is)內(nèi),優(yōu)化令牌給予該JVM優(yōu)化方法的權(quán)利。一旦方法被優(yōu)化,就可以將優(yōu)化令牌提供到另一 JVM,并且進(jìn)程以循環(huán)(striping)方式跨多個JVM 地繼續(xù)。有效地,JVM處的每個優(yōu)化被推遲,直到JVM接收到優(yōu)化令牌。如果JVM未能在分配的時間內(nèi)完成優(yōu)化,則它必須中止優(yōu)化,在此實(shí)例中示出為已中止的優(yōu)化306,稍后,當(dāng) JVM稍后被給予新優(yōu)化令牌時,重新啟動優(yōu)化。將失敗報告到同步模塊,該同步模塊可以將經(jīng)修改的優(yōu)化令牌308發(fā)送到JVM,該JVM使原始時隙的長度翻倍(在本實(shí)例中是2s)。如此,MusicPurchase. sample的優(yōu)化可以隨后被重新啟動310,并具有較高的完成可能性。圖4示出了根據(jù)一個實(shí)施例的如何通過提前垃圾收集和推遲代碼優(yōu)化來在三個 JVM之間實(shí)現(xiàn)同步的圖示。如圖4所示,垃圾收集和代碼優(yōu)化的日程表連續(xù)地發(fā)展,從日程表的不同實(shí)例400,402,404,406408。垃圾收集被可視化為矩形,而代碼優(yōu)化被可視化為橢圓。在所示出的示例中,在日程表400的第一實(shí)例中,在時間412,主同步模塊從JVMl 接收了預(yù)測的垃圾收集414,從時間412開始,在時間416終止。它還調(diào)度了代碼優(yōu)化418。 JVM 3預(yù)測了垃圾收集420 ;而JVM 2預(yù)測了收集422。在時間424,主同步模塊從JVM請求新預(yù)測,并將日程表從其原始實(shí)例400更新到經(jīng)修改的實(shí)例402。在此示例中,對于JVM 1,用新預(yù)測的垃圾收集426,更新日程表。主同步模塊還檢測到垃圾收集422的預(yù)測的開始時間移動到428,因此與當(dāng)前預(yù)測的垃圾收集
420重疊。為解決此,主同步模塊更新日程表404,并將垃圾收集420提前到足夠避免重疊的新時間430。它通過將合適的開始GC令牌發(fā)送到JVM 3來這樣做。令人遺憾的是,調(diào)度的優(yōu)化418必須被推遲,因?yàn)橐郧暗膬?yōu)化統(tǒng)計信息示出了它將不能在縮短的時間幀內(nèi)完成, 所以它不能被開始。因此,它被移動到時間432。在時間434,主同步模塊再次從JVM獲取最新的預(yù)測,并且因此可以更新日程表 406,408,并調(diào)度新優(yōu)化436。圖5示出了根據(jù)一個實(shí)施例的以不同規(guī)模實(shí)現(xiàn)的同步和低易失性的圖示。如圖5 所示,日程表500示出了反映現(xiàn)實(shí)世界值(在此示例中為20秒)的規(guī)模502的實(shí)際垃圾收集和代碼優(yōu)化。垃圾收集再次被可視化為矩形504,代碼優(yōu)化被可視化為橢圓506。在所示出的示例中,大部分垃圾收集和代碼優(yōu)化是不相重疊的,兩個垃圾收集被調(diào)度為同時發(fā)生的情況508和一個垃圾收集和一個代碼優(yōu)化同時發(fā)生的情況510除外。值得注意的是,沒有兩個代碼優(yōu)化被調(diào)度為同時發(fā)生。因此,重疊的數(shù)量是2,這是在20秒的時間段內(nèi)計算機(jī)的易失性。圖6示出了根據(jù)一個實(shí)施例的同步瞬時資源使用的方法的流程圖。如圖6所示, 在步驟600中,主同步模塊將等待來自任何JVM的、垃圾收集或代碼優(yōu)化已經(jīng)開始或結(jié)束的通知。JVM也可以通知主同步模塊,以前報告的預(yù)測的垃圾收集時間已經(jīng)改變。在步驟602 中,主同步模塊從在虛擬機(jī)監(jiān)視器內(nèi)運(yùn)行的所有JVM請求垃圾收集的開始和結(jié)束時間的預(yù)測。它相應(yīng)地更新日程表。在步驟604中,主同步模塊通過將預(yù)測的垃圾收集的開始時間提前,來檢測垃圾收集重疊并且最小化重疊。如果迫使JVM早于預(yù)測的進(jìn)行垃圾收集或如果垃圾收集不能被提前,則仍可以有重疊。如果應(yīng)用行為突然變化,則這會發(fā)生。在步驟606 中,主同步模塊檢測代碼優(yōu)化和垃圾收集之間的重疊,如果它發(fā)現(xiàn)重疊,則代碼優(yōu)化被延遲以避免重疊。如果迫使JVM早于預(yù)測的進(jìn)行垃圾收集,則仍可能有重疊。在步驟608中,主同步模塊使用輪詢機(jī)制來調(diào)度新代碼優(yōu)化。在步驟610中,主同步模塊再次進(jìn)入等待狀態(tài)。圖7示出了根據(jù)一個實(shí)施例的提前垃圾收集以避免重疊的方法的流程圖。如圖7 所示,在步驟700中,主同步模塊在每一垃圾收集的時間在每一開始和結(jié)束點(diǎn)重復(fù)。在每一時間點(diǎn),它計數(shù)在該特定時間點(diǎn),有多少其他垃圾收集是活動的。它存儲最大數(shù)量的并行活動的垃圾收集。在步驟702中,檢查存儲的數(shù)量是否是零,因?yàn)槿绻橇?,那么沒有重疊的垃圾收集,且方法將結(jié)束704。如果有重疊的垃圾收集706,那么,在步驟708中,方法對于重疊任何其他垃圾收集的每一個垃圾收集計算必須將該垃圾收集提前多少,直到減少了并行重疊的垃圾收集的最大數(shù)量。不管被提前多少都不能減少并行垃圾收集的最大數(shù)量的垃圾收集是不可提前的。如果所有垃圾收集都是不可提前的712,則方法結(jié)束。如果有可提前的垃圾收集714,那么系統(tǒng)挑選要求最小的提前量的一個716,并提前此垃圾收集。然后,該方法在步驟700處重新開始。如圖7所示的方法必然最終結(jié)束,因?yàn)樵诿看沃貜?fù)時,它將減少并行垃圾收集的最大數(shù)量(步驟716)。如果它不能減少并行垃圾收集的數(shù)量,它將結(jié)束在沒有重疊垃圾收集時的步驟702中,或無法作出改進(jìn)時的步驟710中。圖8示出了根據(jù)一個實(shí)施例的云管理器如何控制計算機(jī)的云以降低計算機(jī)易失性的圖示。如圖8所示,計算機(jī)800的云包括單個計算機(jī)802,804,806,每一計算機(jī)都執(zhí)行多個執(zhí)行一個或多個JVM 808的虛擬服務(wù)器。每一單個計算機(jī)內(nèi)的JVM都與該計算機(jī)上的主同步模塊810,812,814相關(guān)聯(lián)。根據(jù)一個實(shí)施例,主同步模塊受云易失性管理器816控制,云易失性管理器816可以與一般被提供這樣的云環(huán)境的其它管理工具818 —起工作。如果第一計算機(jī)802具有高總易失性,即,在此計算機(jī)上運(yùn)行的虛擬服務(wù)器之間,在垃圾收集和代碼優(yōu)化之間有許多沖突,并且第二計算機(jī)804具有低總易失性,那么,云易失性管理器 816可以決定切換或改變虛擬服務(wù)器820和822的計算機(jī)主機(jī)824。如果計算機(jī)802的總易失性的減少沒有超過804增大的總的易失性,那么,切換將恢復(fù)。根據(jù)一個實(shí)施例,切換之前可以檢查虛擬服務(wù)器820具有比虛擬服務(wù)器822更不可預(yù)測的行為。這可以例如通過垃圾收集之間的距離的標(biāo)準(zhǔn)偏差來測量。圖9示出了根據(jù)一個實(shí)施例的云管理器如何控制計算機(jī)的云以減少計算機(jī)資源使用的圖示。如圖9所示,計算機(jī)900的云包括單個計算機(jī)902,904,906,每一計算機(jī)都執(zhí)行多個執(zhí)行一個或多個JVM的虛擬服務(wù)器。每一 JVM都具有非瞬時存儲器使用908和瞬時存儲器使用910。為實(shí)現(xiàn)最大的存儲器和cpu使用節(jié)省,云易失性管理器定位同一個計算機(jī)上的帶有相同瞬時存儲器和cpu使用的虛擬服務(wù)器也很重要。因此,云900是次優(yōu)的,因?yàn)樗杏嬎銠C(jī)902,904和906都要求相同的大量的瞬時存儲器。通過將虛擬服務(wù)器重新定位到新云配置911中,服務(wù)器912的最大瞬時存儲器使用幾乎相當(dāng)于原始配置902。然而,與它們的原始配置904和906相比,對于914和916,最大瞬時存儲器使用顯著降低。根據(jù)一個實(shí)施例,這樣的重新定位基于虛擬服務(wù)器的瞬時存儲器使用的平均值和標(biāo)準(zhǔn)偏差。由于減少了瞬時存儲器使用,因此,可以在計算機(jī)914和916上托管更多虛擬服務(wù)器??梢酝ㄟ^使用根據(jù)本發(fā)明的原理編程的一個或多個常規(guī)的通用或?qū)S脭?shù)字計算機(jī)、計算設(shè)備、機(jī)器或微處理器來方便地實(shí)現(xiàn)本發(fā)明。對于那些精通軟件技術(shù)的人來說顯而易見的是,可以由熟練的程序員基于本發(fā)明的原理輕松地編制適當(dāng)?shù)能浖a。在某些實(shí)施例中,本發(fā)明包括計算機(jī)程序產(chǎn)品,該產(chǎn)品是其中存儲了指令的存儲介質(zhì)或計算機(jī)可讀介質(zhì),這些指令可以用來對計算機(jī)進(jìn)行編程,以執(zhí)行本發(fā)明的任何一個進(jìn)程。存儲介質(zhì)可以包括,但不僅限于,任何類型的盤,包括軟盤、光盤、DVD、⑶-ROM、微驅(qū)動,以及磁光盤、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、FLASH存儲器設(shè)備、磁卡或光卡,納米系統(tǒng)(包括分子存儲器IC),適于存儲指令和/或數(shù)據(jù)的任何類型的介質(zhì)或設(shè)備。前面的對本發(fā)明的描述只是為了說明和描述。它不是詳盡的說明或?qū)⒈景l(fā)明限于所公開的準(zhǔn)確的形式。那些精通本技術(shù)的專業(yè)人員將認(rèn)識到,可以進(jìn)行許多修改。所選擇和描述的實(shí)施例只是為了最好地說明本發(fā)明的原理以及其實(shí)際應(yīng)用,并使精通本技術(shù)的其他人懂得,帶有適合于特定用途的各種修改的各實(shí)施例的本發(fā)明也是可以接受的。本發(fā)明的范圍由下面的權(quán)利要求以及它們的等效內(nèi)容進(jìn)行定義。
權(quán)利要求
1.一種用于同步虛擬機(jī)監(jiān)視器環(huán)境中的虛擬服務(wù)器之間的瞬時資源使用的系統(tǒng),包括計算機(jī),所述計算機(jī)包括在其上運(yùn)行的用于執(zhí)行虛擬服務(wù)器的虛擬機(jī)監(jiān)視器,以及能夠在所述虛擬服務(wù)器之間進(jìn)行同步的通信信道; 在所述虛擬機(jī)監(jiān)視器上執(zhí)行的多個虛擬服務(wù)器,每一個虛擬服務(wù)器都包括用于存儲和執(zhí)行壽命相對長的進(jìn)程的非瞬時存儲器空間或堆; 用于存儲和執(zhí)行壽命相對短的進(jìn)程的瞬時存儲器空間或堆;以及其中,所述虛擬服務(wù)器能夠提前或推遲利用所述瞬時存儲器空間或堆的那些進(jìn)程的執(zhí)行,以在所述多個虛擬服務(wù)器之間同步瞬時資源使用。
2.如權(quán)利要求1所述的系統(tǒng),其中,每一虛擬服務(wù)器都運(yùn)行一個或多個Java虛擬機(jī)JVM。
3.如權(quán)利要求1所述的系統(tǒng),其中,所述虛擬服務(wù)器中的一個或多個具有被定制以僅運(yùn)行單個JVM并降低所述單個JVM的易失性的操作系統(tǒng)。
4.如權(quán)利要求1所述的系統(tǒng),其中,所述非瞬時存儲器包括內(nèi)部JVM存儲器和Java堆存儲器。
5.如權(quán)利要求1所述的系統(tǒng),其中,所述瞬時存儲器是用于垃圾回收進(jìn)程的存儲器。
6.如權(quán)利要求1所述的系統(tǒng),其中,所述瞬時存儲器是用于代碼優(yōu)化進(jìn)程的存儲器。
7.如權(quán)利要求1所述的系統(tǒng),其中,所述多個虛擬服務(wù)器中的每一個還包括同步模塊, 所述同步模塊確定垃圾收集、代碼優(yōu)化,或該虛擬服務(wù)器上的其他進(jìn)程的時間的預(yù)測。
8.如權(quán)利要求7所述的系統(tǒng),其中,所述瞬時存儲器是用于垃圾回收進(jìn)程的存儲器,并且其中,所述同步模塊提前垃圾收集以避免與其他垃圾收集重疊。
9.如權(quán)利要求7所述的系統(tǒng),其中,所述瞬時存儲器是用于代碼優(yōu)化進(jìn)程的存儲器,并且其中,所述同步模塊推遲代碼優(yōu)化以避免與垃圾收集及其他代碼優(yōu)化重疊。
10.如權(quán)利要求1所述的系統(tǒng),其中,使用實(shí)際重疊的數(shù)量來確定計算機(jī)是否能夠托管更多虛擬服務(wù)器。
11.如權(quán)利要求7所述的系統(tǒng),其中,所述多個虛擬服務(wù)器中的每一個進(jìn)一步包括同步模塊,并且其中,所述同步模塊中的一個被選為所述主同步模塊,其中,所述主同步模塊從其他虛擬服務(wù)器中的所述同步模塊請求新預(yù)測,并使用所述預(yù)測來將垃圾收集、代碼優(yōu)化或其他進(jìn)程的日程表從原始日程表更新到經(jīng)修改的日程表。
12.如權(quán)利要求7所述的系統(tǒng),其中,所述同步模塊使用所述通信信道來在所述多個虛擬服務(wù)器之間傳遞信息,并在所述虛擬服務(wù)器之間同步瞬時資源使用。
13.如權(quán)利要求1所述的系統(tǒng),其中,所述通信信道是作為所述虛擬機(jī)監(jiān)視器的一部分來提供的。
14.如權(quán)利要求7所述的系統(tǒng),其中,所述同步模塊中的每一個都執(zhí)行下列步驟 等待來自虛擬服務(wù)器的通知,從所有其他虛擬服務(wù)器請求垃圾收集預(yù)測, 通過根據(jù)需要將垃圾收集提前,檢測和最小化垃圾收集重疊的數(shù)量, 通過根據(jù)需要將代碼優(yōu)化推遲,檢測和最小化代碼優(yōu)化重疊的數(shù)量,以及調(diào)度垃圾收集、代碼優(yōu)化或其他進(jìn)程以在所述多個虛擬服務(wù)器之間同步瞬時資源使用。
15.如權(quán)利要求1所述的系統(tǒng),其中,所述系統(tǒng)被用作用于控制虛擬服務(wù)器的云的易失性的組件,并且其中,所述系統(tǒng)還包括監(jiān)測所述云內(nèi)的計算機(jī)的易失性的云易失性管理器; 參與所述云的多個計算機(jī),一臺或多臺計算機(jī)中的每一臺都還包括具有測量的資源使用易失性、并被配置成在所述多個虛擬服務(wù)器之間同步瞬時資源使用的虛擬服務(wù)器;以及其中,所述云易失性管理器能夠?qū)⑻摂M服務(wù)器從參與所述云的所述多個計算機(jī)中的第一計算機(jī)切換或移動到參與所述云的所述多個計算機(jī)中的第二計算機(jī),以改善所述云中的易失性。
16.一種用于同步虛擬機(jī)監(jiān)視器環(huán)境中的虛擬服務(wù)器之間的瞬時資源使用的方法,包括下列步驟提供包括下列各項的計算機(jī)在其上運(yùn)行的用于執(zhí)行虛擬服務(wù)器的虛擬機(jī)監(jiān)視器,以及能夠在所述虛擬服務(wù)器之間進(jìn)行同步的通信信道;提供在所述虛擬機(jī)監(jiān)視器上執(zhí)行的多個虛擬服務(wù)器,每一個虛擬服務(wù)器都包括用于存儲和執(zhí)行壽命相對長的進(jìn)程的非瞬時存儲器空間或堆; 用于存儲和執(zhí)行壽命相對短的進(jìn)程的瞬時存儲器空間或堆;以及其中,所述虛擬服務(wù)器能夠提前或推遲利用所述瞬時存儲器空間或堆的那些進(jìn)程的執(zhí)行,以在所述多個虛擬服務(wù)器之間同步瞬時資源使用。
17.如權(quán)利要求1所述的方法,其中,所述多個虛擬服務(wù)器中的每一個還包括同步模塊,所述同步模塊確定垃圾收集、代碼優(yōu)化,或該虛擬服務(wù)器上的其他進(jìn)程的時間的預(yù)測, 并且其中,所述同步模塊中的每一個都執(zhí)行下列步驟等待來自虛擬服務(wù)器的通知,從所有其他虛擬服務(wù)器請求垃圾收集預(yù)測,通過根據(jù)需要將垃圾收集提前,檢測和最小化垃圾收集重疊的數(shù)量,通過根據(jù)需要將代碼優(yōu)化推遲,檢測和最小化代碼優(yōu)化重疊的數(shù)量,以及調(diào)度垃圾收集、代碼優(yōu)化或其他進(jìn)程以在所述多個虛擬服務(wù)器之間同步瞬時資源使用。
18.如權(quán)利要求1所述的方法,其中,所述方法被用作用于控制虛擬服務(wù)器的云的易失性的組件,并且其中,所述方法還包括提供監(jiān)測所述云內(nèi)的計算機(jī)的易失性的云易失性管理器;提供參與所述云的多個計算機(jī),一臺或多臺計算機(jī)中的每一臺進(jìn)一步包括具有測量的資源使用易失性、并被配置成在所述多個虛擬服務(wù)器之間同步瞬時資源使用的虛擬服務(wù)器;以及其中,所述云易失性管理器能夠?qū)⑻摂M服務(wù)器從參與所述云的所述多個計算機(jī)中的第一計算機(jī)切換或移動到參與所述云的所述多個計算機(jī)中的第二計算機(jī),以改善所述云中的易失性。
19. 一種計算機(jī)可讀介質(zhì),包括在其上存儲了當(dāng)被一臺或多臺計算機(jī)讀取和執(zhí)行時使所述一臺或多臺計算機(jī)執(zhí)行包括下列步驟的所述方法的指令 提供包括下列各項的計算機(jī)在其上運(yùn)行的用于執(zhí)行虛擬服務(wù)器的虛擬機(jī)監(jiān)視器,以及能夠在所述虛擬服務(wù)器之間進(jìn)行同步的通信信道;提供在所述虛擬機(jī)監(jiān)視器上執(zhí)行的多個虛擬服務(wù)器,每一個虛擬服務(wù)器包括用于存儲和執(zhí)行壽命相對長的進(jìn)程的非瞬時存儲器空間或堆; 用于存儲和執(zhí)行壽命相對短的進(jìn)程的瞬時存儲器空間或堆;以及其中,所述虛擬服務(wù)器能夠提前或推遲利用所述瞬時存儲器空間或堆的那些進(jìn)程的執(zhí)行,以在所述多個虛擬服務(wù)器之間同步瞬時資源使用。
全文摘要
用于在虛擬機(jī)監(jiān)視器內(nèi)運(yùn)行的虛擬機(jī)(例如,Java虛擬機(jī)(JVM))之間同步瞬時資源使用的系統(tǒng)和方法。根據(jù)一個實(shí)施例,該系統(tǒng)允許同步垃圾收集和代碼優(yōu)化以降低瞬時處理器(cpu)和存儲器使用。根據(jù)一個實(shí)施例,該系統(tǒng)包括計算機(jī);用于執(zhí)行運(yùn)行JVM的虛擬服務(wù)器的虛擬機(jī)監(jiān)視器;虛擬服務(wù)器之間的通信信道;其中,每一虛擬服務(wù)器都還包括非瞬時和瞬時存儲器和同步模塊。根據(jù)一個實(shí)施例,同步模塊調(diào)度垃圾收集和代碼優(yōu)化以最小化重疊,從而降低峰值瞬時存儲器和cpu使用,以及所產(chǎn)生的計算機(jī)內(nèi)的瞬時資源使用的易失性。根據(jù)另一實(shí)施例,云管理器能夠在計算機(jī)之間移動虛擬服務(wù)器,以優(yōu)化云內(nèi)的計算機(jī)易失性。
文檔編號G06F12/02GK102576331SQ201080041903
公開日2012年7月11日 申請日期2010年8月30日 優(yōu)先權(quán)日2009年9月21日
發(fā)明者S·加爾馬克 申請人:甲骨文國際公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1