Virtual-Machines

如何使用 vCenter 5.0 在 vSphere 5.0 上節省記憶體並執行更多虛擬機?

  • June 7, 2012

伺服器有 16 gig 的記憶體。我們希望在這台伺服器上執行盡可能多的虛擬機。它們被用作分發測試作業的 Jenkins VM 的自動化測試“奴隸”。

這些虛擬機目前在 vSphere 中總共使用了 10.6 Gig 的記憶體。

但是 vSphere 報告使用了 16 Gig 中的 12.1 Gig。這意味著 vSphere 本身使用的是 1.5 Gig。

所以伺服器上只剩下 4 Gig。

請注意,vCenter 報告以下每個 vm 使用的記憶體少於其全部記憶體。

  1. vCenter Server Appliance 需要 4 Gig。使用了 10%。
  2. 詹金斯設備需要 500 兆。使用了 14%。
  3. Windows 7 x64 需要 2 gig。使用了 15%。
  4. Windows 7 x64 需要 2 gig。使用了 15%。
  5. Windows 7 x64 需要 2 gig。9% 已使用。

問題: 1. 剩餘 4 Gig 是否意味著我們只能再執行這 2 gig Windows 虛擬機中的 2 個?

  1. 使用的 % 是否允許我們“過度送出”?除非被測軟體發生記憶體洩漏,否則機器很少使用更多記憶體。
  2. 如果我們“過度送出”並且機器確實需要更多記憶體會發生什麼?
  3. 如果我們不能過度送出,那麼關閉 vCenter Server 是否有意義?似乎由於我們只有一個 vSphere 伺服器,vCenter 是多餘的。由於 vSphere 客戶端不支持複製,我們只需要它來“複製”。所以也許大部分時間關閉電源會更好。
  4. 允許執行更多虛擬機的任何其他想法或建議?

1:是的,您可以過度送出。詳見 2,3

2:如果物理記憶體已滿,ESX(i) 將啟動其Memory Ballooning,Transparent Page SharingMemory Compression功能。當使用這些功能時記憶體變滿時,主機將交換。

記憶膨脹

當管理員安裝 VMware Tools 時,memctl 驅動程序(又名氣球驅動程序)安裝在來賓作業系統中。此驅動程序會在來賓內部創建一個消耗的記憶體氣泡或“氣球”,以便作業系統將其視為被應用程序使用。然後,管理程序通過膨脹這個氣球來獲取釋放的物理 RAM,並將其分配給其他需要它的 VM。記憶體膨脹引入了少量的處理成本,如果它強制客戶作業系統開始分頁到磁碟,這會顯著減慢 VM 上的應用程序。如果虛擬機沒有使用記憶體,那麼膨脹本身並不是一個嚴重的性能問題,但這表明主機上的物理記憶體正在變得稀缺。與其他處理記憶體過度使用的方法相比,記憶體膨脹的最大優勢之一是記憶體膨脹驅動程序允許客戶作業系統選擇將哪些頁面讓給其他 VM 的管理程序。這樣,可以安全地釋放未處於活動狀態的頁面,從訪客的角度來看,幾乎不會對性能造成影響。

透明頁面分享

透明頁面共享是記憶體的“重複數據刪除”,它允許將相同的虛擬記憶體頁面折疊到主機物理 RAM 內的單個頁面中,從而釋放記憶體用於其他用途。例如,如果主機上的多個虛擬機都執行相同的作業系統和應用程序,則管理程序將通過散列比較記憶體頁面,以找到可以通過合併釋放的相同頁面。膨脹和透明頁面共享一起工作,以確保過度使用的記憶體不會導致來賓虛擬機中的應用程序出現性能問題。

記憶體壓縮

虛擬機管理程序的記憶體壓縮和磁碟交換是 ESX/ESXi 在主機上的記憶體資源被拉伸到斷點時防止虛擬機管理程序崩潰的最後努力。管理程序對記憶體頁面的壓縮也會導致額外的處理成本;但是,與將頁面換出到儲存設備所導致的減速相比,這種成本很小。vSphere 4.1 及更高版本的使用者將能夠利用此功能來減少在物理記憶體資源接近耗盡時發生的交換量。

VM 記憶體 (vRAM) 中竊取的大小注意事項

3:斷電就不能用了,所以沒有統計數據等等,不知道HA什麼的。我不會關掉它。如果 VM 處於空閒狀態,ESX 會知道並處理它。請注意,列出的記憶體功能在需要時使用(請參閱說明),因此使用的記憶體越多,記憶體就會增加得越少。嘗試大量浪費記憶體以查看您的 vCenter VM 是如何縮減的。我不認為它會在空閒時浪費太多記憶體

4:有關如何獲得答案的資訊,請參閱連結的白皮書

引用自:https://serverfault.com/questions/396344