《Mysql入門使用sysbench來測(cè)試MySQL性能的詳細(xì)教程》要點(diǎn):
本文介紹了Mysql入門使用sysbench來測(cè)試MySQL性能的詳細(xì)教程,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
sysbench是一個(gè)模塊化的、跨平臺(tái)、多線程基準(zhǔn)測(cè)試工具,主要用于評(píng)估測(cè)試各種不同系統(tǒng)參數(shù)下的數(shù)據(jù)庫負(fù)載情況.
目前sysbench代碼托管在launchpad上,項(xiàng)目地址:https://launchpad.net/sysbench(本來的官網(wǎng) http://sysbench.sourceforge.net 已經(jīng)不可用),源碼采用bazaar管理.MYSQL應(yīng)用
一、 下載源碼包
安裝epel包后以便安裝bzr客戶端:MYSQL利用
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
然后就可以開端安裝bzr客戶端了:MYSQL應(yīng)用
yum install bzr
之后,就可以開端用bzr客戶端下載tpcc-mysql源碼了.MYSQL應(yīng)用
cd /tmp bzr branch lp:sysbench
MySQL中文網(wǎng)便捷下載地址:MYSQL利用
http://imysql.com/wp-content/uploads/2014/09/sysbench-0.4.12-1.1.tgzMYSQL利用
sysbench支持以下幾種測(cè)試模式:MYSQL利用
1、CPU運(yùn)算性能
2、磁盤IO性能
3、調(diào)度法式性能
4、內(nèi)存分配及傳輸速度
5、POSIX線程性能
6、數(shù)據(jù)庫性能(OLTP基準(zhǔn)測(cè)試)
目前sysbench主要支持 mysql,drizzle,pgsql,oracle 等幾種數(shù)據(jù)庫.MYSQL應(yīng)用
二、編譯安裝
編譯非常簡(jiǎn)單,可參考 README 文檔,簡(jiǎn)單步調(diào)如下:MYSQL應(yīng)用
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 沒有報(bào)錯(cuò),就會(huì)在 sysbench 目錄下生成二進(jìn)制命令行對(duì)象 sysbench ls -l sysbench -rwxr-xr-x 1 root root 3293186 Sep 21 16:24 sysbench
三、OLTP測(cè)試前準(zhǔn)備
初始化測(cè)試庫環(huán)境(總共10個(gè)測(cè)試表,每個(gè)表 100000 條記錄,填充隨機(jī)生成的數(shù)據(jù)):MYSQL應(yīng)用
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
關(guān)于這幾個(gè)參數(shù)的解釋:MYSQL利用
--test=tests/db/oltp.lua 表現(xiàn)調(diào)用 tests/db/oltp.lua 腳本進(jìn)行 oltp 模式測(cè)試
--oltp_tables_count=10 表現(xiàn)會(huì)生成 10 個(gè)測(cè)試表
--oltp-table-size=100000 表現(xiàn)每個(gè)測(cè)試表填充數(shù)據(jù)量為 100000
--rand-init=on 表現(xiàn)每個(gè)測(cè)試表都是用隨機(jī)數(shù)據(jù)來填充的MYSQL應(yīng)用
如果在本機(jī),也可以使用 Cmysql-socket 指定 socket 文件來連接.加載測(cè)試數(shù)據(jù)時(shí)長視數(shù)據(jù)量而定,若過程比擬久需要稍加耐心等待.MYSQL應(yīng)用
真實(shí)測(cè)試場(chǎng)景中,數(shù)據(jù)表建議不低于10個(gè),單表數(shù)據(jù)量不低于500萬行,當(dāng)然了,要視服務(wù)器硬件配置而定.如果是配備了SSD或者PCIE SSD這種高IOPS設(shè)備的話,則建議單表數(shù)據(jù)量最少不低于1億行.MYSQL利用
四、進(jìn)行OLTP測(cè)試MYSQL利用
在上面初始化數(shù)據(jù)參數(shù)的根基上,再增加一些參數(shù),即可開始進(jìn)行測(cè)試了:MYSQL應(yīng)用
./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
幾個(gè)選項(xiàng)稍微解釋下MYSQL利用
--num-threads=8 表示發(fā)起 8個(gè)并發(fā)連接
--oltp-read-only=off 表示不要進(jìn)行只讀測(cè)試,也就是會(huì)采用讀寫混合模式測(cè)試
--report-interval=10 表示每10秒輸出一次測(cè)試進(jìn)度報(bào)告
--rand-type=uniform 表示隨機(jī)類型為固定模式,其他幾個(gè)可選隨機(jī)模式:uniform(固定),gaussian(高斯),special(特定的),pareto(帕累托)
--max-time=120 表示最大執(zhí)行時(shí)長為 120秒
--max-requests=0 表示總哀求數(shù)為 0,因?yàn)樯厦嬉呀?jīng)定義了總執(zhí)行時(shí)長,所以總哀求數(shù)可以設(shè)定為 0;也可以只設(shè)定總哀求數(shù),不設(shè)定最大執(zhí)行時(shí)長
--percentile=99 表示設(shè)定采樣比例,默認(rèn)是 95%,即丟棄1%的長哀求,在剩余的99%里取最大值MYSQL應(yīng)用
即:模擬 對(duì)10個(gè)表并發(fā)OLTP測(cè)試,每個(gè)表1000萬行記錄,連續(xù)壓測(cè)時(shí)間為 1小時(shí).MYSQL應(yīng)用
真實(shí)測(cè)試場(chǎng)景中,建議持續(xù)壓測(cè)時(shí)長不小于30分鐘,不然測(cè)試數(shù)據(jù)可能不具參考意義.MYSQL應(yīng)用
五、測(cè)試成果解讀:MYSQL應(yīng)用
測(cè)試成果解讀如下:MYSQL應(yīng)用
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 ignoredMYSQL利用
Threads started!
-- 每10秒鐘申報(bào)一次測(cè)試結(jié)果,tps、每秒讀、每秒寫、99%以上的響應(yīng)時(shí)長統(tǒng)計(jì)
[? 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??? -- 讀總數(shù)
??????? write:?????????????????????????? 268064??? -- 寫總數(shù)
??????? other:?????????????????????????? 134032??? -- 其他操作總數(shù)(SELECT、INSERT、UPDATE、DELETE之外的操作,例如COMMIT等)
??????? total:?????????????????????????? 1340320??? -- 全部總數(shù)
??? transactions:??????????????????????? 67016? (1116.83 per sec.)??? -- 總事務(wù)數(shù)(每秒事務(wù)數(shù))
??? deadlocks:?????????????????????????? 0????? (0.00 per sec.)??? -- 發(fā)生死鎖總數(shù)
??? read/write requests:???????????????? 1206288 (20103.01 per sec.)??? -- 讀寫總數(shù)(每秒讀寫次數(shù))
??? other operations:??????????????????? 134032 (2233.67 per sec.)??? -- 其他操作總數(shù)(每秒其他操作次數(shù))MYSQL應(yīng)用
General statistics:??? -- 一些統(tǒng)計(jì)結(jié)果
??? total time:????????????????????????? 60.0053s??? -- 總耗時(shí)
??? total number of events:????????????? 67016??? -- 共產(chǎn)生多少事務(wù)數(shù)
??? total time taken by event execution: 479.8171s??? -- 所有事務(wù)耗時(shí)相加(不考慮并行因素)
??? response time:??? -- 響應(yīng)時(shí)長統(tǒng)計(jì)
???????? min:????????????????????????????????? 4.27ms??? -- 最小耗時(shí)
???????? avg:????????????????????????????????? 7.16ms??? -- 平均耗時(shí)
???????? max:???????????????????????????????? 13.80ms??? -- 最長耗時(shí)
???????? approx.? 99 percentile:?????????????? 9.88ms??? -- 超過99%平均耗時(shí)MYSQL應(yīng)用
Threads fairness:
??? events (avg/stddev):?????????? 8377.0000/44.33
??? execution time (avg/stddev):?? 59.9771/0.00MYSQL利用
《Mysql入門使用sysbench來測(cè)試MySQL性能的詳細(xì)教程》是否對(duì)您有啟發(fā),歡迎查看更多與《Mysql入門使用sysbench來測(cè)試MySQL性能的詳細(xì)教程》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/8055.html