英特爾® 傲騰? 持久內(nèi)存是Intel在2019年發(fā)布的一款革命性的產(chǎn)品,英特爾® 傲騰? 持久內(nèi)存是一種全新的內(nèi)存類型,其架構(gòu)設(shè)計旨在從數(shù)據(jù)中心中汲取更多價值,重構(gòu)數(shù)據(jù)中心內(nèi)存/存儲層次結(jié)構(gòu)。不同于傳統(tǒng)的DRAM,英特爾® 傲騰? 持久內(nèi)存集大容量、經(jīng)濟性和持久性于一身,能夠支持數(shù)據(jù)中心多個應(yīng)用場景。浪潮基于英特爾® 傲騰? 持久內(nèi)存做了大量的應(yīng)用場景解決方案,覆蓋大數(shù)據(jù)分析、數(shù)據(jù)庫、云與虛擬化、分布式存儲等應(yīng)用場景。為了幫助用戶通過更加靈活的架構(gòu)來實現(xiàn)創(chuàng)新型的應(yīng)用,助力企業(yè)實現(xiàn)性能突破,浪潮發(fā)布了基于英特爾® 傲騰? 持久內(nèi)存技術(shù)的MyRocks應(yīng)用方案。
MyRocks是Facebook開發(fā)的一款基于Rocksdb的開源MySQL存儲引擎,相比InnoDB,MyRocks占用更少的存儲空間,能夠降低存儲成本,提高熱點緩存效率;具備更小的寫放大比,能夠更高效利用存儲IO帶寬;將隨機寫變?yōu)轫樞驅(qū)懀岣吡藢懭胄阅?,延長了SSD使用壽命。因此,MyRocks已大量應(yīng)用于多個行業(yè)的大數(shù)據(jù)量、寫密集型的業(yè)務(wù)場景中,但是在某些關(guān)鍵業(yè)務(wù)中,傳統(tǒng)的企業(yè)級SSD已不能滿足業(yè)務(wù)對延遲和吞吐量的極高要求,因此浪潮引入了英特爾® 傲騰? 持久內(nèi)存來代替企業(yè)級SSD,大幅提升了MyRocks的數(shù)據(jù)吞吐和延遲性能,滿足關(guān)鍵業(yè)務(wù)對性能的需求。
在大數(shù)據(jù)時代,業(yè)務(wù)存儲和訪問的數(shù)據(jù)量是超大規(guī)模的,而隨之而來的還有業(yè)務(wù)對IOPS、延遲等存儲性能更苛刻的需求,此時傳統(tǒng)的關(guān)系數(shù)據(jù)庫已經(jīng)很難存儲和管理這些數(shù)據(jù),Rocksdb也就應(yīng)運而生。Rocksdb 是一種嵌入式、持久化存儲、KV型且非常適用于fast storage的存儲引擎,并且由于其出色的壓縮性能,在充分利用閃存性能的同時節(jié)省大量閃存空間。目前,F(xiàn)acebook開發(fā)工程師對Rocksdb進行了大量的開發(fā),使其符合MySQL的插件式存儲引擎框架的要求,移植到了MySQL上,并稱之為MyRocks,因此MyRocks可以在大量使用MySQL的行業(yè)中無縫切換,廣泛應(yīng)用在大數(shù)據(jù)量、寫密集型的業(yè)務(wù)場景中。
但在某些關(guān)鍵業(yè)務(wù)中,對于延遲和吞吐量需要極高的要求,在這種情況下,受限于存儲架構(gòu)和存儲材料限制,企業(yè)級SSD已無法滿足業(yè)務(wù)的需求, 因此,如何打破現(xiàn)有存儲架構(gòu)的限制,顯著提升MyRocks性能,也就顯得至關(guān)重要。
利用英特爾® 傲騰? 持久內(nèi)存技術(shù)優(yōu)化MyRocks
為了解決此問題, 浪潮發(fā)現(xiàn),英特爾® 傲騰? 持久內(nèi)存有著接近DRAM內(nèi)存的性能和非易失性的特點,可以作為MyRocks的存儲盤。因此,為滿足MyRocks的高性能需求,浪潮對基于英特爾® 傲騰? 持久內(nèi)存的MyRocks進行性能方面的驗證。
英特爾® 傲騰? 持久內(nèi)存是一種全新的內(nèi)存類型,不同于傳統(tǒng)的DRAM,其集大容量、經(jīng)濟性和持久性于一身,讀寫帶寬比NVME設(shè)備高數(shù)倍,并大幅降低延時問題。由于寫入方式不同,英特爾® 傲騰? 持久內(nèi)存也比Flash NAND更耐用,并且單模塊容量可高達512GB,實現(xiàn)了遠超傳統(tǒng) DRAM 的系統(tǒng)內(nèi)存容量。其從根本上改變了數(shù)據(jù)中心的彈性,將內(nèi)存數(shù)據(jù)庫重啟時間從以前的幾天、幾小時縮短到現(xiàn)在的幾分鐘甚至幾秒鐘,并提供經(jīng)濟實惠的內(nèi)存空間,將系統(tǒng)內(nèi)存容量擴展到前所未有的水平。
圖1
在實際的方案部署中,浪潮使用了英特爾® 至強® 第二代可擴展處理器與英特爾® 傲騰? 持久內(nèi)存組成強強組合,大幅提升了MyRocks性能,滿足了高負載業(yè)務(wù)的需求。
方案驗證:英特爾® 傲騰? 內(nèi)存性能優(yōu)勢顯著
本次方案驗證,浪潮對使用Rocksdb引擎的Percona Server for MySQL 5.7.28進行了性能測試。
在測試中,浪潮將英特爾® 傲騰? 持久內(nèi)存設(shè)置為Storage over App Direct運行模式,并依據(jù)以下硬件配置來搭建了測試方案(如表1)。
表1
測試使用表2參數(shù)分別對NVME和PMem進行隨機讀、隨機寫、混合讀寫壓力測試,測試結(jié)果包括TPS吞吐量(圖2)和P99延遲(圖3)。
圖2
圖3
從測試結(jié)果可以看出,在P99延遲方面,隨機讀和混合讀寫場景下PMem比P4510提升差不多2倍,隨機寫提升3倍以上;在TPS吞吐量方面,隨機讀和混合讀寫場景下PMem比P4510提升2倍以上,隨機寫提升21%。
效果:大幅改善 Rocksdb 性能
對于高性能需求下的業(yè)務(wù)場景,特別是對延遲敏感的業(yè)務(wù),在采用英特爾® 傲騰? 持久內(nèi)存后,P99延遲將有2到3倍的性能提升,讀吞吐量將有2倍以上提升,寫吞量有20%以上的提升。當(dāng)前企業(yè)數(shù)據(jù)爆發(fā)式增長、在大數(shù)據(jù)方面的投入逐漸增大的背景下,Myrocks和英特爾® 傲騰? 持久內(nèi)存的組合方案即節(jié)約了關(guān)鍵業(yè)務(wù)所需存儲空間,又帶來了傳統(tǒng)Myrocks存儲方案無法獲得的性能提升,為高性能業(yè)務(wù)提供了更好的選擇。