允許虛擬機共享資源的內(nèi)存管理技術(shù)十分常見,但是管理員應(yīng)該遵循下面的策略和方法以降低風險。
隨著CPU內(nèi)核數(shù)量不斷增加,其計算能力也在逐漸增強,內(nèi)存逐漸成為虛擬機的性能瓶頸。內(nèi)存速度并非停滯不前,相反地,其速度和密度都實現(xiàn)了快速提升,但是價格也隨之不斷增長。不幸的是,對于管理員來說,現(xiàn)代操作系統(tǒng)和應(yīng)用程序?qū)τ趦?nèi)存的需求也在同步增加。
明智的管理員可以使用內(nèi)存過量分配(overcommitment)技術(shù)抵消部分成本并且擴展可用資源,但是如果錯誤地使用這項技術(shù),可能會對虛擬機的性能表現(xiàn)造成影響。
過量分配內(nèi)存所面臨的挑戰(zhàn)
如何使用虛擬機內(nèi)存是一項特殊的挑戰(zhàn),因為它涉及多個不同層級的內(nèi)存管理。首先我們來看一下物理內(nèi)存的使用方式,對于每臺虛擬機來說,hypervisor都將會為其分配一部分或者所有它所需要的內(nèi)存。分配的數(shù)量通常由是否使用內(nèi)存預留或者共享技術(shù)所決定。除了物理內(nèi)存之外,hypervisor通常會創(chuàng)建一個與之匹配的磁盤交換文件(swap file),它可以在主機物理內(nèi)存不足的時候發(fā)揮作用。這種機制非常類似于傳統(tǒng)操作系統(tǒng)使用交換文件或者頁面文件的方式。這樣就能夠?qū)崿F(xiàn)分層的效果,客戶端操作系統(tǒng)可以使用hypervisor為其分配的“物理內(nèi)存”或者自己的交換空間,但是根據(jù)hypervisor使用物理內(nèi)存的方式不同,虛擬機所使用的“物理內(nèi)存”有可能是真正的物理內(nèi)存,還有可能是hypervisor的交換文件。
使用這種內(nèi)存分層機制面臨著很大挑戰(zhàn)。管理員必須負責不同層級之間的內(nèi)存過量分配情況,并且這些層級并不能感知到對方的存在。
透明頁共享問題
現(xiàn)在我們已經(jīng)了解了內(nèi)存的分層機制,但是還需要解決VMware出于安全因素考慮所做出的變化,這些變化會對內(nèi)存過量分配造成影響。出于安全考慮,VMware默認禁用了透明頁共享(transparent page sharing)技術(shù)。如果多臺虛擬機擁有相同的內(nèi)存空間,那么透明頁共享技術(shù)允許這些虛擬機共享內(nèi)存當中的單個頁面。這種方式雖然能夠大大提升所節(jié)省的內(nèi)存數(shù)量,但是也帶來了安全隱患,因為虛擬機不再是完全獨立的。盡管現(xiàn)在仍然能夠使用透明內(nèi)存頁共享技術(shù),但是必須手動啟用,我們無法預知這種技術(shù)是否還會出現(xiàn)在未來的版本當中。
禁用了這項配置之后,就能夠更加輕松地理解虛擬機過量分配機制了?,F(xiàn)在的關(guān)注重點在于內(nèi)存何時開始被交換到硬盤當中。管理員在使用內(nèi)存過量分配技術(shù)的過程當中擁有很大程度上的靈活性,并非所有的虛擬機都是相同的。當我們使用過量分配技術(shù)時,將生產(chǎn)環(huán)境當中的虛擬機和用于測試以及開發(fā)的虛擬機放置在同一臺hypervisor當中能夠帶來很多好處。如果出現(xiàn)內(nèi)存搶奪的情況,通過使用內(nèi)存預留和限制機制,管理員可以配置非關(guān)鍵虛擬機使用磁盤頁面文件(paging file), 而不是物理內(nèi)存。這是一種理想方式,允許管理員在保證核心系統(tǒng)正常運行的同時不影響其他系統(tǒng),盡管優(yōu)先級較低的虛擬機其性能表現(xiàn)也會更差。需要記住的另外一點是強制磁盤交換,對于測試虛擬機來說將會增加存儲流量,這樣可能會對其他虛擬機造成影響。
對于有能力添加本地磁盤的管理員來說,另外一種方式是使用固態(tài)磁盤來存儲虛擬機的頁面文件。這種方式保證管理員在過量分配內(nèi)存的過程當中不必擔心性能問題。不幸的是,這種方式意味著管理員不能夠再使用遷移或者vMotion技術(shù),因為它要求交換文件位于主機的物理硬件當中。
分享到微信 ×
打開微信,點擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網(wǎng)頁分享至朋友圈。