盡管動态記憶體可以讓單個實體計算機管理更多的虛拟系統,但有時是想使用靜态設定。如果應用程式使用預先定義的記憶體容量取得最好的性能,就可以用靜态設定保持它使用的記憶體數量不變,也就是沒有必要啟用動态記憶體。 記憶體緩沖區
記憶體緩沖區為虛拟機提供比實際需求更多的記憶體空間。虛拟機的記憶體緩沖區不以MB計算,而Hyper-V嘗試保留為高于當時送出記憶體的額外值的記憶體百分比。預設設定20%,如圖1所示。
記憶體緩存區是Hyper-V虛拟記憶體的基本設定,為每台虛拟機保留額外空間。
當記憶體需求在某個一兩秒間隔内突然增大時,可以使用保留區域。
在沒有緩存的情況下,這一兩秒内突然增大的記憶體需求,會迫使虛拟機進入記憶體溢出狀态,該狀态下自動将記憶體頁面檔案寫入磁盤,資料從高速運作的記憶體空間中轉移到相對而言極慢的磁盤上,會導緻計算性能的明顯降低。
當記憶體需求發生改變時,額外保留的空間可以降低虛拟機把記憶體資料寫入磁盤的機率。同時,更大的緩存空間也帶來了浪費。
保留的記憶體區域總是處于可用狀态,是以在虛拟機用到它之前都是閑置的。從設定看,使用者靈活性很大,該比率可以是5%到95%之間的任意數字。
比較好的方式是,開始的時候設定的小一點。因為,當發現虛拟機總是發生寫入磁盤的情況時,可以随時對比率進行調整。
<a href="http://wangshujiang.blog.51cto.com/attachment/201208/8/225623_1344408184VbRD.jpg"></a>
圖1
記憶體計算
Hyper-V動态記憶體功能,通過調用記憶體壓力來計算并确定出虛拟機所需要使用的記憶體大小值。
Hyper-V動态記憶體增長采用記憶體熱插拔算法,而記憶體縮減采用的則是冒泡算法。
若要執行這一運算過程,Hyper-V需要知道虛拟機中所運作的來賓作業系統所送出的總記憶體大小,以作為虛拟機所需記憶體大小計算比例的壓力。
Hyper-V會配置設定給虛拟機管理者設定的一個起始記憶體值,再附加一個緩沖區作為動态附加記憶體。
虛拟機系統通常使用此額外的附加記憶體作為其系統檔案緩存以增強作業系統和應用程式的性能。
微軟制定的緩沖區百分比範圍為5%至95%,預設值為20%。如圖2所示。
<a href="http://wangshujiang.blog.51cto.com/attachment/201208/8/225623_1344408185DaGX.jpg"></a>
圖2
計算公式
虛拟機可用記憶體計算公式:
虛拟機可用記憶體=啟動記憶體+啟動記憶體*(緩沖區百分比/(1-緩沖區百分比))
計算執行個體
管理者為某虛拟機設定記憶體大小為1200MB,緩沖區百分比為20%,則Hyper-V會附加額外的20%/(100%-20%) x 1200 MB = 300 MB記憶體,即總共1500MB記憶體給虛拟機。
如果此例中的緩沖區百分比設定為80%,則Hyper-V會附加額外的80%/(100%-80%) x 1200 MB = 4800 MB記憶體,即總共6000MB記憶體給虛拟機。
本文轉自wangshujiang51CTO部落格,原文連結: http://blog.51cto.com/wangshujiang/958417,如需轉載請自行聯系原作者