程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 應用sysbench來測試MySQL機能的具體教程

應用sysbench來測試MySQL機能的具體教程

編輯:MySQL綜合教程

應用sysbench來測試MySQL機能的具體教程。本站提示廣大學習愛好者:(應用sysbench來測試MySQL機能的具體教程)文章只能為提供參考,不一定能成為您想要的結果。以下是應用sysbench來測試MySQL機能的具體教程正文


sysbench是一個模塊化的、跨平台、多線程基准測試對象,重要用於評價測試各類分歧體系參數下的數據庫負載情形。
今朝sysbench代碼托管在launchpad上,項目地址:https://launchpad.net/sysbench(本來的官網 http://sysbench.sourceforge.net 曾經弗成用),源碼采取bazaar治理。

1、 下載源碼包
裝置epel包後以便裝置bzr客戶端:

rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

然後便可以開端裝置bzr客戶端了:

yum install bzr

以後,便可以開端用bzr客戶端下載tpcc-mysql源碼了。

cd /tmp
bzr branch lp:sysbench

MySQL中文網便捷下載地址:

http://imysql.com/wp-content/uploads/2014/09/sysbench-0.4.12-1.1.tgz

sysbench支撐以下幾種測試形式:

1、CPU運算機能
2、磁盤IO機能
3、調劑法式機能
4、內存分派及傳輸速度
5、POSIX線程機能
6、數據庫機能(OLTP基准測試)
今朝sysbench重要支撐 mysql,drizzle,pgsql,oracle 等幾種數據庫。

2、編譯裝置
編譯異常簡略,可參考 README 文檔,簡略步調以下:

cd /tmp/sysbench-0.4.12-1.1
./autogen.sh
./configure --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/local/mysql/lib && make

# 假如 make 沒有報錯,就會在 sysbench 目次下生成二進制敕令行對象 sysbench
ls -l sysbench
-rwxr-xr-x 1 root root 3293186 Sep 21 16:24 sysbench

3、OLTP測試前預備
初始化測試庫情況(總共10個測試表,每一個表 100000 筆記錄,填充隨機生成的數據):

cd /tmp/sysbench-0.4.12-1.1/sysbench
mysqladmin create sbtest

./sysbench --mysql-host=1.2.3.4 --mysql-port=3317 --mysql-user=tpcc --mysql-password=tpcc \
 --test=tests/db/oltp.lua --oltp_tables_count=10 --oltp-table-size=100000 --rand-init=on prepare

關於這幾個參數的說明:

--test=tests/db/oltp.lua 表現挪用 tests/db/oltp.lua 劇本停止 oltp 形式測試
--oltp_tables_count=10 表現會生成 10 個測試表
--oltp-table-size=100000 表現每一個測試表填湊數據量為 100000
--rand-init=on 表現每一個測試表都是用隨機數據來填充的

假如在本機,也能夠應用 –mysql-socket 指定 socket 文件來銜接。加載測試數據時長視數據量而定,若進程比擬久須要略加耐煩期待。

真實測試場景中,數據表建議不低於10個,單表數據量不低於500萬行,固然了,要視辦事器硬件設置裝備擺設而定。假如是裝備了SSD或許PCIE SSD這類高IOPS裝備的話,則建議單表數據量起碼不低於1億行。

4、停止OLTP測試

在下面初始化數據參數的基本上,再增長一些參數,便可開端停止測試了:

./sysbench --mysql-host=1.2.3.4. --mysql-port=3306 --mysql-user=tpcc \
--mysql-password=tpcc --test=tests/db/oltp.lua --oltp_tables_count=10 \
--oltp-table-size=10000000 --num-threads=8 --oltp-read-only=off \
--report-interval=10 --rand-type=uniform --max-time=3600 \
 --max-requests=0 --percentile=99 run >> ./log/sysbench_oltpX_8_20140921.log

幾個選項略微說明下

--num-threads=8 表現提議 8個並發銜接
--oltp-read-only=off 表現不要停止只讀測試,也就是會采取讀寫混雜形式測試
--report-interval=10 表現每10秒輸入一次測試進度申報
--rand-type=uniform 表現隨機類型為固定形式,其他幾個可選隨機形式:uniform(固定),gaussian(高斯),special(特定的),pareto(帕累托)
--max-time=120 表現最年夜履行時長為 120秒
--max-requests=0 表現總要求數為 0,由於下面曾經界說了總履行時長,所以總要求數可以設定為 0;也能夠只設定總要求數,不設定最年夜履行時長
--percentile=99 表現設定采樣比例,默許是 95%,即拋棄1%的長要求,在殘剩的99%裡取最年夜值

即:模仿 對10個表並發OLTP測試,每一個表1000萬行記載,連續壓測時光為 1小時。

真實測試場景中,建議連續壓測時長不小於30分鐘,不然測試數據能夠不具參考意義。

5、測試成果解讀:

測試成果解讀以下:

sysbench 0.5:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 8
Report intermediate results every 10 second(s)
Random number generator seed is 0 and will be ignored


Threads started!
-- 每10秒鐘申報一次測試成果,tps、每秒讀、每秒寫、99%以上的呼應時長統計
[  10s] threads: 8, tps: 1111.51, reads/s: 15568.42, writes/s: 4446.13, response time: 9.95ms (99%)
[  20s] threads: 8, tps: 1121.90, reads/s: 15709.62, writes/s: 4487.80, response time: 9.78ms (99%)
[  30s] threads: 8, tps: 1120.00, reads/s: 15679.10, writes/s: 4480.20, response time: 9.84ms (99%)
[  40s] threads: 8, tps: 1114.20, reads/s: 15599.39, writes/s: 4456.30, response time: 9.90ms (99%)
[  50s] threads: 8, tps: 1114.00, reads/s: 15593.60, writes/s: 4456.70, response time: 9.84ms (99%)
[  60s] threads: 8, tps: 1119.30, reads/s: 15671.60, writes/s: 4476.50, response time: 9.99ms (99%)
OLTP test statistics:
    queries performed:
        read:                            938224    -- 讀總數
        write:                           268064    -- 寫總數
        other:                           134032    -- 其他操作總數(SELECT、INSERT、UPDATE、DELETE以外的操作,例如COMMIT等)
        total:                           1340320    -- 全體總數
    transactions:                        67016  (1116.83 per sec.)    -- 總事務數(每秒事務數)
    deadlocks:                           0      (0.00 per sec.)    -- 產生逝世鎖總數
    read/write requests:                 1206288 (20103.01 per sec.)    -- 讀寫總數(每秒讀寫次數)
    other operations:                    134032 (2233.67 per sec.)    -- 其他操作總數(每秒其他操作次數)

General statistics:    -- 一些統計成果
    total time:                          60.0053s    -- 總耗時
    total number of events:              67016    -- 共產生若干事務數
    total time taken by event execution: 479.8171s    -- 一切事務耗時相加(不斟酌並行身分)
    response time:    -- 呼應時長統計
         min:                                  4.27ms    -- 最小耗時
         avg:                                  7.16ms    -- 均勻耗時
         max:                                 13.80ms    -- 最長耗時
         approx.  99 percentile:               9.88ms    -- 跨越99%均勻耗時

Threads fairness:
    events (avg/stddev):           8377.0000/44.33
    execution time (avg/stddev):   59.9771/0.00

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved