Cephfs & Ceph RBD 適用場景討論及數據庫性能壓測

前言

在此前的文章中,已經針對cephfs進行過I/O性能壓力測試:
cephfs調優 & 性能測試 & 監控 & 常用命令
測試發現cephfs的小文件讀寫性能一般,且寫入延遲偏高,性能不甚滿意,但是滿足於日常應用環境的讀寫是沒有問題的,但是在面對數據庫的應用場景,是否能滿足性能要求呢?本篇主要針對數據庫場景,來進行cephfs 和 ceph rbd這兩種ceph存儲接口來進行性能對比測試.
在上一篇文章中,完成了k8s 對接ceph rbd的測試:
k8s(十二)、分佈式存儲Ceph RBD使用
在對比之前,再貼一下k8s對於cephfs和cephrbd的接入模式的支持:
在這裏插入圖片描述

Ceph RBD調優

在測試之前,首先對ceph rbd進行針對性的配置優化
ceph.conf:

[client]
rbd cache size = 268435456  #默認32M
rbd cache max dirty = 134217728 #最大未落盤髒數據大小,默認16M,此值小於cache size
rbd cache max dirty age = 5  #最大未落盤髒數據存放時間,默認1,單位s
rbd cache max dirty object = 64  #最大未落盤髒數據對象數量,默認object大小爲4M,因此建議值爲rbd cache max dirty / 4

#osd段增加線程數,默認爲1,不要過大,防止線程鎖
[osd]
rbd op threads = 4

配置完成後逐個重啓ceph節點

測試工具

1.sysbench
項目地址:
akopytov/sysbench
sysbench是跨平臺的基準測試工具,使用預定義或自定義的lua腳本靈活地進行性能測試,支持多線程,支持多種數據庫;主要包括以下幾種方面的性能:
cpu性能
磁盤io性能
調度程序性能
內存分配及傳輸速度
POSIX線程性能
數據庫性能(OLTP基準測試)

使用參考:
https://www.cnblogs.com/kismetv/archive/2017/09/30/7615738.html

本文將進行數據庫 事務/非事務 只讀/混合讀寫基準性能測試。

2.TPCC
TPC-C是專門針對聯機交易處理系統(OLTP系統)的規範
Tpcc-mysql由percona根據tpcc規範實現以訂單爲中心的多表聯表操作性能測試,更貼切於業務場景.
工具內置業務場景模擬邏輯圖:
在這裏插入圖片描述
使用參考:
https://www.cnblogs.com/Aiapple/p/5705146.html

測試

爲方便部署,全部使用容器測試,容器運行起來後本質即是一組進程,cpu/內存/磁盤 性能損耗可以說比虛擬化還小,因此可以排除性能損耗的干擾

配置規格:
內存: 64G
CPU: E5-2683 v4 *2
網卡: 10GE
存儲介質分爲4種場景:
1.機械硬盤 raid5
2. 16 * ssd raid 5
3. cephfs(ssd)
4. ceph rbd(ssd)

測試方法可參考上方鏈接中的文章,這裏直接貼結果:
在這裏插入圖片描述

結果分析:

  1. ssd raid性能毫無疑問是最好的
  2. ceph rbd 數據庫qps/tps可達ssd raid的60%-70%,
  3. cephfs因爲寫入延遲不穩定的原因,壓測過程中極小比例的操作響應時間非常漫長,導致qps/tps值整體表現不佳
  4. hdd測試得到的qps/tps值中規中矩,操作最低響應時間較其他三者要高,但最高響應時間值也不會很高.然而機械硬盤介質決定了隨着它的負載增高尋址時間會隨之加長,性能將會呈線性下降.

適用場景討論

Cephfs:

優點:
1.讀取延遲低,I/O帶寬表現良好,尤其是block size較大一些的文件
2.靈活度高,支持k8s的所有接入模式
缺點:
1.寫入延遲相對較高且延遲時間不穩定
適用場景:
適用於要求靈活度高(支持k8s多節點掛載特性),對I/O延遲不甚敏感的文件讀寫操作,以及非海量的小文件存儲支持.例如作爲常用的應用/中間件掛載存儲後端.

Ceph RBD:

優點:
1.I/O帶寬表現良好
2.讀寫延遲都很低
3.支持鏡像快照,鏡像轉儲
缺點:
1.不支持多節點掛載
適用場景:
對I/O帶寬和延遲要求都較高,同時無多個節點同時讀寫數據需求的應用,例如數據庫.

歡迎補充

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章