大家好,
在我持續探索 Ceph® 12.2.1 (Luminous) 效能特色的過程中,我在此新版本的 Ceph 上使用裝有 Docker 容器的 MySQL® 資料庫伺服器,來設定測試。
測試的目的是測量當使用 RBD 區塊裝置作為資料庫儲存裝置時,在載有大型資料庫的情況下,效能如何擴展。我亦使用 Docker 容器封裝我的 MySQL 組態,以便輕鬆部署,因為 Docker 散熱性好。
Ceph 硬體:經美光 IOP 優化的 Ceph 參考架構
我使用經美光 IOP 優化的 Ceph 參考架構中的硬體進行測試:
我安裝了最新共享版 Ceph, Luminous 12.2.1,按照一個美光 9100MAX 2.4TB NVMe® SSD 配一個 BlueStore OSD 的方式加以設定,並啟用了 crc32c 校驗碼。
MySQL 伺服器組態
在 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 伺服器重複該流程。
每分鐘交換量(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 儲存節點上的 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。