Hyper-V 動態記憶體最佳實踐的完整概述

Hyper-V 動態記憶體功能首次於 Windows Server 2008 R2 SP1 中推出。在該版本發布之前, 一台 Hyper-V 虛擬機器 (VM) 會以分配給它的全部記憶體容量啟動並運行,這導致記憶體使用過度,並影響整體 VM 效能。此外,只有在關閉 VM 時,才能變更可用 VM 記憶體的容量。因此,將靜態記憶體分配替換為動態記憶體分配是合理的,而 Hyper-V 動態記憶體特點也因此應運而生。

NAKIVO Hyper-V 備份解決方案

NAKIVO Hyper-V 備份解決方案

適用於 Hyper-V 的無代理程式、應用程式感知的備份解決方案。具備防勒索軟體防護功能、可從備份立即啟動虛擬機器,並支援其他虛擬/實體平台等更多功能。

什麼是 Hyper-V 動態記憶體?

Hyper-V 動態記憶體是一項特點,可讓您動態地將記憶體資源分配給在 Hyper-V 環境中執行的虛擬機器。此特點會從當下不需要記憶體的虛擬機器中回收部分未使用記憶體,然後將回收的記憶體重新分配給實際需要記憶體的其他虛擬機器。

透過 Hyper-V 動態記憶體,您可以指定虛擬機器可使用的啟動記憶體量、設定特定虛擬機器可用的實體記憶體範圍,並決定虛擬機器在記憶體分配中的優先級。實體記憶體可根據需求高效且動態地分配給虛擬機器,同時將對效能的影響降至最低。因此,您能更精細地控制記憶體使用情況,並提升資源優化效果。

Hyper-V 動態記憶體的優點與缺點

Hyper-V 動態記憶體是一項實用的特點,具備許多優勢,例如:

  • 記憶體消耗減少,因為虛擬機器僅會使用其實際所需的記憶體量,且此用量會受到管理員設定的限制
  • 高效的記憶體分配,讓您能夠動態地為正在運行的虛擬機器分配更多或更少的記憶體
  • 由於更有效地利用記憶體資源,導致整合數量增加
  • 透過 Hyper-V 智慧分頁功能,提升重新啟動操作的可靠性
  • 成本效益高,因為虛擬機器資源不會被浪費

然而,Hyper-V 動態記憶體也存在若干缺點,這些缺點可能會對虛擬機器的記憶體效能造成負面影響。其中包括以下幾點:

  • 若未在虛擬環境中追蹤記憶體分配狀況,可能會導致電腦實體記憶體配置過多的風險
  • 當虛擬機器正在執行時,某些記憶體設定無法變更。因此,當虛擬機器仍在執行或處於暫停狀態時,您無法減少或增加最大與最小記憶體用量,也無法修改虛擬機器的啟動記憶體用量。
  • 啟用 Hyper-V 動態記憶體後,可能會發生與資料庫應用程式相關的問題。建議您使用與 Hyper-V 動態記憶體相容的應用程式,以避免任何效能問題。

Hyper-V 動態記憶體設定

Hyper-V 動態記憶體包含五項虛擬機器設定,這些設定可 在 Hyper-V 管理員中設定. 為此,請開啟 Hyper-V 管理員,選取所需的虛擬機器,然後按一下 Settings,然後選擇 Memory. 您將看到以下內容:

Hyper-V Dynamic Memory Settings

不過,在開始設定 Hyper-V 動態記憶體之前,建議您先了解這些元件的運作方式及其能帶來的優勢。讓我們來逐一檢視這些元件。

啟動記憶體

此 Hyper-V 動態記憶體設定值定義了所選虛擬機器在啟動期間可使用的最低實體記憶體量。啟動記憶體應設定得足夠高,以確保虛擬機器能快速且不中斷地啟動。請注意,當虛擬機器正在執行時,無法變更啟動記憶體。

Startup RAM (Hyper-V Dynamic Memory Best Practices)

最低記憶體需求

此 Hyper-V 動態記憶體設定值決定虛擬機器啟動後應分配給該虛擬機器的最低實體記憶體量。若其他虛擬機器有 RAM 需求,Hyper-V 主機將開始從該虛擬機器回收未使用的記憶體,直到達到最低 RAM 值為止。 請注意,此值最低可設定為 32 MB,但不得高於"啟動 RAM"。此外,在虛擬機器執行或暫停期間,您無法增加最低記憶體值,但可以減少(例如,您可以將最低 RAM 值從 512 MB 調整為 64 MB)。

Minimum and Maximum RAM (Hyper-V Dynamic Memory Best Practices)

最大記憶體容量

此 Hyper-V 動態記憶體值指定虛擬機器可使用的最大實體記憶體容量。請注意,此值不得低於已指派的啟動 RAM,但最高可達 1 TB(1,048,576 MB)。 此外,在虛擬機器正在執行或暫停期間,您無法減少最大記憶體容量,但可以增加(例如,您可以將最大 RAM 值從 512 MB 調整為 2048 MB)。

