mysqlslap壓力測(cè)試介紹
mysqlslap是一款壓力測(cè)試工具,它會(huì)模擬多個(gè)客戶端訪問MySQL服務(wù),記錄各個(gè)階段的消耗時(shí)間。
主要參數(shù)如下:
--host=host_name, -h host_name MySQL
服務(wù)器所在的主機(jī)
--user=user_name, -u user_name 連接到MySQL服務(wù)器所使用的用戶名
--password[=password], -p[password] 連接到MySQL服務(wù)器所使用的密碼
--query=value, -q value 執(zhí)行的SQL語句
--number-of-queries=N 每個(gè)客戶端執(zhí)行SQL語句的次數(shù)。需要注意的是,每條SQL之間的;都會(huì)算作一次,例如--query="use test;insert into t values(null)"就是2次。
mysqlslap --delimiter=";" --number-of-queries=10 --query="use test;insert into t values(null)" 這個(gè)語句會(huì)執(zhí)行5次INSERT操作
--concurrency=N, -c N 模擬客戶端的并行度
--iterations=N, -i N 執(zhí)行壓力測(cè)試的次數(shù)
--create-schema=value 在哪個(gè)用戶下執(zhí)行壓力測(cè)試
--commit=N 執(zhí)行多少條SQL進(jìn)行提交,默認(rèn)沒有提交
--auto-generate-sql, -a 當(dāng)沒有指定SQL語句的時(shí)候,自動(dòng)生成SQL語句
--number-char-cols=N, -x N 自動(dòng)生成SQL語句中,VARCHAR字段的個(gè)數(shù)
--number-int-cols=N, -y N 自動(dòng)生成SQL語句中,INT字段的個(gè)數(shù)
--auto-generate-sql-add-autoincrement 自動(dòng)生成SQL語句所使用的表中,增加一個(gè)自增序列
--auto-generate-sql-execute-number=N 自動(dòng)生成SQL語句的查詢次數(shù)
--auto-generate-sql-guid-primary 增加一個(gè)GUID為基礎(chǔ)的主鍵到自動(dòng)生成的表中
--auto-generate-sql-load-type=type 指定壓力測(cè)試的類型??梢栽O(shè)置的類型有read (表掃描)、write (插入語句)、key (讀主鍵)、update (更新主鍵)或mixed(一半插入操作、一半查詢操作),默認(rèn)類型是mixed
--auto-generate-sql-secondary-indexes=N 指定自動(dòng)生成的表中,非主鍵索引的數(shù)量,默認(rèn)是沒有創(chuàng)建非主鍵索引
--auto-generate-sql-unique-query-number=N 指定對(duì)自動(dòng)生成的表執(zhí)行查詢的不同個(gè)數(shù),默認(rèn)值是10
--auto-generate-sql-unique-write-number=N 指定對(duì)自動(dòng)生成的表執(zhí)行寫操作的不同個(gè)數(shù),默認(rèn)值是10
示例:
使用neo用戶登錄,模擬30個(gè)用戶連接,共執(zhí)行10萬次請(qǐng)求
[root@localhost ~]# /software/bin/mysqlslap -h 192.168.78.141 --user=system --password=system --query="use fire;select * from test2" --number-of-queries=100000 -c 30 -i 10 --create-schema=neo
--執(zhí)行結(jié)果
Benchmark
Average number of seconds to run all queries: 6.779 seconds
Minimum number of seconds to run all queries: 6.607 seconds
Maximum number of seconds to run all queries: 7.310 seconds
Number of clients running queries: 30
Average number of queries per client: 3333
使用自動(dòng)生成SQL方式,模擬30個(gè)用戶并發(fā)連接,執(zhí)行10000次不同的查詢,每執(zhí)行10000條SQL語句進(jìn)行事務(wù)提交
[root@localhost ~]# /software/bin/mysqlslap -h 192.168.78.141 --user=system --password=system --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-execute-number=100000 --
commit=10000 --create-schema=neo
Benchmark
Average number of seconds to run all queries: 16.332 seconds
Minimum number of seconds to run all queries: 16.332 seconds
Maximum number of seconds to run all queries: 16.332 seconds
Number of clients running queries: 1
Average number of queries per client: 100000