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