記憶體緩衝區

此 Hyper-V 動態記憶體設定值決定應分配給虛擬機器作為緩衝區的實體記憶體百分比。記憶體緩衝區是根據虛擬機器的記憶體需求,預留給該虛擬機器的實體記憶體部分。要計算記憶體緩衝區的大小,請使用以下公式:

Amount of memory buffer = how much memory the virtual machine actually needs / (memory buffer value / 100).

預設情況下,記憶體緩衝區的值為 20%,但可設定為低至 5% 或高至 2000%。您可以在任何時候變更記憶體緩衝區的值,即使在虛擬機器執行期間亦然。

Memory Buffer (Hyper-V Dynamic Memory Best Practices)

記憶體權重

此 Hyper-V 動態記憶體設定值指定了所選虛擬機器相對於此主機上其他虛擬機器的優先順序。根據此優先順序,您可以決定如何將可用記憶體分配給在同一台 Hyper-V 主機上執行的多個虛擬機器。

請注意,若虛擬機器的優先順序設定過低,且可用實體記憶體量減少,則該虛擬機器可能無法開機。 您可以在任何時候變更記憶體權重值,即使在虛擬機器執行中亦然。

Memory Weight (Hyper-V Dynamic Memory Best Practices)

Hyper-V 動態記憶體最佳實踐

為了在 Hyper-V 環境中實現高效能並提升記憶體利用率,建議您遵循 Hyper-V 動態記憶體的最佳實踐。

以下列出的 Hyper-V 動態記憶體最佳實踐,可顯著提升虛擬機器 (VM) 的記憶體效能,並改善您在 Hyper-V 環境中的整體使用體驗。

啟用 Hyper-V 整合服務

Hyper-V 整合服務 是一組可提升 Hyper-V 環境中虛擬機器效能的工具。 每個 Hyper-V 整合服務都必須在主機和來賓系統中啟用,才能正常運作並提供所需服務。預設情況下,除了 Hyper-V 來賓服務介面之外,所有 Hyper-V 整合服務都會在來賓作業系統上啟用。

為了讓 Hyper-V 動態記憶體有效運作,請確保 Hyper-V 整合服務已升級至最新版本,且來賓作業系統支援動態記憶體特點。 否則,由於無法動態提供記憶體且無法妥善處理記憶體需求,Hyper-V 可能會發生問題。

自 Windows Server 2016 發布以來,Hyper-V 整合服務及相關更新皆可透過 Windows Update 安裝。因此,您應設定虛擬機器接收更新,以確保您的 Hyper-V 基礎架構使用最新版本的 Hyper-V 整合服務。

監控記憶體使用情況與資源分配

目前市面上有許多 Hyper-V 管理工具,可讓您監控 Hyper-V 環境中的記憶體使用狀況與資源分配。若啟用了 Hyper-V 動態記憶體功能,可能會發生 RAM 超額配置,進而導致記憶體完全耗盡的情況。因此,建議您密切追蹤 Hyper-V 主機上各虛擬機器所分配的 RAM 量。

為此,您可以使用原生監控工具,或購買第三方軟體。 例如,您可透過 Hyper-V 管理員中的主機,或透過工作管理員中的客體虛擬機器,來檢查虛擬機器的記憶體狀態。

Hyper-V Dynamic Memory Best Practices in the Hyper-V Host

Hyper-V Dynamic Memory Best Practices in the Guest OS

如此一來,我們便能監控系統內記憶體資源的使用狀況。不過請注意,Hyper-V 管理員與工作管理員在顯示記憶體使用情況時,呈現的結果並不相同。 虛擬機器監控工具並未顯示實際結果,因為該虛擬機器會認為,分配給虛擬機器的總記憶體量實際上正由其驅動程式所佔用。實際上,主機通常更能掌握記憶體在基礎架構中分配給各虛擬機器的狀況。未使用的記憶體實際上會重新分配給其他虛擬機器,而這一點在 Hyper-V 管理員中有所反映。

請將啟動記憶體納入考量

設定較高或較低的啟動記憶體 (Startup RAM) 會顯著影響 Hyper-V 的效能。您應增加啟動記憶體,以確保作業系統及其上執行的應用程式能如預期般啟動。這是因為 Windows 在啟動時的需求,比作業系統閒置時更多。

此外,在安裝或升級操作期間,虛擬機器作業系統可用的記憶體量等於啟動記憶體的數值。 因此,在執行安裝或升級之前,務必確保啟動記憶體值符合所選作業系統的最低記憶體需求。

請注意,若將啟動記憶體值設定過高,可能會對 Hyper-V 動態記憶體的效能及整體記憶體使用情況造成負面影響。因此,建議將客體作業系統的啟動記憶體值設定為 512 MB,以確保其能無中斷地啟動。

