閱讀467 返回首頁    go 阿裏雲 go 技術社區[雲棲]


DRDS性能評估分析

一.         DRDS性能評估分析目標

通常我們在分布式數據庫選項過程中會對DRDS進行性能評估分析,我認為主要包含以下3個目的:

1.    評估DRDS性能,判斷DRDS是否滿足預期的性能需求

2.    獲取DRDS性能容量及各負載條件下性能表現,為容量規劃提供參考依據

3.    定位診斷DRDS性能瓶頸及原因並調整優化

 

二.         性能評估分析主要性能指標

 

資源指標:

CPU 利用率:DRDS 服務節點的 CPU 利用率的平均值               

網絡輸入流量:DRDS 服務節點的網絡輸入流量的總和

網絡輸出流量:DRDS 服務節點的網絡輸出流量的總和

連接數:應用到 DRDS 的連接總數

活躍線程數:DRDS 用來執行 SQL 的線程數

 

產品業務性能指標:

邏輯 QPS:DRDS 服務節點每秒處理的 SQL 語句數目的總和

物理 QPS:DRDS 服務節點每秒發送到 RDS 的 SQL 操作數總和

邏輯 RT:DRDS 對於每條 SQL 的平均響應時間

物理 RT:DRDS 發送到 RDS 的 SQL 的平均響應時間

 

壓測工具性能指標:

每秒SQL數:每秒壓測工具執行的SQL數量總和

平均響應時間:壓測工具的每個請求從發生到接受響應的平均延遲時間

 

三.         性能評估分析原理及方法

c110c537a96de3cfe7e701950b0ad4c76a0cd7f9

上麵這圖是比較典型的負載、資源、吞吐量、響應時間之間的趨勢關係

 

1.輕負載區:隨著負載的增加,響應時間變化不大,係統資源利用率和TPS幾乎線性增長
2.重負載區:隨著負載持續的增加,資源開始趨於飽和,TPS到達拐點

3.崩潰區:隨著負載的進一步增加,這時候的係統資源主要消耗在資源競爭和調度上,TPS反而開始保持平穩狀態或開始下降,請求隊列裏的請求開始膨脹,響應時間開始快速上升

 

結合這個原理,一些經過實踐的簡單公式也可以幫助我們分析:

前提條件,模擬的虛擬並發用戶數沒有思考時間,上一個請求完成後馬上請求下一個,

從壓測工具端來看:TPS或QPS=並發用戶數  /  響應時間 

                  反之 並發用戶數 = TPS * 響應時間

                       響應時間 = 並發用戶數 * TPS

 

從DRDS端可以得出公式: QPS=活躍線程數  /  SQL邏輯時間 

                  反之 活躍線程數= QPS * SQL邏輯時間

                       SQL邏輯時間=活躍線程數 *  QPS

 

 

四.         性能評估壓測工具使用

請查看地址:https://yq.aliyun.com/articles/133785

 

五.         性能評估分析案例

 

 

 

壓測環境:DRDS 4c4g

壓測表結構:一張用戶表,按u_id進行分庫

eba4b4f74e890af7301fc22430fc9be4380ebb7a

壓測模型:

SQL類型

SQL語句

SQL比例

插入

INSERT INTO `marcotest`.`user_tbl`

(`u_name`,

`u_phone`,

`u_national`

)

VALUES

(?,?,'China');

20%

查詢

select * from `marcotest`.`user_tbl` where u_id=?

70%

更新

update `marcotest`.`user_tbl` set u_phone=? where u_id=?

10%

 

 

 

 

通過Jmeter壓測DRDS,壓測結果如下:

 

業務指標:

a52427d073e6cdf3de03b113d5e78ea24cfe3c85

50cb761a5ce5d89e6a38ca473408446c1ebe95a5

80b4e9c8dd14a15e87486faba7909fd84bc6b66c


b967d535a47bc241e6238f20bfcda7abb19ccd64

b213b84ab17ec53c80da01926f04aa4f676ddaa8

57e4f19f373cec99786f6d4425cf7e6dd843d9c7


 

DRDS資源指標:


1e1d42ab802aa8eb39f6757898ca01e3be621c72

 

整理後的結果數據:

並發用戶數

平均響應時間(ms)

每秒SQL數(個)

CPU平均利用率(百分比)

8

4

1778

40%

16

4

3490

70%

32

5.5

5413

85%

48

7.5

6095

90%

64

9.5

6387

95%

80

12

6483

99%

 

性能分析:

3b6d7c8d4af4ce6080b77972eab171b061b7d45d

250b65330d68d6cf3462f222c52abcfbe7668432


在當前測試環境下,按壓測模型進行壓測,從結果數據來看,當並發超過32後以後QPS增長緩慢,並且CPU利用率趨於飽和,可以判斷這個時候資源基本快達到瓶頸,導致吞吐量上漲受限。另外我們可以看到資源沒有瓶頸的時候,響應時間基本保持平緩趨勢,一旦資源飽和時,上漲趨勢比較明顯。

最後更新:2017-07-21 00:32:39

  上一篇:go  activiti web 流程設計器 整合視頻教程 Activiti-master
  下一篇:go  大數據環境下該如何優雅地設計數據分層