企業類應用與桌面類應用的一個顯著區別,就是它們在設計時可以充分利用超大記憶體,會主動對記憶體和硬碟的使用進行規劃以及效能最佳化,都做得很專業。然而,在這個資料暴漲的時代,一些大資料類應用對記憶體的需求已經超出了可接受的成本範圍,此時不得不使用NVMe硬碟來承載大量的從主存中騰挪出來的資料。
對於某些強烈依賴記憶體的系統,比如記憶體資料庫,記憶體計算系統而言,SDRAM到NVMe盤的效能落差甚至都覺得太大,而導致最終效能不令人滿意。所以對於這類應用,一個位於SDRAM和NVMe盤之間的儲存器層級,就十分必要。英特爾®傲騰™持久記憶體恰恰填補了這個空缺。
針對大資料激增企業端的儲存壓力,英特爾推出了兩大資料中心產品:英特爾®傲騰™ 持久記憶體和英特爾®傲騰™固態盤。雖然英特爾®傲騰™持久記憶體 和英特爾®傲騰™固態盤都使用了相同的英特爾®傲騰™ 記憶體介質,但它們是完全不同的產品。英特爾®傲騰™ 持久記憶體容量大,效能接近於傳統的DRAM記憶體,但價格更親民。位於 DIMM 封裝中,在 DRAM 匯流排上執行,可以作為易失性記憶體或持久記憶體使用。而英特爾®傲騰™固態盤嚴格用於標準 NAND 封裝模型(AIC、M.2、U.2、EDSFF 等)中的快速儲存,並採用 NVMe* 協議駐留於 PCIe 匯流排上,作為儲存裝置始終保持資料持久,可以讓更多儲存中的資料更加靠近CPU。
想要理解英特爾®傲騰™ 持久記憶體的優越性,不妨說說傳統的記憶體和儲存架構。在傳統記憶體和儲存架構中,是讓 DRAM 記憶體直接訪問儲存裝置。這些儲存裝置可以是以往的塊儲存裝置,也可能是 NAND 固態盤。然而,記憶體和儲存裝置之間,在資料讀取速度和容量上難以匹配。DRAM 的資料讀取速度快,缺點是太貴且容量密度有限,因此伺服器總記憶體容量受限,且DRAM記憶體上的資料無法持久儲存;儲存裝置成本低、容量大,資料可持久儲存,缺點是資料的讀取速度慢。基於此,透過在 DRAM 記憶體和塊儲存裝置之間加入大容量 SCM 層——英特爾®傲騰™持久記憶體,極大地提升了記憶體儲存,保證最常用的資料以最高效能進行訪問,以高價效比提供了出色效能。
說說離我們生活較近的案例,在我們日常生活中,很容易發現自己的使用習慣、消費習慣、生活喜好很容易被大資料抓取,用於使用者畫像、商品推薦等業務,這些業務的背後都可能有Redis儲存的支援。作為記憶體資料庫,Redis 依賴高記憶體容量,這樣才能愜意地享受比固態盤更高的資料吞吐頻寬,以及更低的資料處理延時。
英特爾®傲騰™持久記憶體可在每個CPU的記憶體匯流排上提供高達 3TB 的記憶體容量,同時效能接近 DRAM。與第二代英特爾®至強®可擴充套件處理器搭配使用,提供比前幾代處理器更出色的單位核心效能和記憶體容量,這些因素均有利於 Redis 的部署,並且體現在具體資料中。
來看資料測試,兩套配置幾乎完全相同的伺服器系統,區別在於一臺使用英特爾®傲騰™持久記憶體,另一臺使用傳統記憶體,測試下來,兩系統提供的效能和虛擬機器密度類似,延遲均小於 1 毫秒。但採用英特爾®傲騰™持久記憶體的系統,每個虛機可以降低 20% 成本,同時還能滿足所有虛擬機器 SLA 要求。這是針對單機同記憶體容量的狀況的成本分析。
在 Redis 伺服器叢集中使用英特爾®傲騰™持久記憶體,成本可以降低高達 40%,而且由於單臺伺服器搭載記憶體更多,因此伺服器節點更少,無論是基礎設施的運維,還是資料的管理,都更加方便。
在一次測試中,阿里的Mars分散式記憶體計算框架利用英特爾®傲騰™持久記憶體,取得了很不錯的效能加成。如下圖所示,當需要處理的資料集超過了主存承載能力之後,溢位後的資料被放置在傲騰™儲存器而不是之前的NVMe硬碟中,隨著資料量溢位主存,傲騰™方案的效能會有顯著提升。
Mars是一個基於張量的統一分散式計算框架,突破了現有大資料計算引擎以關係代數為主的計算模型,將分散式技術引入科學計算和數值計算領域,極大地擴充套件了科學計算的計算規模和效率。目前Mars已經實現了70%的Numpy常見介面,使用者只需要透過import Mars就可以將已經編寫好的基於Numpy的程式碼移植到Mars中。
Mars會將張量自動在各個維度上切分成小的chunk來分散式處理從而提升並行性,以便於將小顆粒任務派發到GPU,或者網路遠端的其它叢集節點上平行計算。
舉例來講,對於張量矩陣乘法,Mars會生成如下圖所示的chunk級別執行圖。在執行過程中,會有大量的中間過程,這些過程生成大量的資料會佔用寶貴的主存資源。
每個chunk執行完畢之後,結果資料會被放置在shared memory中,當share memory中資料過多時,Mars會啟動spill溢位控制機制,將溢位的資料轉移到下層更大容量的儲存器中。
經過評估,阿里發現使用英特爾®傲騰™持久記憶體來作為主存的下一層儲存器,無論是在效能上還是TCO上,相比直接用NVMe盤作為下層,都非常符合Mars系統的預期。
英特爾®傲騰™持久記憶體提供128GB、256GB和512GB容量,遠高於目前最大容量僅限於每DIMM 128GB的可用SDRAM DIMM,而且與傳統DRAM DIMM相比,英特爾®傲騰™持久記憶體的每GB成本更低。英特爾®傲騰™持久記憶體透過記憶體匯流排直接連線到處理器,在基於App Direct(簡稱AD)模式下,應用程式可以完全繞過作業系統,不需要裝置驅動程式、系統呼叫、中斷和上下文切換,就可以從使用者空間直接訪問英特爾®傲騰™持久記憶體上的資料。下圖所示為採用NVMe快閃記憶體盤、NVMe傲騰™盤和英特爾®傲騰™持久記憶體的訪問延遲對比。
總體而言,使用英特爾®傲騰™持久記憶體,解決了Mars科學計算中因資料溢位傳到硬碟,導致I/O開銷增大,計算效能降低的問題。透過測試,驗證了在TCO成本相當的情況下,使用英特爾®傲騰™持久記憶體能夠有效提升Mars科學計算效能。
傲騰™固態盤加速Ceph分散式儲存系統
Ceph是最常見的塊和物件儲存後端解決方案。作為一款開源的分散式儲存軟體解決方案,它在分散式、可靠性、易擴充套件、併發效能的優勢越來越被行業作為專業儲存高效能解決方案。隨著雲服務以及產業網際網路升級對儲存效能要求越來越高,英特爾®傲騰™固態盤可以在IOPS和延遲方面助力客戶產業升級,並且其高壽命的優勢幫助企業降低維護成本。
在 Ceph分散式儲存方案中,使用英特爾®傲騰™固態盤作為快取盤為RocksDB、 WAL、OSD快取提速,低延遲加速負載間的傳輸響應,並配合英特爾®CAS快取加速軟體進一步增強系統效能和可靠度。
在以成本和效能為導向的前提下,如何以較低成本實現最大效能的發揮?針對Ceph架構中的熱資料和溫資料進行最佳化,英特爾®傲騰™固態盤+英特爾®QLC 3DNAND 方案(O+Q方案),透過傲騰™解決小的隨機I/O,QLC來解決容量問題,實現效能瓶頸的突破。
綜上所述,傲騰™對於企業級應用具有非常明顯的加速效果,作為下一代固態介質的排頭兵,Intel傲騰™近幾年逐步擴大生態,在企業級應用加速場景先顯現出了優良的效果。