本文章介紹一個(gè)mysql官方提供的Mysqlslap工具對(duì)mysql性能進(jìn)行測(cè)試,有需要的朋友可以參考本文章來(lái)測(cè)試你的mysql性能與負(fù)載.
Mysqlslap是從5.1.4版開(kāi)始的一個(gè)MySQL官方提供的壓力測(cè)試工具。通過(guò)模擬多個(gè)并發(fā)客戶端訪問(wèn)MySQL來(lái)執(zhí)行壓力測(cè)試,同時(shí)詳細(xì)的提供了“高負(fù)荷攻擊MySQL”的數(shù)據(jù)性能報(bào)告。并且能很好的對(duì)比多個(gè)存儲(chǔ)引擎在相同環(huán)境下的并發(fā)壓力性能差別。
它的使用語(yǔ)法如下:
shell>/usr/local/mysql/bin/mysqlslap [options]
常用參數(shù)【options】詳細(xì)介紹:
--concurrency代表并發(fā)數(shù)量,多個(gè)可以用逗號(hào)隔開(kāi)。例如:--concurrency=50,200,500
--engines代表要測(cè)試的引擎,可以有多個(gè),用分隔符隔開(kāi)。例如:--engines=myisam,innodb,memory
--iterations代表要在不同并發(fā)環(huán)境下,各自運(yùn)行測(cè)試多少次。
--auto-generate-sql 代表用mysqlslap工具自己生成的SQL腳本來(lái)測(cè)試并發(fā)壓力。
--auto-generate-sql-add-auto-increment 代表對(duì)生成的表自動(dòng)添加auto_increment列,從5.1.18版本開(kāi)始.
--auto-generate-sql-load-type 代表要測(cè)試的環(huán)境是讀操作還是寫(xiě)操作還是兩者混合的(read,write,update,mixed)
--number-of-queries 代表總共要運(yùn)行多少條查詢。
--debug-info 代表要額外輸出CPU以及內(nèi)存的相關(guān)信息。
--number-int-cols 代表示例表中的INTEGER類型的屬性有幾個(gè)。
--number-char-cols代表示例表中的vachar類型的屬性有幾個(gè)。
--create-schema 代表自定義的測(cè)試庫(kù)名稱。
--query 代表自定義的測(cè)試SQL腳本。
說(shuō)明:測(cè)試的過(guò)程需要生成測(cè)試表,插入測(cè)試數(shù)據(jù),這個(gè)mysqlslap可以自動(dòng)生成,默認(rèn)生成一個(gè)mysqlslap的schema,如果已經(jīng)存在則先刪除。可以用-only-print來(lái)打印實(shí)際的測(cè)試過(guò)程,整個(gè)測(cè)試完成后不會(huì)在數(shù)據(jù)庫(kù)中留下痕跡。
實(shí)驗(yàn)步驟:
練習(xí)一:單線程測(cè)試,測(cè)試做了什么.
>./bin/mysqlslap -a -uroot -p111111
多線程測(cè)試。使用--concurrency來(lái)模擬并發(fā)連接。
> ./bin/mysqlslap -a -c 100 -uroot -p111111
迭代測(cè)試,用于需要多次執(zhí)行測(cè)試得到平均值。
> ./bin/mysqlslap -a -i 10 -uroot -p111111
練習(xí)二:
- > ./bin/mysqlslap -auto-generate-sql-add-autoincrement -a -uroot -p111111
- > ./bin/mysqlslap -a -auto-generate-sql-load-type=read -uroot -p111111
- > ./bin/mysqlslap -a -auto-generate-secondary-indexes=3 -uroot -p111111
- > ./bin/mysqlslap -a -auto-generate-sql-write-number=1000 -uroot -p111111 --Vevb.com
- > ./bin/mysqlslap --create-schema world -q "select count(*) from City" -uroot -p111111
- > ./bin/mysqlslap -a -e innodb -uroot -p111111
- > ./bin/mysqlslap -a --number-of-queries=10 -uroot -p111111
練習(xí)三:
執(zhí)行一次測(cè)試,分別50和100個(gè)并發(fā),執(zhí)行1000次總查詢:
> ./bin/mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --debug-info -uroot -p111111
50和100個(gè)并發(fā)分別得到一次測(cè)試結(jié)果(Benchmark),并發(fā)數(shù)越多,執(zhí)行完所有查詢的時(shí)間越長(zhǎng),為了準(zhǔn)確起見(jiàn),可以多迭代測(cè)試幾次:
> ./bin/mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --debug-info -uroot -p111111
測(cè)試同時(shí)不同的存儲(chǔ)引擎的性能進(jìn)行對(duì)比:
>./bin/mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --engine=myisam,innodb --debug-info -uroot -p111111
新聞熱點(diǎn)
疑難解答
圖片精選