如果您有閒置或低負載的虛擬機器,例如在集區虛擬桌面基礎架構 (VDI) 環境中,動態記憶體可讓您增加合併並改善重新啟動作業的可靠性。 您也可以透過這些新功能靈活地回應需求變更。
主要優點
使用動態記憶體,您可以獲得更高的合併數量,並提高重新啟動操作的可靠性。 此功能可以降低成本,尤其是在具有許多閒置或低負載虛擬機器的環境中,例如集區 VDI 環境。 動態記憶體執行階段組態變更可以減少停機時間,並提供更高的彈性來回應需求變更。
在 Windows Server 上執行的 Hyper-V 會自動計算要保留的記憶體量,以供管理主機作業系統獨佔使用。 此記憶體用於執行虛擬化服務。 如果電腦是容錯移轉叢集的一部分,Hyper-V 也會保留足夠的記憶體來執行容錯移轉叢集服務。
技術概觀
動態記憶體將啟動記憶體定義為虛擬機器可以擁有的最小記憶體量。 不過,Windows 在啟動期間需要的記憶體比穩定狀態還要多。 因此,系統管理員有時會將額外的記憶體指派給虛擬機器,因為 Hyper-V 無法在啟動後從這些虛擬機器回收記憶體。 動態記憶體引入了最小記憶體設定,可讓 Hyper-V 從虛擬機器回收未使用的記憶體。 此功能反映為虛擬機器合併數量的增加,尤其是在虛擬桌面基礎架構 (VDI) 環境中。
Windows Server 還引入了智能分頁,以實現可靠的虛擬機重新啟動操作。 儘管最小記憶體增加了虛擬機器整合數量,但它也帶來了挑戰。 如果虛擬機器的記憶體量少於其啟動記憶體,且重新啟動,則 Hyper-V 需要額外的記憶體才能重新啟動虛擬機器。 由於主機記憶體壓力或虛擬機器狀態,Hyper-V 可能並不總是有額外的記憶體可用。 此限制可能會導致零星的虛擬機器重新啟動失敗。 智慧分頁可彌合最小記憶體和啟動記憶體之間的記憶體差距,並允許虛擬機器可靠地重新啟動。
具有可靠重新啟動操作的最小記憶體配置
與舊版動態記憶體一樣,您可以為虛擬機器設定最小記憶體量,Hyper-V 會繼續確保一律將此數量指派給執行中的虛擬機器。
為了為設定的最小記憶體少於啟動記憶體的虛擬機器提供可靠的重新啟動體驗,Hyper-V 使用智慧分頁。 此記憶體管理方法會在需要更多記憶體來重新啟動虛擬機器時,使用磁碟資源作為額外的臨時記憶體。 這種方法有優點也有缺點。 它提供了一種可靠的方法,可以在沒有可用的實體記憶體時保持虛擬機器運行。 不過,它可能會降低虛擬機器效能,因為磁碟存取速度比記憶體存取速度慢得多。
這很重要
安裝或升級虛擬機器的作業系統時,虛擬機器在安裝和升級程式期間可用的記憶體數量是指定為 [啟動 RAM] 的值。 即使您為虛擬機器設定動態記憶體,虛擬機器也只會使用 啟動 RAM 設定中設定的記憶體量。 在安裝或升級程序期間,請確定啟動 RAM 值符合作業系統的最低記憶體需求。
為了將智慧分頁的效能影響降到最低,Hyper-V 只會在發生下列所有狀況時才會使用智慧分頁:
- 虛擬機器正在重新啟動。
- 沒有可用的實體記憶體。
- 無法從主機上執行的其他虛擬機器回收任何記憶體。
Hyper-V 在下列情況下不會使用智慧分頁:
- 您可以從「關閉狀態」(而不是重新啟動)啟動虛擬機器。
- 您為執行中的虛擬機器超額分配記憶體。
- 虛擬機器會在 Hyper-V 叢集中容錯移轉。
當您超額使用主機記憶體時,Hyper-V 會繼續依賴虛擬機器作業系統中的分頁作業,因為這比智慧分頁更有效。 客體作業系統中的分頁作業是由 Windows 記憶體管理員執行。 Windows 記憶體管理員比 Hyper-V 主機有更多關於虛擬機器內記憶體使用量的資訊,這表示它可以為 Hyper-V 提供更好的資訊,以便在選擇要分頁的記憶體時使用。 因此,與智慧分頁相比,系統產生的額外負荷較少。
為了進一步減少智慧分頁的影響,Hyper-V 會在虛擬機器完成啟動程序後從虛擬機器中移除記憶體。 它透過與客體作業系統中的動態記憶體元件進行協調(即「氣球化」)來達成此目標,從而使虛擬機器停止使用智慧分頁。 使用此技術時,智慧分頁這項功能是暫時啟用的,預計不會持續超過 10 分鐘。
另請注意下列有關 Hyper-V 如何使用智慧分頁的資訊:
- 它僅在虛擬機需要時生成智慧分頁檔案。
- 它會在移除額外的記憶體量後刪除智慧分頁檔案。
- 它不會再次對此虛擬機器使用智慧分頁,直到發生另一次重新啟動且沒有足夠的實體記憶體為止。
執行階段動態記憶體組態變更
Hyper-V 可讓您在虛擬機器執行時對動態記憶體進行下列組態變更:
- 增加最大記憶體。
- 減少記憶體下限。
關於動態記憶體設定
Hyper-V Manager 中的下列虛擬機器設定可讓您設定動態記憶體。 請檢閱下列說明,以瞭解功能的運作方式及其關聯性。
| Setting | Description |
|---|---|
| 啟動內存 | 指定啟動虛擬機器所需的記憶體量。 此值必須足夠高,才能讓客體作業系統啟動,但應該盡可能低,以允許最佳記憶體使用率和可能更高的合併比率。 |
| 最小內存 | 指定虛擬機器啟動後應配置給虛擬機器的最小記憶體量。 將值設定為低至 32 MB,最高可達等於 啟動 RAM 值的最大值。 |
| 最大內存 | 指定此虛擬機器可以使用的記憶體數量上限。 將值設定為從「啟動 RAM」的值開始,最高可達 1 TB。 不過,虛擬機器只能使用客體作業系統支援的最大記憶體數量。 例如,如果您為執行客體作業系統的虛擬機器分配 64 GB,而該作業系統最多只支援 32 GB,則該虛擬機器不能使用超過 32 GB 的資源。 |
| 記憶體緩衝區 | 指定 Hyper-V 嘗試指派給虛擬機器的記憶體量,與虛擬機器內執行的應用程式和服務實際所需的記憶體量相比。 記憶體緩衝區會指定為百分比,因為代表緩衝區的實際記憶體數量會隨著虛擬機器執行時記憶體使用量的變更而變更。 Hyper-V 會使用虛擬機器中的效能計數器來識別認可的記憶體,以判斷虛擬機器的目前記憶體需求,然後計算要新增為緩衝區的記憶體數量。 緩衝區是使用下列公式來決定的:記憶體緩衝區量 = 虛擬機器實際需要多少記憶體 /(記憶體緩衝區值 / 100)。 例如,如果分配給客體作業系統的記憶體為 1,000 MB,且記憶體緩衝區為 20%,則 Hyper-V 會嘗試額外配置 20%(200 MB),使配置給虛擬機器的實體記憶體總計達到 1,200 MB。 注意: 當電腦中沒有足夠的實體記憶體可用,無法為每個虛擬機器提供其要求的記憶體緩衝區時,緩衝區將不會被維持。 |
| 記憶體權數 | 為 Hyper-V 提供一種方法,以判斷如果電腦中沒有足夠的實體記憶體可用,無法為每個虛擬機器提供要求的記憶體量,如何在虛擬機器之間分配記憶體。 |
動態記憶體/Hyper-V 記憶體管理常見問題
以下是有關動態記憶體的一些常見問題。
安裝 Hyper-V 角色後,是否需要手動設定頁面檔案的大小?
否,建議允許系統在執行 Hyper-V 時管理頁面檔案大小。
主機作業系統和執行中的虛擬機器之間的記憶體如何分配?
Hyper-V 會監視主機作業系統的執行階段健康情況,以判斷它可以安全地配置給虛擬機器的記憶體量。
我的虛擬機器無法啟動,並顯示下列錯誤訊息「系統中沒有足夠的記憶體來啟動虛擬機器」或「無法初始化記憶體:記憶體不足 (0x8007000E)」。 如何判斷虛擬機有多少可用內存?
如先前所述,Hyper-V 會監視主機作業系統的執行階段健康情況,以判斷它可以安全地配置給虛擬機器的記憶體量。
您可以在下列效能監視器計數器中檢視虛擬機器目前可用的記憶體數量: Hyper-V 動態記憶體平衡器 – 可用記憶體。