虹科分享 | 資料庫效能翻3倍:虹科Redis企業版的RoF是如何做到的?

虹科雲科技發表於2023-02-22

簡介

Redis on Flash (RoF)將80%的資料集儲存在SSD而不是昂貴的DRAM中,同時還能夠保持亞毫秒級延遲和Redis的高吞吐量。

Redis on flash簡介:Redis on Flash 涉及到的是Redis的分層儲存技術,即將資料存放在不同地方。Redis自2016年以來支援Redis on Flash。從2019年開始, Redis企業版(Redis Enterprise)宣佈支援英特爾Optane DC永續性記憶體,它在DRAM和SSD之間提供了一個新的永續性記憶體層。

Redis企業版(Redis Enterprise)簡介:Redis企業版軟體(Redis Enterprise)是企業級的資料庫軟體,也是一款實時資料平臺,為全球超過8500家知名企業提供實時資料服務。具有線性可擴充套件性、高可用性、永續性、備份和恢復、地理分佈、分層記憶體訪問、多租戶、安全性等8大核心功能、擁有RediSearch、RedisJSON等7大【Redis企業版特有模組】,可以任何規模在雲、本地和混合部署中執行現代應用程式,提供無伺服器、多模型的資料庫解決方案。Redis企業版的核心優勢是採用Redis on flash分層儲存技術即【記憶體+快閃記憶體+磁碟】的儲存方式,其Active-Active地理分散式架構允許跨地理位置同時進行資料讀寫操作、擁有亞毫秒延遲和極高吞吐量。

虹科Redis企業版的Redis on Flash (RoF)一直是非常受歡迎的企業功能之一,RoF將高達80%的資料集儲存在SSD而不是昂貴的DRAM中,同時還能夠保持亞毫秒級延遲和Redis的高吞吐量。在典型部署中,Redis on Flash可提供高達70%的TCO折扣。

目前,兩項實踐專案證明,Redis on Flash可以提供高達3.7倍的效能,在Redis上執行大型資料集可以保持超高價效比的TCO(總擁有成本):

AWS宣佈全面推出新一代例項Amazon EC2 I4i,該例項由第三代Intel Xeon可擴充套件處理器(代號 Ice Lake)和基於AWS Nitro SSD NVMe的儲存提供支援。Amazon EC2 I4i承諾將會為Redis客戶提供顯著提升的功能。

Redis宣佈將Redis on Flash資料引擎開放給任何與RocksDB相容的資料庫,並將Speedb宣佈的新技術作為首選。

因此,隨著公司對低延遲微服務架構的需求增加,AWS的Amazon EC2 I4i例項+ Redis企業版的Redis on Flash資料引擎將會給使用者帶來超凡的效能體驗。

Amazon EC2 I4i和Speedb為Redis on Flash帶來了什麼?

首先,我們先深入瞭解一下Redis on Flash的新功能。AWS 正在提供新的 Amazon EC2 I4i(“i”代表 Intel)例項,I4i例項使用最新技術、Intel Ice Lake處理器和AWS Nitro SSD,與上一代I3例項相比,I4i例項提高了讀寫能力(IOPS)並減少了延遲。

除了硬體之外,Redis企業版一直在尋找能夠讓RoF提供更高效能的方法。Redis Enterprise發現,如果將資料引擎開放給客戶,會幫助企業看到創新機會並提高企業創新速度。目前,Redis企業版的RoF對任何與RocksDB相容的資料引擎開放。Speedb提供RocksDB儲存引擎的嵌入式解決方案,與Redis團隊建立戰略合作,重新設計了RocksDB的內部資料結構,為大容量實時資料集提供可節省CPU、高效能大規模且降低成本的儲存方式。

透過亞毫秒級測試發現,無論我們使用的是I4i還是I3的AWS EC2例項,Speedb都可以將RoF的效能提高50%。帶有Speedb的 RoF目前提供預覽版本,具體可以聯絡虹科雲科技團隊獲得更多資訊及試用服務。(掃碼下方二維碼即可)

Redis on Flash的基準測試

1.Redis on Flash的應用場景

基於AWS的I4i例項和Speedb資料引擎,Redis企業版(Redis Enterprise)非常榮幸能夠第一個全面測試 Amazon EC2 I4i 例項的 AWS 合作伙伴,並使用Redis on Flash的新Speedb資料引擎對其進行測試

這裡想要強調一下,Redis on Flash能夠智慧的對大型資料集進行分層,其目的是利用比DRAM每GiB價格更低的NVMe SSD,從而使得Redis企業版(Redis Enterprise)能夠以DRAM例項30%的TCO(總擁有成本)就可以獲得Redis級效能,如果加上AWS的I4i例項將會有更高的效能。

在獲得基準測試結果之前,我們可以明確一下客戶在何種場景下可以選擇RoF:

資料遷移DRAM 成本高昂。如果將小於總資料集進行遷移需要額外的、成本高昂的 DRAM ,那麼使用者可以考慮Redis企業版的Redis on Flash。

需要批次進行資料處理。如果企業需要為關鍵業務應用程式處理大量資料,且需要在處理資料的同時保持應用程式的低延遲和高吞吐量,那麼使用者可以考慮Redis企業版的Redis on Flash。

2. 進行基準測試

1)Redis on Flash效能比較

我們在四個 AWS 例項上比較了 Redis on Flash 的效能:

2)資料引擎的效能比較

我們比較了兩個資料引擎的效能:

  • RocksDB

  • Speedb

測試引數:

  • 我們使用了 1KiB 的值大小,涵蓋了大多數標準 Redis 用例

  • 我們測試了 50% 和 85% 的 RAM 命中率(即直接從 RAM 處理的許多請求)

  • 我們測試了 20:80 RAM:Flash 比率

  • 我們對各種讀寫比率進行了基準測試:1: 1、4:1 和 1:4

  • 所有測試均使用兩臺伺服器完成

以下是我們根據例項型別執行的資料庫大小:

  • I4i.4xlarge: 500GB + replication. 5 Primary shards + 5 Replica shards

  • i3.8xlarge: 1TB + replication. 10 Primary shards + 10 Replica shards

  • I4i.8xlarge: 1TB + replication. 10 Primary shards + 10 Replica shards

  • I4i.16xlarge: 2TB + replication. 20 Primary shards + 20 Replica shards 

在每種配置中,我們測試了在保持亞毫秒客戶端延遲(不包括網路)的同時可以實現多少操作/秒。

3)測試結果

下圖顯示了 i3 與 I4i 以及 RocksDB 與 Speedb:

我們可以看到以下改進:

下圖顯示了 Speedb 上 I4i 的縮放比例和不同的讀寫比率:

我們可以看到以下結果和改進:

>>智慧縮放,我們可以看到I4i上的RoF與Speedb幾乎是線性縮放的。

4xlarge → 8xlarge 的因子為 ~1.55x-1.8x

8xlarge → 16xlarge 的縮放因子為 ~1.85x-1.95x

>>第二個值得注意的結果是I4i上的 RoF與Speedb對應用程式訪問模式(讀:寫比率)非常不可知,這意味著效能保持穩定且可預測。當使用多個不同的應用程式或訪問模式隨時間變化時,這對使用者而言可能有極大的用處。

下圖顯示了Redis on Flash整體3.7 倍的效能提升(吞吐量操作/秒):

想了解更多Redis企業版資料庫解決方案,歡迎關注虹科雲科技或者前往虹科雲科技官網。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026953/viewspace-2936523/,如需轉載,請註明出處,否則將追究法律責任。

相關文章