mysqlslap是MySQL5.1之後自帶的benchmark基準測試工具,該工具可以模拟多個用戶端同時并發的向伺服器發出查詢更新,給出了性能測試資料而且提供了多種引擎的性能比較。
使用方式:
--concurrency 并發數量 (可逗号隔開),例如:concurrency=10,50,100 并發連接配接線程數是10,50,100
--engines 要測試的存儲引擎,逗号隔開
--iterations 運作多少次後,得到結果;
--auto-generate-sql 自動生成SQL腳本來測試;
--auto-generate-sql-load-type 測試類型是read還是write,還是mixed;(可以使用--only-print 檢視到底是哪些SQL語句)
--number-of-queries 執行查詢的次數,
--debug-info 輸出CPU、記憶體等系統相關資訊
--number-int-cols 測試表int字段類型的數量;
--auto-generate-sql-add-autoincrement 對生成的測試表 自動生成含有auto_increment屬性的列;
--number-char-cols 測試表的char類型字段的數量;
--create-schema = db 建立測試的資料庫;
--query 使用自定義腳本進行測試, 可以是一個存儲過程或者SQL語句來執行;
--only-print 隻列印測試過程中涉及到的SQL語句,不真正的執行;
舉例:
測試200個并發寫入性能,測試20次,自動生成SQL腳本,測試表包含35個int字段,20個char字段,測試引擎分别為innodb,myisam;每次執行3000個query;
1
<code>.</code><code>/bin/mysqlslap</code> <code>--socket=</code><code>/usr/local/mysql/mysql</code><code>.sock --port=3306 --concurrency=200 --iterations=20 --auto-generate-sql --auto-generate-sql-load-</code><code>type</code><code>=write --auto-generate-sql-add-autoincrement --number-int-cols=35 --number-char-cols=20 --engine=innodb,myisam --create-schema=sysbench --number-of-queries=3000 --debug-info</code>
結果為:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<code>Benchmark</code>
<code> </code><code>Running </code><code>for</code> <code>engine innodb</code>
<code> </code><code>Average number of seconds to run all queries: 6.385 seconds</code>
<code> </code><code>Minimum number of seconds to run all queries: 3.021 seconds</code>
<code> </code><code>Maximum number of seconds to run all queries: 12.969 seconds</code>
<code> </code><code>Number of clients running queries: 200</code>
<code> </code><code>Average number of queries per client: 15</code>
<code> </code><code>Running </code><code>for</code> <code>engine myisam</code>
<code> </code><code>Average number of seconds to run all queries: 0.621 seconds</code>
<code> </code><code>Minimum number of seconds to run all queries: 0.442 seconds</code>
<code> </code><code>Maximum number of seconds to run all queries: 1.134 seconds</code>
<code>User </code><code>time</code> <code>0.66, System </code><code>time</code> <code>1.97</code>
<code>Maximum resident </code><code>set</code> <code>size 10060, Integral resident </code><code>set</code> <code>size 0</code>
<code>Non-physical pagefaults 50486, Physical pagefaults 5, Swaps 0</code>
<code>Blocks </code><code>in</code> <code>584 out 96, Messages </code><code>in</code> <code>0 out 0, Signals 0</code>
<code>Voluntary context switches 298373, Involuntary context switches 1469</code>
自定義SQL測試腳本:
<code>mysqlslap --create=</code><code>/yourpath/test</code><code>.sql --query=</code><code>/yourpath/test1</code><code>.sql --concurrency=50,100,200 --iterations=20 --engine=myisam,innodb</code>
<code></code>
本文轉自 位鵬飛 51CTO部落格,原文連結:http://blog.51cto.com/weipengfei/1249295,如需轉載請自行聯系原作者