vm記憶體資源控制是如何實現的?它可能帶來的影響是什麼?本文從概念到實戰來闡述如何做好虛擬機器上記憶體資源控制。
一概念
reservations預留了一部分物理記憶體供vm或者資源池使用。一旦vm或資源池的記憶體需求達到了reservation的規定值,這部分記憶體就完全分配給該vm或資源池,不可以再分配出去。
shares定義了在出現資源競爭的情況下,
vm或者資源池可以獲得資源的份額。比如vm1和vm2的份額比例是2:1,vm1比vm2有2倍的機會搶到資源。
limits決定了vm可以最大使用的記憶體。這是通過vmware tools中包括的ballooningdriver來實現的。
二 例項
上圖摘自
frank denneman的文章
impact of memory reservation.
該圖很好的解釋了記憶體控制中幾個重要引數的關係。
mpn指machinepage number,是用來對映真實物理記憶體的。
假設一台
esxi主機有8g記憶體,我們為圖中所示vm1設定2g記憶體,那麼configuredmemory是2g。然後設定1g reservation。還有vm2,vm3,vm4和vm5分別設定了2g記憶體。但沒有設定reservatin
在vm1啟動時,可能需要使用的記憶體很少,還沒有達到reservation的值。那麼這部分多餘的記憶體,還是可以供hyperviosr排程給其他vm使用的。如果vm1上的應用需要更多的記憶體,一旦達到rerservation的值之後,圖中所示的guaranteed mpn註明這部分預留記憶體會一直分配給vm1,而不允許其他vm使用。
vm1-vm5的configured memory總和是2*5=10g,而該主機真實物理記憶體僅有8g, 假設這時vm2-vm5上的應用所需要的活動記憶體(active memory)的總和小於8g,那麼是沒有任何效能的影響的。
假如active memory總和接近甚至大於8g,那麼意味著物理記憶體短缺,可能會造成vm之間資源競爭。這時候share的設定就發揮作用了。
為了簡化的目的,我們假設
esxi為保證hypervisor執行的記憶體,再加上5個vm的memoryoverhead總和是1g
可供所有
vm分享的記憶體=8g主機記憶體-1g overhead - vm1的1g reservation=6g。假設vm1的share分配是high ,其他vm的share是normal。那麼這6g記憶體分配是:vm1:33% vm2:16% vm3: 16% vm4:16% vm5: 16%
那麼剩餘的
vm swap file size = configured memory – memory reservation
上面vm1 的 swap size = 2g – 1g = 1g
特別要區分
vm swapfile 和 os swap file,vmware swapfile是hypervisor用來彌補該vm對物理記憶體的需要,把暫時不用的資訊從物理記憶體中取出,存放在disk上的swapfile中。
三考慮因素
reservation,share和limit在什麼情況下適合使用呢?建議盡量在resource pool中設定資源控制,因為在vm中設定會增加系統管理員的負擔,同時可能對整個虛擬化平台帶來一些影響。
reservation
如果是個別
vm上執行關鍵的應用,可以考慮reservation。簡單的做法是設定和configuredmemory一樣大小。但這可能造成不必要的資源浪費。道理很簡單,reservation是保證了該vm的一部分物理記憶體需求,但意味著整個主機可以共享的物理記憶體減少了。可能影響到能夠執行在該主機上的vm的個數。
比如該vm的configured memory是2g,其實活動的記憶體只有1g,如果一定要設定reservation的話,最好設定為1g。
share
僅僅在資源有競爭的情況下才會發揮作用。
limit
在vm上設定limit,意味著該vm不能充分使用configuredmemory. 除非物理記憶體嚴重不足,不建議在vm上使用limit。因為這有可能會造成資源不能被使用,也會增加排錯的複雜性。
參考:
impact of memory reservation.
虛擬化實戰 VM設計之三記憶體資源控制
vm記憶體資源控制是如何實現的?它可能帶來的影響是什麼?本文從概念到實戰來闡述如何做好虛擬機器上記憶體資源控制。一概念 reservations預留了一部分物理記憶體供vm或者資源池使用。一旦vm或資源池的記憶體需求達到了reservation的規定值,這部分記憶體就完全分配給該vm或資源池,不可以...
虛擬化實戰 VM設計之三記憶體資源控制
vm記憶體資源控制是如何實現的?它可能帶來的影響是什麼?本文從概念到實戰來闡述如何做好虛擬機器上記憶體資源控制。一概念 reservations預留了一部分物理記憶體供vm或者資源池使用。一旦vm或資源池的記憶體需求達到了reservation的規定值,這部分記憶體就完全分配給該vm或資源池,不可以...
虛擬化市場之三國演繹
目前vmware佔據的市場份額最大。微軟的實力不容小覷 ctrix有 優勢,效能也不錯 一句話概括,微軟和思傑正在趕超vmware的虛擬化技術。報告中這樣寫道 雖然市場份額的領先者vmware繼續引領著虛擬化產品的標準和戰略的步伐,但是微軟的市場份額 尤其是新進加入虛擬化市場的中等規模使用者群 持續...