標籤:mysql mysqlslap壓力測試用例
A 測試案例
1 唯寫壓力測試:
用例:自動建立表 寫入一百萬條資料 用戶端並發500 測試innodb儲存引擎
命令:mysqlslap --auto-generate-sql-add-autoincrement -a --number-of-queries=1000000 --number-char-cols=4 --number-int-cols=4 --engine=innodb --debug-info --concurrency=1000 -uroot -ppass -hmysql_ip --auto-generate-sql-load-type=write
測試結果:
Benchmark
Running for engine innodb
Average number of seconds to run all queries: 65.679 seconds
Minimum number of seconds to run all queries: 65.679 seconds
Maximum number of seconds to run all queries: 65.679 seconds
Number of clients running queries: 1000
Average number of queries per client: 1000
User time 2.19, System time 8.72
Maximum resident set size 55156, Integral resident set size 0
Non-physical pagefaults 9038, Physical pagefaults 0, Swaps 0
Blocks in 0 out 0, Messages in 0 out 0, Signals 0
Voluntary context switches 1701179, Involuntary context switches 130
2 唯讀壓力測試:
用例:自動建立測試表 (測試表會自動寫入100條資料 )全表查詢(類似select * from testtable;)一百萬次 用戶端並發1000 測試innodb 儲存引擎
命令:mysqlslap --auto-generate-sql-add-autoincrement -a --number-char-cols=4 --number-int-cols=4 --engine=innodb --debug-info --concurrency=1000 -urootchar-cols=4 --number-int-cols=4 --engine=innodb --debug-info --concurrency=1000 -es=1000000 [[email protected] ~]# mysqlslap --auto-generate-sql-add-autoincrement -a --number-char-cols=4 --number-int-cols=4 --engine=innodb --debug-info --concurrency=1000 -uroot -ppass -hhostname --auto-generate-sql-load-type=read --number-of-queries=1000000
測試結果:
Benchmark
Running for engine innodb
Average number of seconds to run all queries: 472.059 seconds
Minimum number of seconds to run all queries: 472.059 seconds
Maximum number of seconds to run all queries: 472.059 seconds
Number of clients running queries: 1000
Average number of queries per client: 1000
User time 76.06, System time 79.68
Maximum resident set size 121716, Integral resident set size 0
Non-physical pagefaults 61682, Physical pagefaults 0, Swaps 0
Blocks in 0 out 0, Messages in 0 out 0, Signals 0
Voluntary context switches 15308027, Involuntary context switches 82
3 讀寫混合測試:
用例:讀寫混合測試一百萬條語句, 用戶端並發1000 測試innodb儲存引擎 。select 語句非全表查詢,包含條件表達類似(WHERE id = ‘xxx‘;)
命令: mysqlslap --auto-generate-sql-add-autoincrement -a --number-char-cols=4 --number-int-cols=4 --engine=innodb --debug-info --concurrency=1000 -uroot -ppass -hmysql_ip --auto-generate-sql-load-type=mixed --number-of-queries=1000000
測試結果:
Benchmark
Running for engine innodb
Average number of seconds to run all queries: 45.507 seconds
Minimum number of seconds to run all queries: 45.507 seconds
Maximum number of seconds to run all queries: 45.507 seconds
Number of clients running queries: 1000
Average number of queries per client: 1000
User time 4.41, System time 7.64
Maximum resident set size 56900, Integral resident set size 0
Non-physical pagefaults 9601, Physical pagefaults 0, Swaps 0
Blocks in 0 out 0, Messages in 0 out 0, Signals 0
總結:讀壓力測試和讀寫混合壓力測試中使用的select語句不一樣,導致結果相差很大。讀壓力測試是全表所有記錄都查詢出來,而讀寫混合測試中的select 語句使用了條件過濾。具體可以再原有命令中增加--only-print參數來列印實際測試過程使用的語句。
B 參數說明:
引用自http://www.ha97.com/5182.html ,對--number-of-queries解釋進行修正。
--auto-generate-sql, -a 自動產生測試表和資料,表示用mysqlslap工具自己產生的SQL指令碼來測試並發壓力。
--auto-generate-sql-load-type=type 測試語句的類型。代表要測試的環境是讀操作還是寫操作還是兩者混合的。取值包括:read,key,write,update和mixed(預設)。
--auto-generate-sql-add-auto-increment 代表對產生的表自動添加auto_increment列,從5.1.18版本開始支援。
--number-char-cols=N, -x N 自動產生的測試表中包含多少個字元類型的列,預設1
--number-int-cols=N, -y N 自動產生的測試表中包含多少個數字類型的列,預設1
--number-of-queries=N 總的測試的sql語句次數(並發客戶數×每客戶查詢次數)
--query=name,-q 使用自訂指令碼執行測試,例如可以調用自訂的一個預存程序或者sql語句來執行測試。
--create-schema 代表自訂的測試庫名稱,測試的schema,MySQL中schema也就是database。
--commint=N 多少條DML後提交一次。
--compress, -C 如果伺服器和用戶端支援都壓縮,則壓縮資訊傳遞。
--concurrency=N, -c N 表示並發量,也就是類比多少個用戶端同時執行select。可指定多個值,以逗號或者--delimiter參數指定的值做為分隔字元。例如:--concurrency=100,200,500。
--engine=engine_name, -e engine_name 代表要測試的引擎,可以有多個,用分隔字元隔開。例如:--engines=myisam,innodb。
--iterations=N, -i N 測試執行的迭代次數,代表要在不同並發環境下,各自運行測試多少次。
--only-print 只列印測試語句而不實際執行。
--detach=N 執行N條語句後斷開重連。
--debug-info, -T 列印記憶體和CPU的相關資訊。
本文出自 “我博故我在” 部落格,請務必保留此出處http://encoding.blog.51cto.com/1403836/1745390
mysql mysqlslap壓力測試用例