首頁>技術>

這個週末看到一份測試報告,下面我將圍繞其中有參考價值的部分寫一些東西,希望對大家有所幫助。

記得我在今年3月寫過一篇《Intel Optane DC持久化記憶體效能測試、資料庫應用優化》,其中提到了Redis、Memcached、RocksDB和MongoDB這些開源資料庫。

更多推薦

《OptaneDIMM寫速度比SSD慢?記憶體介面可能並非完美》

《效能修正:Intel Optane DC持久化記憶體更多測試》

SCM應用:從開源資料庫到商業資料庫

談到Optane DC Persistent Memory(傲騰資料中心持久記憶體,代號AEP)的推廣,Redis應用方案算是目前業內相對成熟一些的,其中又以網際網路公司為主。

如上圖,Intel已經把當前3種使用模式的利弊總結出來:

- 記憶體模式(系統記憶體容量=Optane DIMM,DRAM作為Cache),最大好處是簡單易用;

- App Direct模式,需要Linux核心>4.15;

- NUMA Node模式,需要Linux核心>5.1。

使用開源資料庫本身就意味著折騰,Optane DIMM又是個新事物,應該說不是每家公司都能輕鬆駕馭。在《一份難得的資料庫市場分析報告》中我曾介紹過,根據DB-Engines.com的調查分析,從整體上看開源資料庫的流行度已經快要追上商業資料庫,而商業產品在關係型資料庫的佔比仍然高達60.5%。那麼商業資料庫對SCM大容量持久記憶體的支援,又發展到什麼程度了呢?

我們先來簡單看下Oracle的情況:

上面資料引用自《Oracle ExadataDatabase Machine X8M-8Data Sheet》,最新的這款資料庫一體機已經配置了Intel Optane DC Persistent Memory modules。我們看到單個Cell節點(Storage Server)的最大SQL PMEM讀IOPS達到了150萬。相比之下,只有NVMe SSD的同一代產品X8-2的最大SQL讀IOPS只有597,500。

Exadata X8M-8半個機架規模的SQL PMEM讀IOPS效能為450萬、全機架600萬,我懷疑當前網路或者資料庫節點還存在瓶頸。當然我不是Oracle專家,這部分班門弄斧的介紹先告一段落,僅供大家參考:)

擴充套件閱讀

《Optane P4800X評測(2):Oracle 170萬TPM意味著什麼?》

《MySQL的啟示:Intel Optane P4800X評測(4)》

《當Windows超融合遇上Oracle RAC:S2D測試之四》

上圖我在《資料庫TPC提升42%:NVDIMM-N為何普及慢?》一文中曾經列出,當時的SQL Server 2016 SP1對帶電池備份的NVDIMM記憶體(8/16GB)的支援,還只是作為Log Buffer(日誌緩衝)。現在Optane DCPMM的單條容量達到了128/256/512GB,SQL Server 2019的支援應該更進一步了吧?

上週我在展會上拍攝的AEP

SQL Server 2019 on Linux:將資料庫檔案放在PMEM上

上圖引用自Principled Technologies的測試報告《Watch your transactionaldatabase performance climb with Intel Optane DC persistent memory》,本文結尾處有連結地址。這個描述的實際上是VMware vSphere ESXi 6.7在App Direct Mode利用Optane DIMM的兩種模式,顯然通過vSCSI模擬成vPMEMDisk的效能會差些。

擴充套件閱讀:《SNIA持久化記憶體峰會:虛擬機器、資料庫、SDS進展曝光》

本次測試使用的是上方那種vPMEM模式,因為微軟SQL Server 2019 on Linux preview(預覽版)具備PMEM感知,引入了SQLenlightenment,允許把資料庫檔案放在NVDIMM裝置上。

注意了,這裡並不是Windows下的SQL Server,因此Dell EMC PowerEdge R740xd伺服器上執行的資料庫虛擬機器作業系統為Red Hat Enterprise Linux 8.0。

注:類似TPC-C的工作負載模擬零件供應商使用的資料庫應用程式。資料模型和應用程式模仿一個擁有倉庫、零件、訂單、客戶和銷售區的公司,基準報告每分鐘交易的結果。這不是經過官方稽核的TPC-C測試,因此無法與已釋出的TPC-C結果進行比較。測試的配置僅用於效能評估;由於只是單一伺服器節點,這裡將NVMe驅動器作為單個裝置進行了測試,而沒有真實世界(生產環境)需要的冗餘。

以上就是TPM成績的對比,12個SATA SSD通過RAID卡做陣列,每分鐘交易數只有20萬;2個NVMe SSD的TPM達到105萬;4個NVMe SSD達到135萬;而12條Optane DC持久記憶體跑到了230萬TPM。

需要說明的是,資料庫效能測試與具體的交易模型複雜程度關係密切,而且有些情況下CPU會成為瓶頸,因此不是所有情況下結果數值都會隨儲存效能線性增長。AEP在這裡有可能不是贏在數量上,而是因為低延時。

擴充套件閱讀:《伺服器SSD RAID效能速查手冊》

根據TPM不難估算出TPS每秒交易數,下表中列出了更詳細的,同時還有使用的SSD型號。

擴充套件閱讀:《Dell PowerEdge R740xd解析:伺服器只看引數那就錯了》

當SQL Server資料庫放在Optane DIMM上時,TPS超過38,000。本次使用的SATA和NVMe SSD分別為Intel D3-S4510和P4610,後者做為P4600的升級型號效能還是不錯的。(擴充套件閱讀:《Intel釋出P4500、P4600 NVMe SSD:規格釋疑》)

上圖只截了一部分測試配置:這臺R740xd伺服器安裝了2顆28核的Xeon Platinum 8280M CPU。如想了解更多資訊可檢視報告全文。

測試平臺:DAX掛載的XFS檔案系統

上圖是測試環境搭建過程中的一個要點:AEP被配置為fsdax模式,然後在上面建立XFS檔案系統,並使用了dax引數進行了掛載。DAX即效率較高的MMAP(Memory Mapped)訪問模式。具體到NVM.PM.FILE 的實現可以參考下圖及連結:

上圖來自《PMDK和 SNIA NVM程式設計模型》一文,順便再給大家推薦下面幾篇,都是Zhang Wenliang兄的大作:

《SAP HANA 和非易失性儲存(Optane DIMM)》

《PMDK持久記憶體開發指南(圖書)預覽下載》

《PMDK(Persistent Memory Development Kit)及其應用場景》

簡單做個總結:SQL Server 2019資料庫已經支援了Optane DIMM的App Direct模式,並且效能還不錯。那麼Memory Mode快取模式又適合那些應用呢?下一篇我接著寫,敬請關注!

參考資料

https://principledtechnologies.com/Dell/PowerEdge-R740xd-Intel-Optane-1019.pdf

https://principledtechnologies.com/Dell/PowerEdge-R740xd-Intel-Optane-science-1019.pdf

注:本文只代表作者個人觀點,與任何組織機構無關,如有錯誤和不足之處歡迎在留言中批評指正。進一步交流技術,可以加我的QQ/微信:490834312。如果您想在這個公眾號上分享自己的技術乾貨,也歡迎聯絡我:)

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 2019-12-07 GitHub 趨勢,按語言分類