分享:Hyper-V R2 SP1動態內存分配最佳實踐
動態內存是Hyper-V最大的“我也可以”功能之一,它可以讓微軟與VMware公司的步伐保持一致。信不信由你,VMware虛擬系統超量使用內存的能力曾經是微軟爭議的熱點,過去微軟聲稱該功能會耗費虛擬機的資源。但是即將發布的Windows Server 2008 R2 SP1將引入這個功能,這意味著有效利用資源或越過內存整合提高性能的決策權現在就落在Hyper-V管理員身上了。
當內存分配給虛擬機后,主機把系統的可用RAM分給虛擬機。到目前為止,Hyper-V內存一直都是靜態資源。如果你分配了4 GB,那么就是4GB;但是你不能超量使用你擁有的物理內存。
實際上,許多虛擬機并沒有充分利用它們的可用RAM,就像它們沒有充分利用它們的處理器一樣。但是有了動態內存功能,我們就可以重新整理資源,讓內存物盡其用,達到更好的內存整合和更高的管理效率。
這跟標準PC中虛擬內存使用的頁面文件沒什么不同。所有的現代操作系統在程序不知道的情況下都能在物理內存和硬盤上的頁面文件之間交換數據。這允許我們一次性運行多少設備,同時運用針對此時運行設備的RAM,同樣的說法在運行多外虛擬機時也能用在虛擬主機上。這種情況通常很不錯,但是有經驗的人都知道:系統內存不足、頁面文件上的負載太多的話,系統性能會受到影響。
這也可以轉化成虛擬化,因為如果不好好考慮如何對動態內存進行設置的話,某些需要快速訪問內存的系統性能會下降。
動態內存設置表格
動態內存為這種復雜的內存管理帶來了自動化,但是它跟Vmware公司的內存超量使用功能不盡相同。你在虛擬機上開啟動態內存的時候需要做幾項手動設置。首先,啟動RAM設置,這是訪客操作系統啟動時需要的內存容量。盡管使用推薦RAM設置似乎有意義,但是實際上它應該是操作系統啟動所需要的最小內存容量加上開啟應用程序所需要的RAM容量。
比如,Exchange Server 2010至少需要4 GB的系統RAM。即使你用8GB來運行一個性能系統,而操作系統和應用程序需要的最低RAM是4 GB,那么啟動RAM設置就是4GB。請把該設置與操作系統和應用程序啟動所需要的最低RAM容量保持一致。
最大RAM設置是Hyper-V可以為虛擬機提供的最大RAM容量。其默認設置為64GB RAM,這使得父分區有足夠的內存分配給訪客系統。這很不錯,因為Hyper-V會根據有多少容量可以分配來做決定。有時,應用程序會要占用全部內存。在這些情況下,把你的最大RAM設置設成你想分配給應用程序和操作系統的最大內存容量。此時也是讓最大RAM設置與你的應用程序設置相一致的好時機。
內存緩沖區不是以Mb計算的量,而是Hyper-V嘗試保留為高于當時提交內存的額外值的內存百分比。因此,如果動態內存為虛擬機分配了1.2GB的RAM,而內存緩沖區設成了20%,那么還會有額外的300MB內存,Hyper-V會試圖保留1.5GB的內存總量。
如果需要使用內存,程序就可以先使用這部分預留內存,而不必等待內存分配。如果你的一個應用程序需要較大的內存峰值,你應該把這個百分比設置得比默認值高,以便提供快速的內存訪問。預留這個緩沖區的能力取決于主機上所有虛擬機對可用物理內存的要求,所以內存緩沖區在繁忙的Hyper-V服務器上不能保證。
你需要考慮的最后一項設置是內存優先級。當物理內存受到限制時,該設置有助于確定哪個設備優先使用內存。此設置可以是1到10000之間的任意值。這是一個相當大的范圍,但是該設置的意味著當內存不夠的時候,數值大的將會優先得到內存。低優先級的虛擬機內存會被系統剝奪,然后分配給更高優先級的虛擬機。
默認內存優先級設置是5000,正好是中間值。如果你的系統具有嚴格的性能要求,請提高該設置的數值,并降低其他系統的優先級。如果你想要使用這個設置為每個機器設定嚴格的優先級,請務必根據確定的數量或者預先確定的服務級別協議(SLA)做決定,并保持跟蹤。
#p#
什么時候使用動態內存
盡管動態內存可以讓單個主機管理更多的服務器,但有時候你還是想使用舊的靜態設置。如果有應用程序使用預先定義的RAM容量取得了最好的性能,那么就可以用靜態設置保持它使用的RAM數量不變。
比如,如果一個應用程序始終使用6GB內存,我們沒有必要再讓該虛擬機去參加動態內存的算法了。舉個例子,雖然SQL Server可以設置使用特定內存量,但是默認值就是可用的最大內存,請保存該設置吧。
最后的考慮
作為Windows Server 2008 R2 SP1的首要新功能,動態內存繼續證明了微軟的承諾:Hyper-V是一個可行的解決方案,也是Vmware的競爭對手。請記住,你的虛擬機必須裝有最新的集成工具來使用新設置,而且如果操作系統是Windows 7 或者Server 2008 R2,你需要安裝SP1。此外,一個集群中的所有主機都必須運行SP1,以便統一利用動態內存功能。
最后,請一定要制定合理的內存使用計劃,這樣你的機器就不會缺少RAM;而在內存不足的系統中,你可以使用動態內存作為智能代理,進行高級內存管理,不然虛擬主機的文件交換會很慢。
【編輯推薦】

