別忘了記憶體洩漏的問題

在為特定虛擬機器設定 Hyper-V 動態記憶體限制時,務必謹記您的基礎架構可能面臨記憶體洩漏的問題。記憶體洩漏是指因記憶體分配錯誤而導致可用記憶體逐漸流失。此情況通常發生在應用程式未能釋放原本僅供臨時使用的記憶體時。若未能在造成嚴重損害前偵測到此問題,作業系統的記憶體可能會耗盡,最終導致應用程式失敗。

為減輕此問題的負面影響,建議您安裝監控工具(例如 RAMMap),並掃描整個基礎架構以檢查任何不一致之處,同時偵測執行中的應用程式是否出現異常的記憶體使用情況。此外,此類工具還能協助您確定最適合該特定虛擬機器的記憶體最小值與最大值。

設定最大與最小 RAM 值

為確保 Hyper-V 動態記憶體能如預期運作,建議您設定系統不得逾越的限制。如此一來,即可有效控制基礎架構內的記憶體使用率,確保虛擬機器不會消耗過多或過少的記憶體。

請仔細設定記憶體緩衝區的數值

Hyper-V 動態記憶體的一項最佳實踐是設定適當的"記憶體緩衝區"值,該值指定應為選定的虛擬機器預留多少額外記憶體。若將"記憶體緩衝區"值設得較高,這部分額外記憶體通常用於大型虛擬機器的檔案快取,以及優化系統內的 I/O 操作。

同時,若系統中正在執行需要大量實體記憶體的應用程式,則應將"記憶體緩衝區"值設為較低。透過降低"記憶體緩衝區"值,可確保可用記憶體不會被單一虛擬機器完全佔用。

此外,若虛擬機器已獲分配大量記憶體,其極不可能再需要額外記憶體。因此,將未使用的記憶體資源分享給更需要它的其他虛擬機器,會是更合理的做法。

在需要時更新 Hyper-V 主機

為了維持 Hyper-V 環境的穩定與安全性,請確保您的 Hyper-V 主機在需要時安裝所有更新和安全性修補程式。Microsoft 更新和安全性修補程式的首要目的,是解決系統中已發現的問題。例如,在 Windows Server 2012 R2 中曾發現一個與 Hyper-V 動態記憶體相關的問題,該問題導致 Hyper-V 虛擬機器無法取得額外的記憶體。 即使在虛擬機器上已啟用此特點,系統仍會持續發生失敗。基於此原因,Microsoft 發布了此熱修復程式,以解決該問題並確保功能性能如預期般運作。

偵測一天中表現的變化

在工作時段內,生產工作負載會大幅增加,這最終會影響 Hyper-V 的效能,以及資源分配和記憶體使用率。作為 Hyper-V 動態記憶體的最佳實踐之一,建議您監控整個工作日期間記憶體使用量的變化。透過偵測記憶體使用量通常在何時出現高峰與低谷,您將能掌握如何善用 Hyper-V 動態記憶體。

僅在實際需求時啟用 Hyper-V 動態記憶體

儘管 Hyper-V 動態記憶體是一項極具幫助的特點,能提升實體記憶體的使用效率,但在某些使用情境下,靜態記憶體分配仍是較佳的選擇。因此,您應評估是否需要在特定的虛擬機器上啟用 Hyper-V 動態記憶體。 舉例來說,某些應用程式若能擁有預先設定且不受干擾的專用 RAM 空間,其運作效能會更佳。這部分預先分配的 RAM 容量,即使記憶體需求有所波動,其數值仍會保持不變。

因此,建議您預先規劃 Hyper-V 環境中的實體記憶體分配方式,以防日後發生 RAM 不足的情況,並避免應用程式發生故障。

請僅在相容的應用程式中使用 Hyper-V 動態記憶體

在 Hyper-V 主機或來賓系統上安裝任何應用程式之前,請務必確認該應用程式可與 Hyper-V 動態記憶體功能併用。要確認相關資訊,建議您先閱讀產品支援文件,以了解其功能性及系統需求。採取這些預防措施,有助於避免可能發生的記憶體使用與分配問題。

結語

在了解 Hyper-V 動態記憶體的最佳實踐後,您便能更有效率且安全地運用實體記憶體。然而,您的虛擬基礎架構仍面臨各種可能影響其效能的風險與威脅。為了確保虛擬環境的安全,採用資料保護解決方案是最佳的選擇。 NAKIVO Backup & Replication 這是一套可靠、高效且價格實惠的解決方案,提供虛擬機器備份、複製、雲端備份、備份複製、站點還原以及豐富的特點。

試試看 NAKIVO Backup & Replication

試試看 NAKIVO Backup & Replication

立即申請免費試用,全面體驗本解決方案的所有資料保護特點。15 天免費試用。無功能或容量限制。無需提供信用卡資訊。

People also read