微軟、Google、亞馬遜等云計(jì)算巨頭,都在以各種“實(shí)例”(Instance)和按需付費(fèi)的方式,向廣大客戶提供其云端硬件資源。不過通常情況下,這些實(shí)例都會(huì)受到特定的CPU和內(nèi)存配置的約束——意味著客戶智能從預(yù)設(shè)的幾個(gè)選項(xiàng)中進(jìn)行挑選、而無法進(jìn)一步細(xì)分配置。
(圖via SemiAnalisis)
比如每多一個(gè)虛擬的CPU核心,就會(huì)往上添加2GB的內(nèi)存。且在實(shí)例開啟的過程中,預(yù)先分配的CPU與內(nèi)存資源也被單個(gè)客戶鎖定,而無法在全局環(huán)境中動(dòng)態(tài)調(diào)節(jié)。
長期以來,超大規(guī)模企業(yè)一直在努力思考如何緩和這方面的資源浪費(fèi)——畢竟許多示例沒有充分利用其DRAM,導(dǎo)致整個(gè)數(shù)據(jù)中心的使用效率低下。
以Microsoft Azure為例,其測(cè)量結(jié)果表明——近半虛擬機(jī)從未使用超過50%的預(yù)分配內(nèi)存資源,這樣的浪費(fèi)是相當(dāng)驚人的。
隨著CPU資源的觸頂,剩余的內(nèi)存資源無法物盡其用,微軟將這種狀態(tài)稱作內(nèi)存擱淺(Memory Stranding)。
更讓人感到震驚的是,多達(dá)25%的DRAM在任何特定時(shí)刻都可能被擱置。
為了大幅改善這種情況,Microsoft Azure想到了所謂的“內(nèi)存池”(Memory Pooling)概念。
旨在允許CPU訪問其所需的盡可能多的內(nèi)存、而不占用或擱置不需要那么多DRAM資源的虛擬機(jī)。
好消息是,全新的CXL緩存一致性協(xié)議,已經(jīng)得到了各大主流硬件提供商的產(chǎn)品支持。
通過采用CXL硬件,微軟等數(shù)據(jù)中心運(yùn)營商有望大幅降低其DRAM成本。
假如最終得到9~10%的整體DRAM優(yōu)化,大型云服務(wù)器提供商可輕松介紹數(shù)億美元的內(nèi)存硬件開銷。
此外微軟估計(jì),使用CXL和內(nèi)存池技術(shù),將使數(shù)據(jù)中心的服務(wù)器成本降低4-5%——畢竟僅DRAM組件就占比超過了50%。
性能方面,Microsoft Azure團(tuán)隊(duì)對(duì)一些使用本地DRAM/內(nèi)存池的配置進(jìn)行了基準(zhǔn)測(cè)試,不過性能損失/最佳效果還是取決于具體的應(yīng)用程序。
一方面,Memory Pooling會(huì)導(dǎo)致額外的67-87 ns延遲,導(dǎo)致某些應(yīng)用程序的速度變得更慢。
另一方面,20%左右的應(yīng)用程序并未受到內(nèi)存池的性能拖累,但有23%的應(yīng)用程序性能損失不到5%。
此外25%的應(yīng)用程序減速超20%,12%的應(yīng)用程序減速超30%。
需要指出的是,這只是微軟在首批CXL硬件上展開的早期測(cè)試。展望下一代硬件和新的CXL協(xié)議規(guī)范,Memory Pooling還有望帶來更好的體驗(yàn)。