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數量總和
平均響應時間:壓測工具的每個請求從發生到接受響應的平均延遲時間
三. 性能評估分析原理及方法
上麵這圖是比較典型的負載、資源、吞吐量、響應時間之間的趨勢關係
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進行分庫
壓測模型:
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,壓測結果如下:
業務指標:
DRDS資源指標:
整理後的結果數據:
並發用戶數 |
平均響應時間(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% |
性能分析:
在當前測試環境下,按壓測模型進行壓測,從結果數據來看,當並發超過32後以後QPS增長緩慢,並且CPU利用率趨於飽和,可以判斷這個時候資源基本快達到瓶頸,導致吞吐量上漲受限。另外我們可以看到資源沒有瓶頸的時候,響應時間基本保持平緩趨勢,一旦資源飽和時,上漲趨勢比較明顯。
最後更新:2017-07-21 00:32:39