RocksDB 是以儲存裝置為重心的關鍵值資料庫,是 Meta 許多作業的支柱。以下是摘錄自 RocksDB.org 的說明:
「RocksDB 建立在 LevelDB 上,可擴充,以在具有許多 CPU 核心的伺服器上運行,有效使用快速儲存裝置,支援受 IO 限制、記憶體內部和一次性寫入工作負載,並具彈性,為創新留有富餘量。」
Meta 喜歡以 DB bench 作為 RocksDB 的工作負載生成工具,因為它解決了鍵空間區域的問題,並模擬了現實世界 key-value 儲存的工作負載。此基準可合成生成更精確的 key-value 查詢,代表向 key-value 儲存對底層儲存系統的讀取和寫入。
我們使用以下資料中心級 NVMe SSD 測試了儲存 1TB 資料庫的單一裝置的儲存效能:
美光 7450 SSD:我們的主流效能硬碟採用 176 層 TLC NAND,專為支援雲端合作夥伴而設計,具備卓越的 QoS 和 PCIe Gen4 效能。
Samsung PM9A3:讀取密集型、TLC NAND、PCIe Gen4、NVMe SSD。
Solidigm D5-P5430:Solidigm 在與 Samsung 9A3 和美光 7450 相同的領域行銷的主流、QLC 架構、PCIe Gen4、NVMe SSD。
測試組態
在本部落格中,我們討論了 3 種工作負載:
- 寫入時讀取 – 此工作負載使用多個執行緒進行讀取,而僅使用一個執行緒進行寫入。
- 隨機讀取隨機寫入 – 這是多個執行緒執行隨機讀取和隨機寫入作業的混合工作負載。
- 隨機讀取 – 此工作負載乃從現有資料庫隨機讀取。
伺服器 |
Supermicro AS-1115CS-TNR |
CPU |
AMD EPYC 9654 96-Core 處理器 |
記憶體 |
768GB 美光 DDR5(12x 64GB DDR5, 1DPC),核心限於 256GB |
檔案系統 |
xfs |
Linux 作業系統 |
Ubuntu 20.04 |
核心版本 |
5.15.0-67-一般 |
RocksDB 版本 |
8.1.1 |
DB bench 版本 |
8.1.1 |
效能結果
圖 1 至圖 3 說明 3 個工作負載的 y 軸的第 99 個百分位讀取延遲(以毫秒為單位),以及 x 軸上的資料庫每秒運算次數。每個資料點代表按某個 DB bench 執行緒計數 (8、16、32、64、96) 運行 20 分鐘的平均值。
寫入時讀取使用 1 個寫入執行緒,並在增加 DB bench 執行緒時放大讀取。美光 7450 和 Samsung 9A3 在每個執行緒計數上都表現出相似的行為,其中 7450 在具有 96 個執行緒時擴展性更好。
Solidigm D5-P5430 的 99% 讀取延遲高達兩倍以上,最高 ops/s 僅是其他 SSD 的 65%。
在隨機讀取隨機寫入工作負載中,Samsung 9A3 在執行緒計數較低時略有優勢,而 7450 在執行緒計數較高時有優勢。這些硬碟的效能相似。
Solidigm D5-P5430 的讀取延遲高達 1.5 倍,效能要低 30%(ops/s)。
最後,隨機讀取基準再次顯示 7450 與 9A3 的效能和延遲不相上下,有 96 個執行緒時 7450 的擴展性較高,而執行緒較少時 PM9A3 的效能略佳。
Solidigm D5-P5430 的讀取延遲高達 1.8 倍,效能要低 30%。
圖 4 中的頻寬量測乃按在 3 種工作負載下有 96 個執行緒計數的情況進行。在所有三種工作負載下,美光 7450 顯示的頻寬都比 Samsung 9A3 略高,而 Solidigm 5430 的頻寬相對較低。
總之,我們的分析顯示美光 7450 與 Samsung 9A3 展現相當的效能,美光 7450 在執行緒計數較高時略有優勢,而 Samsung 9A3 在執行緒計數較低時略有優勢。Solidigm D5-P5430 在所有工作負載和執行緒計數中效能都是最低的,表明它是本比較研究中效能最低的硬碟。