Hyper-V如何計算動態內存

儘管動態內存可讓單個物理計算機管理更多的虛擬系統,但有時是想使用靜態設置。若是應用程序使用預先定義的內存容量取得最好的性能,就能夠用靜態設置保持它使用的內存數量不變,也就是沒有必要啓用動態內存。 內存緩衝區

內存緩衝區爲虛擬機提供比實際需求更多的內存空間。虛擬機的內存緩衝區不以MB計算,而Hyper-V嘗試保留爲高於當時提交內存的額外值的內存百分比。默認設置20%,如圖1所示。算法

內存緩存區是Hyper-V虛擬內存的基本設置,爲每臺虛擬機保留額外空間。緩存

當內存需求在某個一兩秒間隔內忽然增大時,可使用保留區域。ide

在沒有緩存的狀況下,這一兩秒內忽然增大的內存需求,會迫使虛擬機進入內存溢出狀態,該狀態下自動將內存頁面文件寫入磁盤,數據從高速運行的內存空間中轉移到相對而言極慢的磁盤上,會致使計算性能的明顯下降。性能

當內存需求發生改變時,額外保留的空間能夠下降虛擬機把內存數據寫入磁盤的機率。同時,更大的緩存空間也帶來了浪費。操作系統

保留的內存區域老是處於可用狀態,所以在虛擬機用到它以前都是閒置的。從設置看,用戶靈活性很大,該比率能夠是5%到95%之間的任意數字。blog

比較好的方式是,開始的時候設置的小一點。由於,當發現虛擬機老是發生寫入磁盤的狀況時,能夠隨時對比率進行調整。ip

clip_image002

圖1內存

內存計算

Hyper-V動態內存功能,經過調用內存壓力來計算並肯定出虛擬機所須要使用的內存大小值。get

Hyper-V動態內存增加採用內存熱插拔算法,而內存縮減採用的則是冒泡算法。虛擬機

若要執行這一運算過程,Hyper-V須要知道虛擬機中所運行的來賓操做系統所提交的總內存大小,以做爲虛擬機所需內存大小計算比例的壓力。

Hyper-V會分配給虛擬機管理員設置的一個起始內存值,再附加一個緩衝區做爲動態附加內存。

虛擬機系統一般使用此額外的附加內存做爲其系統文件緩存以加強操做系統和應用程序的性能。

微軟制定的緩衝區百分比範圍爲5%至95%,默認值爲20%。如圖2所示。

clip_image004

圖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內存給虛擬機。

相關文章
相關標籤/搜索