設計工具
公司

Ceph RBD 上的巨大 MySQL® 資料庫效能

Ryan Meredith | 2017 年 12 月

大家好,

在我持續探索 Ceph® 12.2.1 (Luminous) 效能特色的過程中,我在此新版本的 Ceph 上使用裝有 Docker 容器的 MySQL® 資料庫伺服器,來設定測試。

測試的目的是測量當使用 RBD 區塊裝置作為資料庫儲存裝置時,在載有大型資料庫的情況下,效能如何擴展。我亦使用 Docker 容器封裝我的 MySQL 組態,以便輕鬆部署,因為 Docker 散熱性好。

Ceph 硬體:經美光 IOP 優化的 Ceph 參考架構

我使用經美光 IOP 優化的 Ceph 參考架構中的硬體進行測試:

Ceph 硬體:經美光 IOP 優化的 Ceph 參考架構

我安裝了最新共享版 Ceph, Luminous 12.2.1,按照一個美光 9100MAX 2.4TB NVMe® SSD 配一個 BlueStore OSD 的方式加以設定,並啟用了 crc32c 校驗碼。

MySQL 伺服器組態

MySQL 伺服器(x10)

在 MySQL 伺服器端,我使用 Docker 來建立 MySQL 5.7.19 映像,並將其複製到 10 個 Supermicro 2028U 伺服器上,充當 MySQL 資料庫伺服器。

每個 MySQL 伺服器都會獲得一個 1.5TB RBD 映像,每個 RBD 映像儲存一個 1TB TPC-C 式 MySQL 資料庫。RBD 映像被安裝在 MySQL 伺服器上,並傳遞至 MySQL docker 執行個體,每個 MySQL 伺服器配一個容器執行個體。

所有 MySQL 資料庫檔案均儲存在 RBD 映像中,以便資料庫執行個體可攜且受到 Ceph 複寫保護。

MySQL 的大小專為每個伺服器執行單一大型資料庫而設,每個執行個體使用一個 224GB 緩衝集區。

美光 SSE TPC™-C 工具

我們的儲存解決方案工程團隊建立了一個 TPC-C 式的基準工具,該工具使用整個資料庫作為活動資料集來對儲存施加壓力。我們稱它為「美光 SSE TPC-C 工具」,安裝在每個 docker 執行個體中,並由外部指令碼同時在所有 MySQL 執行個體上啟動。

MySQL 在 Ceph RBD 上的效能

我從 1 台 MySQL 伺服器擴充到 10 台 MySQL 伺服器,每台伺服器都使用一個 Ceph RBD 映像作為 MySQL 儲存裝置。TPC-C 式測試會先運行 10 分鐘的緩升期(以達到穩定態),然後運行 30 分鐘的測試。使用 1 台 MySQL 伺服器、5 台 MySQL 伺服器和 10 台 MySQL 伺服器重複該流程。

Ceph RBD MySQL 效能
  每分鐘交換量(TPM) 平均 交換回應時間(毫秒) 99.9% 回應時間(毫秒)
1 個 MySQL 伺服器 124,840 24 534 
5 個 MySQL 伺服器 607,988 24 549 
10 個 MySQL 伺服器 1,043,093 28  634 

MySQL 效能從 1 台 MySQL 伺服器線性擴展到 10 台伺服器。在 10 台伺服器上,修改後的 TPC-C 基準每分鐘達到超 100 萬次交換,交換回應時間為 28 毫秒。

Ceph RBD MySQL 效能

Ceph 儲存節點上的 CPU 使用率通常是 Ceph 小區塊效能的限制因素。在此情況下,MySQL 伺服器的平均 CPU 使用率為 70%-80%,Ceph 儲存節點 CPU 使用率由 7%(1 個用戶端)提升至 64%(10 個用戶端)。

由於目前 Ceph 並未得到充分利用,因此仍存在更多額外負荷用於新增 MySQL 用戶端。可惜,我的 MySQL 伺服器數量不足以進一步向前推進。基於此擴展,可以合理預期再新增 1 至 5 台具有類似結果的 MySQL 用戶端。

您希望深入瞭解嗎?

我們正在編寫部落格內容,分享美光 SSE TPC-C 工具背後的方法,屆時將更詳細地介紹我們如何實現此處分享的 TPM 數字。透過這項成功的測試,Docker + MySQL 將成為我們用於 Ceph 和其他軟體定義儲存解決方案的標準測試。敬請期待。

對我們的測試或方法有其他問題? 請在下方留言,或傳送電子郵件至 ssd@micron.com

儲存解決方案架構處長

Ryan Meredith

Ryan Meredith 是美光儲存業務部門的資料中心工作負載工程處長,負責測試新技術,幫助美光在 AI、NVMe-oF/TCP 以及全快閃記憶體軟體定義儲存技術等領域建立思想領導力和知名度。