Sysbench測試指南 V1
更新時間 2025-09-24 15:53:05
最近更新時間: 2025-09-24 15:53:05
分享文章
本文介紹DRDS的性能測試指標和測試結果。
測試工具
Sysbench是一個基于LuaJIT的,模塊化、跨平臺、多線程基準測試工具,主要用于評估測試各種不同參數環境下的數據庫負載情況。
測試環境
區域:華東1。
邏輯表數量:10。
分片數:2。
數據量:單表記錄500w,2個分片,每個物理分片表記錄250w;10張表總數據量5000w。
壓力機: 1臺sysbench,配置為4C8G。
壓測時間:單次120S。
實例規格:
| DRDS規格 | MySQL規格 |
|---|---|
| 基礎版12C24G | 2臺配置為16C32G,500G SSD盤。 |
| 中級版24C48G | 2臺配置為16C32G,500G SSD盤。 |
| 高級版48C96G | 2臺配置為16C64G,500G SSD盤。 |
測試參數
壓測表結構
CREATE TABLE IF NOT EXISTS `sbtest1` (
`id` int(10) unsigned NOT NULL,
`k` int(10) unsigned NOT NULL DEFAULT '0',
`c` char(120) NOT NULL DEFAULT '',
`pad` char(60) NOT NULL DEFAULT '',
KEY `xid` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;測試模型
Sysbench OLTP場景默認提交的事務中包含20條SQL語句,具體如下 :
主鍵SELECT語句:10條。
范圍SELECT語句:4條。
UPDATE語句:2條。
DELETE語句:2條。
INSERT語句:2條。
測試指標
TPS:Transaction Per Second,數據庫每秒執行的事務數,每個事務中包含20條SQL語句。
QPS:Query Per Second,數據庫每秒執行的SQL數,包含insert、select、update、delete等。
測試步驟
使用sysbench命令壓入測試數據到數據庫中。
sysbench --mysql-host=<host> --mysql-port=<port> --mysql-user=<user> --mysql-password=<password> --mysql-db=<db_name> --mysql-table-engine=innodb --mysql-ignore-errors=1062,1213,1205,1020 --oltp-tables-count=10 --oltp-table-size=5000000 --db-driver=mysql --time=120 --report-interval=10 --oltp_create_secondary='off' --oltp_auto_inc='on' --oltp-test-mode=complex --rand-init=on --rand-type=uniform insert.lua --threads=64 prepare說明: 需要注釋掉common.lua腳本中的db_query(query)這一行。
使用sysbench命令執行壓測。
sysbench --mysql-host=<host> --mysql-port=<port> --mysql-user=<user> --mysql-password=<password> --mysql-db=<db_name> --mysql-table-engine=innodb --mysql-ignore-errors=1062,1213,1205,1020 --oltp-tables-count=10 --oltp-table-size=5000000 --db-driver=mysql --time=120 --report-interval=10 --oltp_create_secondary='off' --oltp_auto_inc='on' --oltp-test-mode=complex --rand-init=on --rand-type=uniform insert.lua --threads=64 run使用sysbench命令清理數據。
sysbench --mysql-host=<host> --mysql-port=<port> --mysql-user=<user> --mysql-password=<password> --mysql-db=<db_name> --mysql-table-engine=innodb --mysql-ignore-errors=1062,1213,1205,1020 --oltp-tables-count=10 --oltp-table-size=5000000 --db-driver=mysql --time=120 --report-interval=10 --oltp_create_secondary='off' --oltp_auto_inc='on' --oltp-test-mode=complex --rand-init=on --rand-type=uniform insert.lua --threads=64 cleanup
測試結果
| 測試規格 | 并發數 | TPS | QPS |
|---|---|---|---|
| 基礎版12C24G | 64 | 2239 | 44798 |
| 1024 | 3289 | 65785 | |
| 中級版24C48G | 64 | 2754 | 55093 |
| 1024 | 3438 | 68762 | |
| 高級版48C96G | 64 | 3186 | 63739 |
| 1024 | 4615 | 92318 |
注意
DRDS的內核有一定的過載保護能力,發生過載保護時壓測結果可能會出現抖動,此時系統性能已經達到瓶頸,繼續加壓測試結果也無法得到明顯提升。建議嘗試降低壓力,來獲得更高的性能測試結果。