MySQL壓測工具mysqlslap的介紹與使用_MySQL

一、Mysqlslap介紹

mysqlslap是mysql5.1之后自帶的benchmark基準測試工具,類似apache bench負載產(chǎn)生工具,生成schema,裝載數(shù)據(jù),執(zhí)行benckmark和查詢數(shù)據(jù),語法簡單,靈活,容易使用。該工具可以模擬多個客戶端同時并發(fā)的向服務(wù)器發(fā)出查詢更新,給出了性能測試數(shù)據(jù)而且提供了多種引擎的性能比較。mysqlslap為mysql性能優(yōu)化前后提供了直觀的驗證依據(jù),筆者建議系統(tǒng)運維人員應該掌握一些常見的壓力測試工具,這樣才能較為準確的掌握線上系統(tǒng)能夠支撐的用戶流量上限及其抗壓性等問題。

二、參數(shù)介紹

 --auto-generate-sql  -a           自動生成MySQL測試語句 --auto-generate-sql-add-autoincrement     添加AUTO_INCREMENT字段 --auto-generate-sql-execute-number=#     查詢的個數(shù) --auto-generate-sql-guid-primary       添加GUID字段 --auto-generate-sql-load-type=name      mixed:混合、update:更新、write:寫入、key:讀主鍵、read:查詢 --auto-generate-sql-secondary-indexes=#    設(shè)置索引字段個數(shù) --auto-generate-sql-unique-query-number=#   生成N條不同的query sql語句 --auto-generate-sql-unique-write-number=#   生成N條不同的write sql語句 --auto-generate-sql-write-number=#      每個線程write sql語句數(shù)量 --commit=#                     設(shè)置每多少條sql語句提交一次 --compress  -C                 啟用壓縮協(xié)議 --concurrency=#  -c              客戶端數(shù)量(并發(fā)量) --create=name                   測試的SQL語句或文件 --create-schema=name               測試的數(shù)據(jù)名 --csv=name                  生產(chǎn)CSV格式數(shù)據(jù)文件 --debug  -#                  寫調(diào)試日志(windows不可用) 如:mysqlslap -a -#"d:t:o,c:/debug.txt" --debug-check                   測試后打印調(diào)試信息(windows不可用) --debug-info  -T              打印內(nèi)存和CPU的相關(guān)信息 --default-auth=plugin             驗證插件 --delimiter=str  -F             語句分隔符默認是 ; --detach=#                  執(zhí)行N條語句后斷開重連 --enable-cleartext-plugin           啟用明文身份驗證插件 --engine=engine_name  -e          測試引擎 如:mysqlslap -e"myisam"或-e"myisam,innodb" --help                    幫助信息 --host=host_name  -h            數(shù)據(jù)庫host --iterations=#  -i             重復運行的次數(shù) --login-path=name               登陸配置文件 --no-drop                   測試后不刪除schema --number-char-cols=#  -x          設(shè)置VARCHAR類型字段數(shù)量 --number-int-cols=#  -y           設(shè)置INT類型字段數(shù)量 --number-of-queries=#             每個客戶端運行sql語句數(shù)量 --only-print                 僅顯示將被運行的SQL語句--delimiter選項影響 --password=password  -p           數(shù)據(jù)庫密碼 --pipe                    啟用管道 --plugin-dir=path               插件目錄 --port=port_num  -P             數(shù)據(jù)庫端口 --post-query=value              測試后執(zhí)行的SQL語句 --post-system=str               測試后執(zhí)行的系統(tǒng)語句 --pre-query=value               測試前執(zhí)行的SQL語句 --pre-system=str               測試前執(zhí)行的系統(tǒng)語句 --protocol=type                鏈接協(xié)議 tcp, socket, pipe --query=value  -q              測試的SQL語句 如:mysqlslap --query="SELECT * FROM t1" --secure-auth                 不要發(fā)送密碼到服務(wù)器 --silent  -s                不顯示測試(靜音測試) --socket=path  -S              連接服務(wù)器的socket --ssl-ca=file_name      --ssl-capath=dir_name      --ssl-cert=file_name      --ssl-cipher=cipher_list      --ssl-crl=file_name      --ssl-crlpath=dir_name      --ssl-key=file_name      --ssl-verify-server-cert      --user=user_name  -u            數(shù)據(jù)庫用戶名 --verbose  -v                輸出更多的信息 --version  -V                版本信息

三、簡單示例

1.分別測試100、200、400個并發(fā)執(zhí)行10w條SQL。

 mysqlslap -uroot -proot -h192.168.10.43 -P3306 --create-schema=chenmh --delimiter=";" --query="call pro_auto_select_pri" --concurrency=100,200,400 --number-of-queries=100000 

注意:報告輸出的時間主要體現(xiàn)在執(zhí)行完–number-of-queries指定的查詢所花的時間,這里分別是100個并發(fā)、200個并發(fā)、400個并發(fā)執(zhí)行10w條call所花的時間。默認不指定–iterations代表重復執(zhí)行一次操作,如果重復執(zhí)行N此輸出的時間也是反應的是單次循環(huán)所花的時間。

2.生成csv

 mysqlslap -a -e"myisam,innodb" --csv="c:/a.csv"

四、總結(jié)

mysqlslap主要還是針對數(shù)據(jù)庫的性能測試,并且自動測試功能有限,而且生產(chǎn)報表也不夠詳細,所以建議還是使用sysbench來做基準測試。以上就是關(guān)于mysqlslap的全部介紹,希望對大家的學習或者工作帶來一定的幫助,如果有疑問大家可以留言交流。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊9 分享