ESXi 授予 Windows 客戶機所有分配的記憶體
我已經看過幾次了,我不明白髮生了什麼
我為 Windows 來賓分配了 200 GB 的 RAM - 未保留。
現在看看來賓,作業系統顯示它只使用了大約 2 gigs 的 RAM。
但是,ESXi 已為其分配了全部 200 GB 的 RAM(主機現在正在生成記憶體不足警報)!Windows 僅使用 2 個演出,那麼為什麼 ESXi 授予虛擬機全部 200 個演出?
這是 Windows 需要更多 RAM 的情況嗎?我該如何解決這個問題?
從這裡引用:
A host allocates the memory specified by the Limit parameter to each virtual machine, **unless memory is overcommitted** (emphasis mine). ESXi never allocates more memory to a virtual machine than its specified physical memory size. [...] When memory is overcommitted, each virtual machine is allocated an amount of memory somewhere between what is specified by Reservation and what is specified by Limit. The amount of memory granted to a virtual machine above its reservation usually varies with the current memory load.
因此,除非主機需要比實際記憶體更多的記憶體來滿足在其上執行的所有 VM 的要求,否則它會很樂意為每個 VM 分配它請求的所有記憶體,即使它沒有保留;但是,如果發生過度使用,主機將回收部分記憶體,以便將其釋放給其他虛擬機;在這種情況下,將根據負載需求回收盡可能多的記憶體,直到達到每個 VM 的保留量。如果即使在將每個 VM 分配的 RAM 降低到其保留量之後,啟動另一個 VM 的記憶體要求也無法滿足,它將不會啟動。當然,如果虛擬機的記憶體減少到它的保留量並且這還不足以讓虛擬機正常執行,那麼就會出現緩慢和/或錯誤。
假設您有 300 GB 的 RAM 並有兩個 VM,每個 VM 的限制為 200 GB。當您啟動第一個時,它將獲得完整的 200 GB。當您啟動第二個時,主機將嘗試滿足這兩個請求,但由於它沒有 400 GB 可用空間,因此它將為每個 VM 提供 150 GB 空間。然後,根據這些虛擬機的實際負載,可以進一步移動記憶體:如果一個虛擬機嘗試使用 180 GB 而另一個虛擬機佔用 20 GB,主機將從第二個虛擬機移動 30 GB 額外的記憶體到第一個虛擬機一。
當然,如果兩個 VM 都嘗試使用所有 200 GB,主機將開始瘋狂交換;這是您添加更多 RAM 或將一台 VM 移至其他地方的線索。