System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及計算機,尤其涉及一種虛擬機熱遷移方法以及計算設備。
技術介紹
1、相關技術中,在對計算設備中的虛擬機進行熱遷移時,通常根據虛擬機的寫權限位的變化確定虛擬機的臟頁,并遷移該臟頁。具體是,在每次遷移數據頁時,會清理數據頁的寫權限位。在遷移之后,當虛擬機對數據頁進行寫操作時,由于虛擬機沒有該數據頁的寫權限,虛擬機會發生陷出,并由計算設備的內核對該數據頁重置寫權限位。
2、上述方案中,虛擬機在熱遷移過程中發生陷出會增加宿主機的性能損耗。在熱遷移過程中,如果虛擬機的寫操作較多時,宿主機的性能下降更為嚴重。
技術實現思路
1、本申請提供了一種虛擬機熱遷移方法以及計算設備,可以減少虛擬機在熱遷移過程中發生陷出的次數,從而解決因虛擬機發生陷出導致宿主機的性能下降的問題。
2、第一方面,本申請提供了一種虛擬機熱遷移方法。該方法可以應用于宿主機,該宿主機中包括處理器,處理器運行有虛擬機、第一執行體和第二執行體。第一執行體是指在操作系統運行,用于管理虛擬機的應用程序。第二執行體是指位于操作系統的內核,用于協助第一執行體管理虛擬機的程序。
3、其中,宿主機中存儲有虛擬機的多個數據頁的寫權限位,處理器當前設置有對所述寫權限位的硬件置位功能。多個數據頁中包括第一數據頁,第一數據頁的寫權限位當前為第一值,第一值用于指示所述第一數據頁不可寫。
4、該方法包括:虛擬機對第一數據頁進行寫操作時,處理器將所述第一數據頁的寫權限位修改為第二值,第二值表示所述第一數
5、上述方案中,在虛擬機的熱遷移過程中,當虛擬機向某一個數據頁寫入數據是,通過處理器的硬件置位功能將該數據頁的寫權限位置為可寫(即第二值),可以避免虛擬機因不具有該數據頁的寫權限而發生陷出,從而解決因陷出導致虛擬機性能下降的問題。
6、在第一方面的一種可能的實施方式中,在所述虛擬機對第一數據頁進行寫操作之前,所述方法還包括:所述第一執行體開啟所述硬件置位功能。具體地,第一執行體可以將修改處理器的寄存器中硬件置位功能對應的標識修改為表示開啟的值,使得處理器可以執行硬件置位功能。
7、上述方案中,第一執行體在虛擬機對數據頁進行寫操作前開啟處理器的硬件置位功能,使處理器可以在虛擬機進行寫操作時對數據頁重置寫權限位。
8、在第一方面的一種可能的實施方式中,在所述處理器將所述第一數據頁的寫權限位修改為第二值之前,所述方法還包括:所述處理器確定所述第一數據頁的硬件置位標識;當所述硬件置位標識為第三值時,所述處理器確定修改所述第一數據頁的寫權限位。所述第三值表示所述處理器可以修改寫權限位。
9、在第一方面的一種可能的實施方式中,在所述處理器將所述第一數據頁的寫權限位修改為第二值之前,所述方法還包括:所述第二執行體將所述多個數據頁的硬件置位標識修改為所述第三值。
10、上述方案中,通過數據頁的硬件置位標識可以控制處理器通過硬件置位功能對數據頁進行硬件置位。
11、在第一方面的一種可能的實施方式中,在所述虛擬機對第一數據頁進行寫操作之前,所述方法還包括:所述第二執行體確定所述多個數據頁中的熱數據頁和冷數據頁:所述第二執行體將所述虛擬機的熱數據頁的硬件置位標識修改為所述第三值,和/或將所述虛擬機的冷數據頁的硬件置位標識修改為第四值,所述第四值表示所述處理器無法修改寫權限位,所述熱數據頁包括所述第一數據頁。其中,熱數據頁是多個數據頁中寫入較為頻繁的數據頁,冷數據頁是多個數據頁中寫入不頻繁的數據頁。
12、上述方案中,處理器只對虛擬機的熱數據頁進行硬件置寫權限位。因為第二執行體更新臟頁位圖時,需要從內存讀取各個數據頁的寫權限位。當處理器只對熱數據頁進行硬件置寫權限位時,第二執行體可以只讀取熱數據頁的寫權限位,從而減少第二執行體的讀取時間,提高遷移效率。
13、在第一方面的一種可能的實施方式中,所述方法還包括:在所述虛擬機對第二數據頁進行寫操作發生陷出的情況中,所述第二執行體將所述第二數據頁的寫權限位修改為所述第二值,并更新所述臟頁位圖,所述冷數據頁包括所述第二數據頁。
14、上述方案中,在只對虛擬機的熱數據頁進行硬件置寫權限位情況下,當虛擬機對冷數據頁進行寫操作時,可以使虛擬機發生陷出,由第二執行體修改冷數據頁的寫權限位,從而使虛擬機可以對冷數據頁進行寫操作。由于冷數據頁訪問頻率較低,冷數據頁導致的陷出次數也較少,對宿主機的性能影響較小。
15、在第一方面的一種可能的實施方式中,所述第二執行體確定所述多個數據頁中的熱數據頁和冷數據頁包括:所述第二執行體根據所述臟頁位圖更新所述多個數據頁的活躍度;所述第二執行體根據所述多個數據頁的活躍度確定所述熱數據頁和所述冷數據頁。
16、上述方案中,可以根據數據頁的活躍度判斷數據頁是否為熱數據頁。
17、在第一方面的一種可能的實施方式中,所述第二執行體根據所述多個數據頁的活躍度確定所述熱數據頁和所述冷數據頁包括:所述第二執行體根據所述多個數據頁的活躍度更新所述虛擬機對應的熱頁池,所述熱頁池用于記錄所述虛擬機的熱數據頁;所述第二執行體確定所述多個數據頁中除所述熱頁池記錄的熱數據頁之外的數據頁為所述冷數據頁。
18、在第一方面的一種可能的實施方式中,所述第二執行體根據所述臟頁位圖更新所述多個數據頁的活躍度包括:根據所述臟頁位圖確定目標數據頁是否為臟頁,所述多個數據頁中包括所述目標數據頁;在所述目標數據頁為臟頁的情況下,若所述目標數據頁的活躍度非最大活躍度,將所述目標數據頁的活躍度修改為所述最大活躍度,或者,若所述目標數據頁的活躍度為最大活躍度,不修改所述目標數據頁的活躍度;在所述目標數據頁非臟頁的情況下,若所述目標數據頁的活躍度非最小活躍度,降低所述目標數據頁的活躍度,或者,若所述目標數據頁的活躍度為最小活躍度,不修改所述目標數據頁的活躍度。
19、在第一方面的一種可能的實施方式中,所述第二執行體根據所述多個數據頁的活躍度更新所述虛擬機對應的熱頁池包括:確定所述熱頁池中是否包括目標數據頁;在所述熱頁池中不包括所述目標數據頁的情況下,若所述熱頁池記錄的熱數據頁的數量小于目標閾值,將所述目標數據頁添加至所述熱頁池,或者,若所述熱頁池記錄的熱數據頁的數量等于或大于所述目標閾值,刪除所述熱頁池中的第三數據頁,將所述目標數據頁添加至所述熱頁池,其中,所述第三數據頁的活躍度小于所述熱頁池中除所述第三數據頁之外其他數據頁的活躍度。
20、在第一方面的一種可能的實施方式中,在所述第二執行體根據所述第一數據頁的寫權限位更新所述虛擬機的臟頁位圖之前,所述方法還包括:本文檔來自技高網...
【技術保護點】
1.一種虛擬機熱遷移方法,其特征在于,應用于宿主機,所述宿主機的處理器運行有虛擬機、第一執行體和第二執行體,所述宿主機中存儲有所述虛擬機的多個數據頁的寫權限位,所述處理器當前設置有對所述寫權限位的硬件置位功能,所述多個數據頁中包括第一數據頁,所述第一數據頁的寫權限位當前為第一值,所述第一值表示所述第一數據頁不可寫,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,在所述虛擬機對第一數據頁進行寫操作之前,所述方法還包括:
3.根據權利要求2所述的方法,其特征在于,所述方法還包括:
4.根據權利要求2或3所述的方法,其特征在于,所述第二執行體確定所述多個數據頁中的熱數據頁和冷數據頁包括:
5.根據權利要求4所述的的方法,其特征在于,所述第二執行體根據所述多個數據頁的活躍度確定所述熱數據頁和所述冷數據頁包括:
6.根據權利要求4或5所述的方法,其特征在于,所述第二執行體根據所述臟頁位圖更新所述多個數據頁的活躍度包括:
7.根據權利要求5或6所述的方法,其特征在于,所述第二執行體根據所述多個數據頁的活躍度更新
8.根據權利要求1-7任一項所述的方法,其特征在于,在所述第二執行體根據所述第一數據頁的寫權限位更新所述虛擬機的臟頁位圖之前,所述方法還包括:
9.一種虛擬機熱遷移裝置,其特征在于,應用于宿主機,所述宿主機中包括處理器,所述宿主機中存儲有所述虛擬機的多個數據頁的寫權限位,所述多個數據頁中包括第一數據頁,所述第一數據頁的寫權限位當前為第一值,所述第一值用于指示所述第一數據頁不可寫,所述裝置包括:
10.根據權利要求9所述的裝置,其特征在于,在所述虛擬機對第一數據頁進行寫操作之前,所述第二模塊還用于:
11.根據權利要求10所述的裝置,其特征在于,在所述虛擬機對第二數據頁進行寫操作發生陷出的情況中,所述第二模塊用于:
12.根據權利要求10或11所述的裝置,其特征在于,所述第二模塊具體用于:
13.根據權利要求12所述的裝置,其特征在于,所述第二模塊具體用于:
14.根據權利要求12或13所述的裝置,其特征在于,所述第二模塊具體用于:
15.根據權利要求13或14所述的裝置,其特征在于,所述第二模塊具體用于:
16.根據權利要求9-15任一項所述的裝置,其特征在于,在根據所述第一數據頁的寫權限位更新所述虛擬機的臟頁位圖之前,所述第二模塊還用于:
17.一種服務器,其特征在于,所述服務器包括:處理器和存儲器,所述處理器用于執行存儲于所述存儲器內的計算機程序以實現權利要求1至8任一所述的方法。
18.一種計算設備,其特征在于,所述計算設備包括:處理器和存儲器,所述處理器用于執行存儲于所述存儲器內的計算機程序以實現權利要求1至8任一所述的方法。
19.一種計算機可讀存儲介質,其特征在于,包括指令,當所述指令在計算機上運行時,使得所述計算機執行如實現權利要求1至8任一所述的方法。
...【技術特征摘要】
1.一種虛擬機熱遷移方法,其特征在于,應用于宿主機,所述宿主機的處理器運行有虛擬機、第一執行體和第二執行體,所述宿主機中存儲有所述虛擬機的多個數據頁的寫權限位,所述處理器當前設置有對所述寫權限位的硬件置位功能,所述多個數據頁中包括第一數據頁,所述第一數據頁的寫權限位當前為第一值,所述第一值表示所述第一數據頁不可寫,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,在所述虛擬機對第一數據頁進行寫操作之前,所述方法還包括:
3.根據權利要求2所述的方法,其特征在于,所述方法還包括:
4.根據權利要求2或3所述的方法,其特征在于,所述第二執行體確定所述多個數據頁中的熱數據頁和冷數據頁包括:
5.根據權利要求4所述的的方法,其特征在于,所述第二執行體根據所述多個數據頁的活躍度確定所述熱數據頁和所述冷數據頁包括:
6.根據權利要求4或5所述的方法,其特征在于,所述第二執行體根據所述臟頁位圖更新所述多個數據頁的活躍度包括:
7.根據權利要求5或6所述的方法,其特征在于,所述第二執行體根據所述多個數據頁的活躍度更新所述虛擬機對應的熱頁池包括:
8.根據權利要求1-7任一項所述的方法,其特征在于,在所述第二執行體根據所述第一數據頁的寫權限位更新所述虛擬機的臟頁位圖之前,所述方法還包括:
9.一種虛擬機熱遷移裝置,其特征在于,應用于宿主機,所述宿主機中包括處理器,所述宿主機中存儲有所述虛擬機的多個數據頁的寫權限位,所述多個數...
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。