TPCC MySQL基準測試

2021-07-25 01:14:09 字數 2972 閱讀 2188

yum install bzr -y

bzr branch lp:~percona-dev/perconatools/tpcc-mysql

進入這個目錄下的src目錄,執行make

在上層目錄中,可以看到已經有了tpcc_load  tpcc_start命令

如果有如下錯誤,則可能是原始碼安裝的mysql,所以它的庫不在預設的位置

error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: no such file or directory

建立軟鏈結可以解決這個問題。

ln -s /home/lihuilin/mysql/lib/libmysqlcl

ient.so.18 /usr/lib64/libmysqlclient.so.18

建立乙個測試資料庫,然後使用如下配置進行基準測試

create database tpcc;

mysql配置如下

max_connections=3000

innodb_buffer_pool_size=1g

innodb_flush_log_at_trx_commit = 1

sync_binlog=1

innodb_support_xa=1

首先載入資料,執行建立表和約束的sql

這個工具是模擬倉庫的系統,

可以選擇初始化倉庫的數量,數量越大,資料量也越大。

初始化10個倉庫

開始進行基準測試,其中w指倉庫數量,c指併發數量,r是預熱時間,l是測試執行時間

[root@mysql1 tpcc-mysql]# ./tpcc_start -h 127.0.0.1 -u xx -p xx -d tpcc -w 10 -c 200 -r 10 -l 60 -i 10 -f report -t trx

usage: tpcc_start -h server_host -p port -d database_name -u mysql_user -p mysql_password -w warehouses -c connections -r warmup_time -l running_time -i report_interval -f report_file -t trx_file

tpcc-mysql輸出結果包括五個業務邏輯,這五個業務邏輯構成了tpcc-mysql測試的整個事務處理過程。具體如下所示:

new-order:新訂單

payment:支付

order-status:訂單查詢

delivery:發貨

stock-level:庫存

預定義變數:

為了能夠清晰的說明以下內容,首先定義一些變數,便於以下的計算和說明。具體如下所示:

success = 執行成功的記錄數

late=執行延遲的記錄數

pre_success=上一次執行成功的記錄數

pre_late=上一次執行失敗的記錄數

根據以上定義的變數,計算相應欄位的結果和說明相應欄位的含義。

1、時間間隔內成功的事務(包括成功和延遲的事務):sl=success+late-pre_success-pre_late

2、時間間隔內延遲的事務:l=late-pre_late

檢視tpcc的結果

新訂單模組                 支付模組

sl(l):rt90|max_rt

1822成功(0延遲):90%平均響應時間1.256|最長響應時間4.119

10, 1879(6):4.024|9.398, 1822(0):1.256|4.119, 190(0):0.712|2.017, 186(0):5.227|5.929, 191(0):18.450|24.997

sc:success,lt:late,rt:retry,fl:failure

[0] sc:8677 lt:13 rt:0 fl:0 //新訂單數

[1] sc:8620 lt:1 rt:0 fl:0  //支付業務

[2] sc:872 lt:0 rt:0 fl:0   //查詢業務

[3] sc:878 lt:0 rt:0 fl:0   //發貨業務

[4] sc:871 lt:0 rt:0 fl:0   //庫存查詢

in 60 sec.

(all must be [ok])

[transaction percentage]

payment: 43.25% (>=43.0%) [ok]        //支付模組佔總業務的43.25%

order-status: 4.37% (>= 4.0%) [ok]    //訂單模組佔總業務的4.37%

delivery: 4.40% (>= 4.0%) [ok]        //發貨模組佔總業務的4.40%

stock-level: 4.37% (>= 4.0%) [ok]     //庫存模組佔總業務的4.37%

[response time (at least 90% passed)] //是否滿足指標

new-order: 99.85% [ok]    

payment: 99.99% [ok]

order-status: 100.00% [ok]

delivery: 100.00% [ok]

stock-level: 100.00% [ok]

//指標如下

new-order       5ms

payment         5ms

order-status    5ms

delivery        80ms

stock-level     20ms

8690.000 tpmc  //每分鐘可完成新訂單業務8690筆

然後修改mysql配置,再次執行相同測試

innodb_buffer_pool_size=512m

可以看到效能有明顯下降。

參考:

TPCC MySQL基準測試

tpcc mysql輸出結果包括五個業務邏輯,這五個業務邏輯構成了tpcc mysql測試的整個事務處理過程。具體如下所示 new order 新訂單 payment 支付 order status 訂單查詢 delivery 發貨 stock level 庫存 預定義變數 為了能夠清晰的說明以下內...

mysql基準測試例項 mysql基準測試

toc 單位時間內所處理的事務數 tps 單位時間內所處理的查詢數 qps 響應時間 平均響應時間,最小響應時間,最大響應時間,各時間所佔百分比 併發量 同時處理的查詢請求的數量 併發量不等於連線數 正在工作的併發的操作或同時工作的數量 工具 mysqlslap mysql自帶的 特點 可以模擬伺服...

mysql 基準測試指令碼 MySQL基準測試

常見指標 tps transaction per second qps query per second 響應時間 併發量步驟 計畫和設計基準測試 準備基準測試及資料收集指令碼 容易忽略的問題 使用生產環境資料時只使用了部分資料 在多使用者場景中,只做單使用者的測試 在單伺服器上測試分布式應用 反覆...