BenchmarkSQL對mysql進行效能測試

2021-10-14 11:43:38 字數 3510 閱讀 9570

ps: 先在mysql中建立 root 使用者,或自定義其他使用者,配到props.mysql配置檔案中。

登入mysql ,建立tpcc資料庫用於測試

mysql -uroot -p

create databases  tpcc;

show databases;

use tpcc;

show tables;

1. 修改配置檔案: props.mysql

db=mysql

driver=com.mysql.cj.jdbc.driver

conn=jdbc:mysql://localhost:3306/tpcc

user=tpcc

password=******

warehouses=1

loadworkers=4

terminals=1

//to run specified transactions per terminal- runmins must equal zero

runtxnsperterminal=10

//to run for specified minutes- runtxnsperterminal must equal zero

runmins=0

//number of total transactions per minute

limittxnspermin=300

//set to true to run in 4.x compatible mode. set to false to use the

//entire configured database evenly.

terminalwarehousefixed=true

//the following five values must add up to 100

neworderweight=45

paymentweight=43

orderstatusweight=4

deliveryweight=4

stocklevelweight=4

// directory name to create for collecting detailed result data.

// comment this out to suppress.

resultdirectory=my_result_%ty-%tm-%td_%th%tm%ts

oscollectorscript=./misc/os_collector_linux.py

oscollectorinterval=1

//oscollectorsshaddr=user@dbhost

oscollectordevices=net_eth0 blk_sda

引數說明如下:

表1資料庫資訊部分 引數

說明conn

192.168.222.120

資料庫伺服器位址,以實際情況為準。

3306

mysql資料庫埠,以實際情況為準。

tpcc

資料庫名稱,以實際情況為準,本例中為tpcc。

user和password

root和123456

修改為建立資料庫tpcc的賬號和密碼。

warehouses

1000

初始化載入資料時,需要建立多少倉庫的資料。例如200,標識建立200個倉庫資料,每乙個資料倉儲的資料量大概是76823.04kb,可有少量的上下浮動,因為測試過程中將會插入或刪除現有記錄。

資料量:每個倉庫裡有9張表,bmsql_order_line表資料量最大30w/1warehouses,60w/2warehouses....

loadworker

100載入資料時,每次提交程序數。

表2程式執行的場景引數 引數

說明terminals

終端數量,指同時有多少終端併發執行,表示併發程度。遍歷值140,170,200。

runtxnsperterminal

每分鐘每個終端執行的事務數。

runmins

執行多少分鐘,例如15分鐘。與terminals配合使用。與終端數量,每個終端每分鐘執行事務數配合使用

limittnxspermin

每分鐘執行的事務總數。(資料庫伺服器,測試吞吐量時,需要將此值設定極大(無限大),這樣就能夠保證不會出現某個終端sleep現象。)

terminalwarehousefixed

用於指定終端和倉庫的繫結模式,設定為true時可以執行4.x相容模式,意思為每個終端都有乙個固定的倉庫。設定為false時可以均勻的使用資料庫整體配置。

2.建立資料,一步完成 建立表、生成測試資料、匯入資料,及建立索引,外來鍵等。

ps: 需要指定資料庫型別對應的配置檔案 ,如 mysql  資料庫,對應的配置檔案為props.mysql

./rundatabasebuild.sh props.mysql       

ps: 如果沒有授權先授權   ,命令:   chmod 777 *.sh

3. 測試資料

./runbenchmark.sh props.mysql

結果:17:05:30,476 [thread-1] info   jtpcc : term-00, nt tpmtotal: 84    memory usage: 19mb / 37mb             

17:05:30,477 [thread-1] info   jtpcc : term-00, 

17:05:30,477 [thread-1] info   jtpcc : term-00, measured tpmc (neworders) = 147.63

17:05:30,477 [thread-1] info   jtpcc : term-00, measured tpmtotal = 324.8

17:05:30,478 [thread-1] info   jtpcc : term-00, session start     = 2021-01-11 17:05:28

17:05:30,478 [thread-1] info   jtpcc : term-00, session end       = 2021-01-11 17:05:30

17:05:30,478 [thread-1] info   jtpcc : term-00, transaction count = 10

執行結束後,關注tpmtotal值。

說明:tpm(transactions per minute)每分鐘事物處理個數。

並會在 run/ 目錄下生成result 目錄,檢視結果報告

my_result_2021-01-11_170527

4. 結果繪圖,生成報告(ps:需要r語言環境)

./generategraphs.sh my_result_2021-01-11_170527/

5. 清空資料

./rundatabasedestroy.sh props.mysql

參考: 

參考: 

My程式設計修煉之道

最近想法有點多,已經大三末期的我思緒萬千,對於現在所在的路以及將來要走的路充滿著困惑於不解,但是有一點我是可以確定的,畢業之後我將要從事的行業必然是計算機行業。對於乙個沒有關係,沒有背景我來說,畢業的第一選擇必然是大學所學的專業了。大學裡辛辛苦苦學了四年的專業不能說丟就丟吧,畢竟人的一生能有幾個四年...

Mysql Workbench建模匯入MySQL中

我不知道其他人怎麼做。這個只是我自己摸索的做法。1.workbench中匯出sql檔案。file,export。一直下一步 當然也可以選一些東西 2.處理workbench出來的sql檔案。例如開頭一些set,結尾一些set貌似沒用。刪了。然後字元編碼也要處理一下,預設好像是latin1。這裡最好複...

MySQL WorkBench管理操作MySQL

一 mysql workbench mysql workbench提供dbas和developers乙個整合工具環境 1 資料庫設計和建模 2 sql開發 取代原來的mysql query browser 3 資料庫管理 取代原來的mysql administrator 2 安裝 3 入門資料庫例項...