Windows Server 2008 R2 SP1以前的Hyper-V版本中,管理員只能固定指定虛擬機所使用的物理內存大小,當虛擬機啓動時,自動將管理員分配的內存徹底佔用。可能會出現如下2個問題:服務器
一、當管理員分配給虛擬機的內存大小沒法知足應用的需求時,管理員須要在關閉虛擬機的狀況下(Hyper-V不支持內存熱插拔),對其內存佔用大小從新進行調整。ide
二、當管理員給虛擬機分配過多的內存時,虛擬機應用在不須要使用這麼多內存的狀況下,將形成資源的浪費。優化
Windows Server 2008 R2 SP1 Hyper-V提供的內存動態管理功能,將解決遇到的內存應用瓶頸。操作系統
內存過量使用內存過量使用,容許虛擬機使用比物理主機可用的更多的內存。例如,宿主機有2GB內存,就能夠在其上運行四臺擁有1GB內存的虛擬機。內存能過量使用由於有比宿主機更多的虛擬內存。所以,管理員可以最大化物理計算機中運行的虛擬機數量,而不用理會物理內存的限制。內存
若是沒有內存過量使用功能,分配給虛擬機內存的數量最多隻能是和宿主機相同數量的內存。但實際上,虛擬機一般消耗的內存比其須要的少,這會浪費物理內存空間,並限制了在服務器上能運行的虛擬機數量。例如,一臺8GB 內存的Hyper-V服務器,可能在服務器上部署三臺虛擬機,每一個分配2GB,並預留2GB給主機操做系統,雖然這臺服務器有足夠的CPU和磁盤資源來宿主更多虛擬機,但內存成爲限制因素。Hyper-V Dynamic Memory裏含有一個選項(內存緩衝區)能解決這個問題。資源
Hyper-V不容許內存過量使用,例如若是分配4GB內存給Hyper-V的一臺虛擬機,虛擬機實際只使用2GB。啓動虛擬機後,Hyper-V檢查是否有4GB的物理內存可用。若是這樣的話,內存就被「鎖定」,所以只能用於該虛擬機。若是4GB不可用,虛擬機就不能啓動,即便虛擬服務器須要的2GB內存可用也不行。部署
Hyper-V提供「內存緩衝區」、「內存權重」以及「內存優先級」。Hyper-V容許根據內存使用率優化虛擬機。當出現爭用內存的狀況,高優先權虛擬機首先得到內存。由於內存競爭會迫使虛擬機用光內存,若是虛擬機須要但又沒有可用的內存。「Hyper-V管理器」顯示每臺虛擬機可用的內存,幫助管理員在Hyper-V上更好地管理內存分配。虛擬機
啓動內存啓動內存,是指操做系統啓動所須要的最小內存容量加上開啓應用程序所須要的內存容量。啓動內存值和處於「靜態」模式下的內存設置相同。it
例如Microsoft Exchange Server 2010至少須要4 GB的系統內存,即便用8GB來運行一個虛擬系統,而操做系統和應用程序須要的最低內存是4GB,那麼啓動內存設置就是4GB,所以應該把啓動內存設置與操做系統和應用程序啓動所須要的最低內存容量保持一致。class
最大內存最大內存,是Hyper-V能夠爲虛擬機提供的最大內存容量,默認設置爲64GB 。Hyper-V會根據實際須要的容量自動分配。
例如,應用程序會要佔用所有內存。在這些狀況下,把最大內存設置應該分配給應用程序和操做系統最大內存容量。另外,若是最大內存值不是64GB,內存動態管理功能不能啓用。