共享(sharing)和過(guò)量使用(overcommitment)這兩種內(nèi)存管理技術(shù)都能夠幫助提升系統(tǒng)整合性,但是在使用它們之前,管理員應(yīng)該首先了解二者之間的細(xì)微差別。
一臺(tái)服務(wù)器能夠支持的虛擬機(jī)數(shù)量通常取決于物理硬件所能夠提供的可用計(jì)算資源。大多數(shù)資源,比如處理器周期、存儲(chǔ)I/O和網(wǎng)絡(luò)帶寬等,都能夠相對(duì)簡(jiǎn) 單地進(jìn)行共享。這種做法的原理在于負(fù)載并不總是處于忙碌狀態(tài),因此共享——或者過(guò)度使用——資源能夠?qū)崿F(xiàn)更高等級(jí)的負(fù)載整合,因此為虛擬機(jī)分配的資源總量 和可以超過(guò)當(dāng)前物理資源的總數(shù)量;就算在特殊情況下出現(xiàn)問(wèn)題,也只不過(guò)是對(duì)負(fù)載性能產(chǎn)生輕微影響。
然而 ,服務(wù)器內(nèi)存一直以來(lái)都被視為一種固定資源。由于每臺(tái)運(yùn)行在內(nèi)存當(dāng)中的虛擬機(jī)都是應(yīng)用程序和數(shù)據(jù)集合的完整鏡像,因此為所有虛擬機(jī)提供足夠的內(nèi)存資源是十 分重要的。否則,服務(wù)器將不得不使用硬盤(pán)上的交換文件(swap file)來(lái)補(bǔ)充內(nèi)存空間——但是通常這種方式會(huì)對(duì)虛擬機(jī)的性能造成極為嚴(yán)重的影響。但是隨著內(nèi)存過(guò)度使用和內(nèi)存共享技術(shù)的出現(xiàn),這種情況正在發(fā)生改變。
借助于內(nèi)存過(guò)度使用技術(shù),主機(jī)服務(wù)器所分配的內(nèi)存數(shù)量可以超過(guò)現(xiàn)有的物理內(nèi)存數(shù)量。比如,假設(shè)一臺(tái)主機(jī)服務(wù)器擁有4GB物理內(nèi)存,那么借助于內(nèi)存過(guò) 度使用技術(shù)也許可以創(chuàng)建六臺(tái)內(nèi)存為1GB的虛擬機(jī)。乍看之下,這是一種非常危險(xiǎn)的方式,因?yàn)閮煞N負(fù)載不能同時(shí)共享相同內(nèi)存地址空間當(dāng)中的不同數(shù)據(jù)片——至 少在將數(shù)據(jù)交換到硬盤(pán)之前是不可以的。
但是設(shè)計(jì)者很快意識(shí)到許多虛擬機(jī)并不會(huì)使用為其分配的全部?jī)?nèi)存空間,導(dǎo)致部分內(nèi)存空間基本上被浪費(fèi)了,因?yàn)橐恢碧幱诳臻e或者未使用狀態(tài)。 Hypervisor能夠?qū)ふ姨幱诳臻e狀態(tài)的內(nèi)存,并且將其提供給需要使用的虛擬機(jī)。如果沒(méi)有其他虛擬機(jī)需要額外的內(nèi)存,那么這些空閑空間可以被用來(lái)創(chuàng)建 新的虛擬機(jī)。可以在“共享(Shares)”虛擬內(nèi)存配置當(dāng)中定義虛擬機(jī)在內(nèi)存池當(dāng)中的優(yōu)先級(jí),并且還可以通過(guò)“預(yù)留(Reservation)”機(jī)制定 義虛擬機(jī)能夠使用的最小內(nèi)存空間,保證虛擬機(jī)擁有足夠內(nèi)存以正常運(yùn)行。
虛擬機(jī)還能夠共享大量?jī)?nèi)容。比如,上面提到的六臺(tái)1GB內(nèi)存虛擬機(jī)全部運(yùn)行Windows Server 2012 R2,其中兩臺(tái)虛擬機(jī)運(yùn)行相同的業(yè)務(wù)應(yīng)用。那么在這種情況下,五臺(tái)Windows Server 2012 R2和一個(gè)應(yīng)用程序就是冗余的。內(nèi)存共享技術(shù)允許不同虛擬機(jī)使用相同內(nèi)存頁(yè)面當(dāng)中的一個(gè)通用實(shí)例。這樣就能夠減少虛擬機(jī)需要使用的內(nèi)存總數(shù)量,并且支持更 高等級(jí)的過(guò)度使用。內(nèi)存共享技術(shù)的實(shí)現(xiàn)方式非常類似于硬盤(pán)存儲(chǔ)當(dāng)中的數(shù)據(jù)去重復(fù)化機(jī)制。
需要特別注意的是內(nèi)存過(guò)度使用和內(nèi)存共享都是高度動(dòng)態(tài)的技術(shù),會(huì)受到總計(jì)算負(fù)載和通用內(nèi)容數(shù)量的影響。比如,很少使用的虛擬機(jī)能夠?yàn)閮?nèi)存過(guò)度使用釋 放大量?jī)?nèi)存空間,但是隨著虛擬機(jī)使用頻率的增加和內(nèi)存需求的增長(zhǎng),hypervisor必須將這些內(nèi)存返還給虛擬機(jī),否則就會(huì)面臨使用硬盤(pán)交換文件所帶來(lái) 的性能問(wèn)題。類似地,使用不同操作系統(tǒng)版本、應(yīng)用程序和數(shù)據(jù)的虛擬機(jī)也許只有很少能夠共享的通用內(nèi)存頁(yè)面。虛擬機(jī)遷移和負(fù)載均衡會(huì)改變通用內(nèi)存頁(yè)面,對(duì)內(nèi) 存共享產(chǎn)生影響。
分享到微信 ×
打開(kāi)微信,點(diǎn)擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網(wǎng)頁(yè)分享至朋友圈。