資料庫優化 基準測試(五)

2021-07-04 06:36:01 字數 4379 閱讀 8711

dbt2是乙個oltp事務效能測試工具。它模擬乙個批發**商,多個職員訪問資料庫,更新客戶資訊和檢查庫存。

dbt2是乙個tpc』s tpc-c基準測試規範的不錯的實現,它是mysql的最流行的基準測試工具之一,但它的文件很缺乏。

dbt2需要的perl模組:

statistics

::descriptive

test

::parser

test

::reporter

安裝perl模組的方法:

$ sudo cpan statistics::descriptive

$ sudo cpan test::parser

$ sudo cpan test::reporter

注意:如果這些包丟失,它不會返回任何編譯錯誤。

$ wget 

.net/project/osdldbt/dbt2/0.40/dbt2-0.40

.tar

.gz$ tar -zxf dbt2-0.40

.tar

.gz$ cd dbt2-0.40

$ ./configure –with-mysql[=/usr/local/mysql]

$ make

注意:如果你不通過包管理器(rpm、deb)安裝mysql或它的變種,你可以指定乙個–mysql路徑。

例如:在/usr/local/mysql中解開mysql的tar包。

dbt2的測試包括下列幾個階段:

1. 生成資料

通過datagen生成測試使用的資料。

使用方法:

datagen -w # [-c #] [-i #] [-o #] [-s #] [-n #] [-d ]

-w # : 倉庫表(warehouse)基數

-c # : 客戶表(customer)基數,預設3000

-i # : 商品表(item)基數,預設100000

-o # : 訂單表(order)基數,預設3000

-n # : 新訂單表(new-order)基數,預設900

-d : 資料檔案的輸出路徑

--sapdb :

sapdb的資料格式

--pgsql :

postgresql的資料格式

--mysql :

mysql的資料格式

例如:

$ mkdir /tmp/dbt2-w10

$ datagen -w

10-d /tmp/dbt2-w10 –mysql

2. 載入資料

使用build_db.sh載入資料。

選項:

-d -f -g (generate data files)

-s -h -u -p *

-e engine: [myisam|innodb]. (default innodb)>

-l local keyword while loading dataset> *

-v -w

例子:

build_db.sh -w

3-d dbt2 -f /tmp/dbt2-w3

-s /var/run/mysqld/mysqld.sock -h localhost -u root -p password -e innodb -v –l

使用中的問題:

(1) 文件說使用scripts/mysql/mysql_load_db.sh,但這個指令碼不存在。

取而代之,使用script/mysql/build_db.sh。

(2) 不載入檔案。

在build_db.sh中使用

< while

getopts

"d:h:f:gs:e:m:u:p:vlw:"選項替換

> while

getopts

"d:h:f:gs:e:m:u:p:vw:"選項。

資料庫密碼不是通過-p引數而是通過-x接收。

3. 執行資料

使用run_workload.sh執行測試。

用法:

run_workload.sh -c 

of database connections> -d

of test> -w

of warehouses>

其它選項:

-d *

-h *

-l -o -s in milliseconds>

-n or keying time (default no)>

-u -x -z for the test>

使用中的問題:

(1) 文件說使用scripts/run_mysql.sh,但這個指令碼不存在!

取而代之使用scripts/run_workload.sh。

(2) 選項:

-h 不是指定資料庫的主機名,而是會列印幫助!使用-h代替

-d 不是資料庫名稱,而是測試持續的秒數

執行會失敗,除非執行下面的命令:

$ export use_pgpool=0

(3) 在指令碼中socket /tmp/mysql.sock是硬編碼的。如果你的伺服器的socket在不同位置,可以簡單地建立乙個symlink /tmp/mysql.sock 到你的socket位置 , 例如:

$ ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock

例子:

tpcc-mysql是乙個oltp事務效能測試工具,由percona開發的基準測試工具。它生成tpc-c工作負載。

launchpad位置:

獲得分支:

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

$ cd tpcc-mysql/src

$ make

$ cd ..

1. 準備資料庫
mysqladmin create tpcc10

mysql tpcc10 < create_table.sql

mysql tpcc10 < add_fkey_idx.sql

2. 載入資料
./tpcc_load localhost tpcc10 root pass 10

選項:-hostname

-dbname

-dbuser

-dbpass

-number of warehouses

3. 開始測試
tpcc_start -h localhost -d tpcc10 -u root -p pass

-w 10 -c 32 -r 10 -l 600

選項:-h : hostname

-d : dbname

-u : dbuser

-p : password

-w : warehouses

-c : connections

-r : rampup (warmup time)

-l : benchmark duration

在 readme裡的不正確用法: tpcc_start localhost tpcc1000 root "" 1000 32 10 10800

4. 測試結果

資料庫優化 基準測試(一)

基準測試是為了找出系統的瓶頸,包含 單個元件 單個元件的基準測試的比較須要考慮os配置 硬體 db系統 引數 schema 查詢及工作負載。定義基準前的目標。了解可反覆生成的工作負載 記錄全部的資訊,甚至看起來可能沒實用的。包含硬體資訊 配置 版本號 表大小等 建立基線。每個基準。都是未來的基線。定...

sysbench資料庫效能測試基準

背景介紹 我們如何判斷一台資料伺服器的效能呢?sysbench是一種行業基準,它通過各種指標來判斷乙個資料伺服器的負載情況。安裝sysbench curl s sudo bash sudo yum y install sysbench 測試 cpu cpu 測試計算素數,直到某個指定值所需要的時間。...

sysbench進行資料庫效能基準測試

1 建立用於基準測試用的資料庫和資料庫使用者 create database sys test grant all privileges on to zhaoheng localhost identified by 123456 給予使用者所有許可權 2 生成測試資料 進入lua指令碼目錄,預設在 ...