Apache Cassandra™ 是 NoSQL 資料庫,可儲存全球大量資料。1我的團隊最近使用 Micron 6500 ION 測試了 Cassandra,將其效能與競爭對手的 QLC 硬碟進行比較,您可以在我們最近發佈的技術簡介中找到這些結果。
在測試 Cassandra 時,我們使用基於 eBPF2 的 Linux NVMe 追蹤工具,在工作負載碰到磁碟時挖掘其輸入/輸出 (IO) 模式。我們發現的結果非常有啟發性。
平均效能
使用基準工具測試應用程式時,結果通常以測試長度的平均關鍵績效指標 (KPI) 的形式分享。雖然對於提供系統擴充和效能的廣泛檢視很有價值,但它並不真正地說明整體情況。以下是我們的結果範例:這在一系列測試上,顯示出令人印象深刻的效能提升和減少服務品質 (QoS) 延遲3,擴充 YCSB 執行緒計數。資料點代表以 8、16、32、64 和 128 YCSB 執行緒進行四次 20 分鐘測試的平均效能。
但是,當我們使用 iostat 等標準 Linux 工具查看平均磁碟吞吐量時,我們看到效能似乎非常低。
在 32 個 YCSB 執行緒中,使用 Micron 6500 ION 進行的測試平均讀取速度為 357MB/s,寫入速度為 136MB/s。NVMe SSD 絕對比這更快? 發生了什麼事?
發生了什麼事? 32 個執行緒的 YCSB 50% 讀取/ 50% 更新
從工作負載量追蹤中,我們擷取了儲存裝置活動的摘要,提供 20 分鐘執行期間儲存密集型工作負載的圖片:
Cassandra,YCSB 50% 讀取/ 50% 更新 |
6500 ION |
100% 4KB |
|
GB 讀取總量 |
680GB |
寫入區塊大小 |
74% 508KB-512KB |
寫入的 GB 總數 |
255GB |
丟棄區塊大小 |
80% > 2GB |
丟棄的 GB 總數 |
69GB |
按 IO 計數的讀取百分比 |
99.6% |
按磁碟區的讀取百分比 |
68% |
按 IO 計數的寫入百分比 |
0.4 |
按磁碟區的寫入百分比 |
25% |
按 IO 計數的丟棄百分比 |
0% |
按磁碟區的丟棄百分比 |
7% |
區塊大小
工作負載的 IO 大小(區塊大小)會對效能產生重大影響。在這裡,我們看到 100% 的 4KB 讀取,以及大部分的 508KB 和 512KB 寫入,其中有許多小型寫入。
吞吐量
查看時間序列資料,我們看到讀取的最大值達到 518MB /s,平均值為 357MB /s,這表示讀取是穩定的。平均吞吐量為每秒 91,000 次輸入/輸出作業 (IOP),NVMe 硬碟很容易吸收。
寫入非常有趣,因為我們看到高達 5.6GB/s 的飆升,接近 6500 ION 的最大循序效能。Cassandra 的寫入工作負載非常龐大。主要原因是可控沖洗指令將記憶體中的更新卸載到磁碟,並盡可能快速寫入。結果是連拍寫入之間的巨大差異為 2GB/s 至 5.6GB/s,平均吞吐量為 136MB/s。
延遲
在查看延遲時,我們看到讀取延遲峰值約為 40 毫秒,而寫入延遲峰值約為 90 毫秒。寫入結果很合理,因為許多大型 IO (512KB) 寫入會定期發生。讀取結果都是 4KB ,因此有些封鎖正在發生,導致讀取延遲飆升。
從 SSD 的角度來看,這些延遲可能令人擔憂,因此我們分析了韌體中的 OCP 延遲監控記錄,以確定這些延遲屬於系統層級。在可控沖洗指令期間,佇列正在快速填滿,系統正在堆積。不過,在此工作負載期間,SSD 不會回報延遲異常值 (>5ms)。
佇列深度
最後,系統看到的佇列深度具有有趣的節奏,從 20 躍升至 200,有些大幅飆升至 QD 800。
這種行為與我們從大量大區塊寫入中看到的延遲影響相一致。可控沖洗命令會將大量資料寫入磁碟,導致佇列深度增加。如此高的佇列深度可能會延遲部分 4KB 讀取 IO,導致系統級延遲飆升。一旦可控沖洗操作完成,Cassandra 發出丟棄命令以清除刪除的資料。
那麼,我們學到了什麼?
平均應用程式吞吐量、延遲和磁碟 IO 提供良好檢視,比較 SSD 的效能與另一個 SSD 的效能,或測量重大硬體或軟體變更的效能影響。
某些應用程式,如 Cassandra,在分析平均磁碟 IO 時,看起來對儲存效能不敏感,在 iostat 等工具中看到的平均吞吐量較低。這遺漏了 SSD 能夠以最快速的速度寫入高佇列深度的大區塊資料對於 Cassandra 的效能至關重要。為了真正瞭解磁碟層級的工作負載,我們必須超越平均值。
- 有關 Apache Cassandra 的其他資訊,請參閱 https://cassandra.apache.org/_/index.html
- 有關 eBPF 的其他資訊,請參閱 https://ebpf.io/what-is-ebpf/
- 服務品質 (QoS) 是描述延遲一致性的常見指標。請參閱 SNIA 字典:https://www.snia.org/education/online-dictionary/term/qos
© 2023 Micron Technology, Inc. 保留所有權利。所有提供之資訊皆以「現況」為基準,不提供任何形式的保固。產品僅保證符合美光的生產資料表規格。產品、計畫和規格若有變動,恕不另行通知。Micron Technology, Inc. 對於排版或影像的遺漏或錯誤概不負責。美光、美光標誌及其他所有美光商標皆為 Micron Technology, Inc. 資產。其他所有商標皆屬其各自擁有者所有。修訂版 A 01/2023 CCM004-676576390-11635