下文給大家?guī)?lái)有關(guān)MySQL性能測(cè)試可以使用哪幾種工具內(nèi)容,相信大家一定看過(guò)類似的文章。我們給大家?guī)?lái)的有何不同呢?一起來(lái)看看正文部分吧,相信看完mysql性能測(cè)試可以使用哪幾種工具你一定會(huì)有所收獲。
蟠龍網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),蟠龍網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為蟠龍數(shù)千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的蟠龍做網(wǎng)站的公司定做!
一、mysqlslap
安裝:裝了mysql就有了
作用:模擬并發(fā)測(cè)試數(shù)據(jù)庫(kù)性能。
優(yōu)點(diǎn):簡(jiǎn)單,容易使用。
不足:不能指定生成的數(shù)據(jù)規(guī)模,測(cè)試過(guò)程不清楚針對(duì)十萬(wàn)級(jí)還是百萬(wàn)級(jí)數(shù)據(jù)做的測(cè)試,感覺(jué)不太適合做綜合測(cè)試,比較適合針對(duì)既有數(shù)據(jù)庫(kù),對(duì)單個(gè)sql進(jìn)行優(yōu)化的測(cè)試。
使用方法:
可以使用mysqlslap --help來(lái)顯示使用方法:
Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf
--engines:代表要測(cè)試的引擎,可以有多個(gè),用分隔符隔開(kāi)。
--iterations:代表要運(yùn)行這些測(cè)試多少次。
--auto-generate-sql :代表用系統(tǒng)自己生成的SQL腳本來(lái)測(cè)試。
--auto-generate-sql-load-type: 代表要測(cè)試的是讀還是寫還是兩者混合的(read,write,update,mixed)
--number-of-queries:代表總共要運(yùn)行多少次查詢。每個(gè)客戶運(yùn)行的查詢數(shù)量可以用查詢總數(shù)/并發(fā)數(shù)來(lái)計(jì)算。
--debug-info 代表要額外輸出CPU以及內(nèi)存的相關(guān)信息。
--number-int-cols :創(chuàng)建測(cè)試表的 int 型字段數(shù)量
--auto-generate-sql-add-autoincrement : 代表對(duì)生成的表自動(dòng)添加auto_increment列,從5.1.18版本開(kāi)始
--number-char-cols 創(chuàng)建測(cè)試表的 char 型字段數(shù)量。
--create-schema 測(cè)試的schema,MySQL中schema也就是database。
--query 使用自定義腳本執(zhí)行測(cè)試,例如可以調(diào)用自定義的一個(gè)存儲(chǔ)過(guò)程或者sql語(yǔ)句來(lái)執(zhí)行測(cè)試。
--only-print 如果只想打印看看SQL語(yǔ)句是什么,可以用這個(gè)選項(xiàng)。
mysqlslap -u root -p --concurrency=100 --iterations=1 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=mixed --engine=myisam --number-of-queries=10
或:
指定數(shù)據(jù)庫(kù)和sql語(yǔ)句:
mysqlslap -h localhost -P 123456 --concurrency=100 --iterations=1 --create-schema='mysql' --query='select * from user;' --number-of-queries=10 -u root -p
要是看到底做了什么可以加上:--only-print
Benchmark
Average number of seconds to run all queries: 25.225 seconds
Minimum number of seconds to run all queries: 25.225 seconds
Maximum number of seconds to run all queries: 25.225 seconds
Number of clients running queries: 100
Average number of queries per client: 0
以上表明100個(gè)客戶端同時(shí)運(yùn)行要25秒
再如:
mysqlslap -uroot -p123456 --concurrency=100 --iterations=1 --engine=myisam --create-schema='haodingdan112' --query='select * From order_boxing_transit where id = 10' --number-of-queries=1 --debug-info
二、sysbench
安裝:
可以從http://sourceforge.net/projects/sysbench/ 下載
tar zxf sysbench-0.4.12.tar.gz
cd sysbench-0.4.12
./autogen.sh
./configure && make && make install
strip /usr/local/bin/sysbench
安裝時(shí)候可能會(huì)報(bào)錯(cuò),后來(lái)baidu發(fā)現(xiàn)個(gè)好文 http://blog.csdn.net/icelemon1314/article/details/7004955 怕以后找不到,也貼過(guò)來(lái)吧
1.如果mysql不是默認(rèn)路徑安裝,那么需要通過(guò)指定--with-mysql-includes和--with-mysql-libs參數(shù)來(lái)加載mysql安裝路徑
2.如果報(bào)錯(cuò):
../libtool: line 838: X--tag=CC: command not found
../libtool: line 871: libtool: ignoring unknown tag : command not found
../libtool: line 838: X--mode=link: command not found
../libtool: line 1004: *** Warning: inferring the mode of operation is deprecated.: command not found
../libtool: line 1005: *** Future versions of Libtool will require --mode=MODE be specified.: command not found
../libtool: line 2231: X-g: command not found
../libtool: line 2231: X-O2: command not found
那么執(zhí)行下根目錄的:autogen.sh文件,然后重新configure && make && make install
3.如果報(bào)錯(cuò):
sysbench: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
那么執(zhí)行下:
n -s /usr/local/mysql5.5/mysql/lib/libmysqlclient.so.18 /usr/lib64/
4.如果執(zhí)行autogen.sh時(shí),報(bào)如下錯(cuò)誤:
./autogen.sh: line 3: aclocal: command not found
那么需要安裝一個(gè)軟件:
yum install automake
然后需要增加一個(gè)參數(shù):查找: AC_PROG_LIBTOOL 將其注釋,然后增加AC_PROG_RANLIB
作用:模擬并發(fā),可以執(zhí)行CPU/內(nèi)存/線程/IO/數(shù)據(jù)庫(kù)等方面的性能測(cè)試。數(shù)據(jù)庫(kù)目前支持MySQL/Oracle/PostgreSQL
優(yōu)點(diǎn):可以指定測(cè)試數(shù)據(jù)的規(guī)模,可以單獨(dú)測(cè)試讀、寫的性能,也可以測(cè)試讀寫混合的性能。
不足:測(cè)試的時(shí)候,由于網(wǎng)絡(luò)原因,測(cè)試的非常慢,但是最終給的結(jié)果卻很好,并發(fā)支持很高,所以給我的感覺(jué)是并不太準(zhǔn)確。當(dāng)然也可能我沒(méi)搞明白原理
使用方法:
準(zhǔn)備數(shù)據(jù)
sysbench --test=oltp --mysql-table-engine=myisam --oltp-table-size=400000 --mysql-db=dbtest2 --mysql-user=root --mysql-host=192.168.1.101 --mysql-password=pwd prepare
執(zhí)行測(cè)試
sysbench --num-threads=100 --max-requests=4000 --test=oltp --mysql-table-engine=innodb --oltp-table-size=400000 --mysql-db=dbtest1 --mysql-user=root --mysql-host=192.168.1.101 --mysql-password=pwd run
sysbench 0.4.12: multi-threaded system evaluation benchmark
No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 100
Doing OLTP test.
Running mixed OLTP test
Using Special distribution (12 iterations, 1 pct of values are returned in 75 pct cases)
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Maximum number of requests for OLTP test is limited to 4000
Threads started!
Done.
OLTP test statistics:
queries performed:
read: 56014
write: 20005
other: 8002
total: 84021
transactions: 4001 (259.14 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 76019 (4923.75 per sec.)
other operations: 8002 (518.29 per sec.)
Test execution summary:
total time: 15.4393s
total number of events: 4001
total time taken by event execution: 1504.7744
per-request statistics:
min: 33.45ms
avg: 376.10ms
max: 861.53ms
approx. 95 percentile: 505.65ms
Threads fairness:
events (avg/stddev): 40.0100/0.67
execution time (avg/stddev): 15.0477/0.22
三、tpcc-mysql
安裝:
export C_INCLUDE_PATH=/usr/include/mysql
export PATH=/usr/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib/mysql
cd /tmp/tpcc/src
make
然后就會(huì)在 /tmp/tpcc-mysql 下生成 tpcc 命令行工具 tpcc_load 、 tpcc_start
作用:測(cè)試mysql數(shù)據(jù)庫(kù)的整體性能
優(yōu)點(diǎn):符合tpcc標(biāo)準(zhǔn),有標(biāo)準(zhǔn)的方法,模擬真實(shí)的交易活動(dòng),結(jié)果比較可靠。
不足:不能單獨(dú)測(cè)試讀或者寫的性能,對(duì)于一些以查詢?yōu)橹骰蛘咧粚懙膽?yīng)用,就沒(méi)有這么大的意義了。
使用方法:
加載數(shù)據(jù)
創(chuàng)建庫(kù)
mysql>create database tpcc10;
創(chuàng)建表:
shell>mysql tpcc10 < create_table.sql
添加外鍵:
shell>mysql tpcc10 < add_fkey_idx.sql
加載數(shù)據(jù):
1、單進(jìn)程加載:
shell>./tpcc_load 192.168.11.172 tpcc10 root pwd 300
|主機(jī)||數(shù)據(jù)庫(kù)||用戶||密碼||warehouse|
2、并發(fā)加載:(推薦,但需要修改一下)
shell>./load.sh tpcc300 300
|數(shù)據(jù)庫(kù)||warehouse|
3、測(cè)試
./tpcc_start -h292.168.11.172 -d tpcc -u root -p 'pwd' -w 10 -c 10 -r 10 -l 60 -i 10 -f /mnt/hgfs/mysql/tpcc100_2013522.txt
***************************************
*** ###easy### TPC-C Load Generator ***
***************************************
option h with value '192.168.11.172'
option d with value 'tpcc'
option u with value 'root'
option p with value 'pwd'
option w with value '1'
option c with value '100'
option r with value '120'
option l with value '60'
option i with value '10'
option f with value '/mnt/hgfs/mysql/tpcc100_2013522.txt'
<Parameters>
[server]: 192.168.11.172
[port]: 3306
[DBname]: tpcc
[user]: root
[pass]: pwd
[warehouse]: 1
[connection]: 100
[rampup]: 120 (sec.)
[measure]: 60 (sec.)
RAMP-UP TIME.(120 sec.)
MEASURING START.
10, 245(77):10.923|28.902, 242(0):3.677|10.796, 25(0):1.579|2.198, 24(0):17.451|21.047, 25(4):19.999|33.776
20, 262(75):9.070|11.917, 263(0):3.407|4.716, 26(0):1.608|1.776, 27(0):11.347|16.408, 26(1):19.166|21.018
30, 247(90):11.130|14.131, 241(0):2.367|2.654, 24(0):0.960|1.095, 24(0):9.308|16.538, 25(3):19.999|24.874
40, 237(69):11.840|13.009, 239(1):3.638|7.245, 24(0):0.692|0.773, 23(0):8.756|10.456, 23(1):19.527|20.495
50, 252(69):10.548|17.925, 256(0):2.652|2.893, 26(0):1.177|3.579, 27(0):14.648|15.018, 25(4):19.999|26.398
60, 256(78):9.323|11.328, 251(1):3.895|5.380, 25(0):0.785|1.542, 25(0):11.382|15.829, 26(0):18.481|18.855
STOPPING THREADS....................................................................................................
<Raw Results>
[0] sc:1041 lt:458 rt:0 fl:0
[1] sc:1490 lt:2 rt:0 fl:0
[2] sc:150 lt:0 rt:0 fl:0
[3] sc:150 lt:0 rt:0 fl:0
[4] sc:137 lt:13 rt:0 fl:0
in 60 sec.
<Raw Results2(sum ver.)>
[0] sc:1041 lt:458 rt:0 fl:0
[1] sc:1490 lt:2 rt:0 fl:0
[2] sc:150 lt:0 rt:0 fl:0
[3] sc:150 lt:0 rt:0 fl:0
[4] sc:137 lt:13 rt:0 fl:0
<Constraint Check> (all must be [OK])
[transaction percentage]
Payment: 43.36% (>=43.0%) [OK]
Order-Status: 4.36% (>= 4.0%) [OK]
Delivery: 4.36% (>= 4.0%) [OK]
Stock-Level: 4.36% (>= 4.0%) [OK]
[response time (at least 90% passed)]
New-Order: 69.45% [NG] *
Payment: 99.87% [OK]
Order-Status: 100.00% [OK]
Delivery: 100.00% [OK]
Stock-Level: 91.33% [OK]
<TpmC>
1499.000 TpmC
關(guān)于Tpcc的概念請(qǐng)參見(jiàn)http://baike.baidu.com/view/2776305.htm
這里把測(cè)試用例介紹貼一下
TPC-C測(cè)試用到的模型是一個(gè)大型的商品批發(fā)銷售公司,它擁有若干個(gè)分布在不同區(qū)域的商品倉(cāng)庫(kù)。當(dāng)業(yè)務(wù)擴(kuò)展的時(shí)候,公司將添加新的倉(cāng)庫(kù)。
每個(gè)倉(cāng)庫(kù)負(fù)責(zé)為10個(gè)銷售點(diǎn)供貨,其中每個(gè)銷售點(diǎn)為3000個(gè)客戶提供服務(wù),每個(gè)客戶提交的訂單中,平均每個(gè)訂單有10項(xiàng)產(chǎn)品,
所有訂單中約1%的產(chǎn)品在其直接所屬的倉(cāng)庫(kù)中沒(méi)有存貨,必須由其他區(qū)域的倉(cāng)庫(kù)來(lái)供貨。同時(shí),每個(gè)倉(cāng)庫(kù)都要維護(hù)公司銷售的100000種商品的庫(kù)存記錄。
四、 The MySQL Benchmark Suite
這個(gè)測(cè)試工具是隨著MySQL綁定發(fā)行的,基于Perl語(yǔ)言和其中的兩個(gè)模塊:DBI和Benchmark。如果有需要,它支持所有支持DBI驅(qū)動(dòng)的數(shù)據(jù)庫(kù)??梢酝ㄟ^(guò)修改bench-init.pl的選項(xiàng)以符合需要。另外提醒的是,它不支持多CPU。
進(jìn)行測(cè)試時(shí),執(zhí)行run-all-tests腳本,具體的命令選項(xiàng)請(qǐng)看README。
五、 MySQL super-smack
這是一個(gè)強(qiáng)大的廣受贊譽(yù)的壓力測(cè)試工具,支持MySQL和PostgreSQL。
http://jeremy.zawodny.com/mysql/super-smack/
安裝很簡(jiǎn)單,請(qǐng)先仔細(xì)閱讀目錄里的指導(dǎo)文件。
Preparing test data
做測(cè)試時(shí),最好用自己的數(shù)據(jù)。因?yàn)槭褂谜鎸?shí)的數(shù)據(jù),使測(cè)試變得接近現(xiàn)實(shí)和客觀。
Configuration
smack的文件設(shè)置,看起來(lái)很簡(jiǎn)單。
六、MyBench: A Home-Grown Solution
MyBench一種基于Perl語(yǔ)言易于擴(kuò)展的測(cè)試工具。
對(duì)于上文關(guān)于mysql性能測(cè)試可以使用哪幾種工具,大家覺(jué)得是自己想要的嗎?如果想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。
網(wǎng)站名稱:mysql性能測(cè)試可以使用哪幾種工具
標(biāo)題網(wǎng)址:http://jinyejixie.com/article30/psieso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、App設(shè)計(jì)、面包屑導(dǎo)航、網(wǎng)站設(shè)計(jì)公司、云服務(wù)器、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)