英特爾® 傲騰? 持久內存是Intel在2019年發(fā)布的一款革命性的產品,英特爾® 傲騰? 持久內存是一種全新的內存類型,其架構設計旨在從數據中心中汲取更多價值,重構數據中心內存/存儲層次結構。不同于傳統(tǒng)的DRAM,英特爾® 傲騰? 持久內存集大容量、經濟性和持久性于一身,能夠支持數據中心多個應用場景。浪潮基于英特爾® 傲騰? 持久內存做了大量的應用場景解決方案,覆蓋大數據分析、數據庫、云與虛擬化、分布式存儲等應用場景。為了幫助用戶通過更加靈活的架構來實現創(chuàng)新型的應用,助力企業(yè)實現性能突破,浪潮發(fā)布了基于英特爾® 傲騰? 持久內存技術的MemKeyDB應用方案。
Redis是一個高性能的鍵值分布式數據庫,具有微秒級的數據存取速度,廣泛應用于游戲、視頻、新聞、導航等領域。在Kernel 5.1版本之后擁有支持Redis應用之一的KMEM DAX機制,這種機制把持久內存作為易失性內存使用,將持久內存接入內存管理系統(tǒng),數據可以被分類存儲進DRAM或者持久內存,避免DRAM耗盡,保持最佳性能運轉狀態(tài)。MemKeyDB基于Antirez維護的Redis核心代碼,依賴互聯網客戶積極貢獻代碼,滿足中國互聯網客戶快速迭代、解決業(yè)務中痛點的需求而產生的一個Redis分支版本,它實現了通過動態(tài)閾值算法來控制數據的分布。
MemKeyDB的強勁性能很大程度上是由于其將所有數據都存儲在內存中,MemKeyDB的可用內存受限于服務器對于內存容量的支持,這導致MemKeyDB出現部分數據不能存儲在內存中,溢出到磁盤,MemKeyDB性能優(yōu)勢將無法充分發(fā)揮的情況。
傳統(tǒng)的解決方案是利用MemKeyDB的集群功能來解決內存不足的問題,但這樣意味著企業(yè)要采購大量的內存,而且為了擴展內存,企業(yè)將不得不部署更多的服務器,這增加了企業(yè)的成本壓力。
英特爾® 傲騰? 持久內存創(chuàng)新性解決方案提供了行業(yè)領先的高吞吐率、低延時、高服務質量和超高的耐用性,新增內存擴展專為打破服務器內存容量限制而優(yōu)化。英特爾® 傲騰? 持久內存提供接近內存的延遲,最大擴展系統(tǒng)內存至6T(不包括系統(tǒng)自身內存)。英特爾® 傲騰? 持久內存可對應用進行加速,支持快速緩存和快速存儲,提高每臺服務器的可擴展性,并降低敏感性工作負載的交易成本。此外,英特爾® 傲騰? 持久內存支持數據中心部署更大、更經濟的數據集,在大型內存池中獲得新的洞察。
本方案使用傲騰持久內存來擴展內存容量,以解決服務器內存不足的問題。
圖1:PMem內存擴展方案與傳統(tǒng)方案對比
方案驗證:性能不變,成本降低
本次使用Benchmark測試了MemKeyDB在DRAM和PMEM平臺下的性能,本次測試了PMem兩種配置(2-2-1)和(1-1-1):
配置一:
配置二:
測試結果
圖2:DRAM vs PMEM(2-2-1)測試結果對比
圖3:DRAM vs PMEM(1-1-1)測試結果對比
測試結果說明,MemKeyDB開啟同樣實例數的場景下,PMEM在延遲和吞吐量方面與DRAM基本相當,可以達到DRAM的98%以上。
效果:更低的成本獲得更多的內存
在MemKeyDB應用下PMEM與DDR性能相當,英特爾傲騰持久內存擴展方案讓MemKeyDBs使用更多的內存,并顯著降低內存成本。
基于英特爾® 傲騰? 持久內存的MemKeyDB測試場景說明,英特爾® 傲騰? 持久內存表現了良好的穩(wěn)定性和性能,提供了高性價比的內存擴展方案。