程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysqlslap MySQL壓力測試對象 簡略教程

Mysqlslap MySQL壓力測試對象 簡略教程

編輯:MySQL綜合教程

Mysqlslap MySQL壓力測試對象 簡略教程。本站提示廣大學習愛好者:(Mysqlslap MySQL壓力測試對象 簡略教程)文章只能為提供參考,不一定能成為您想要的結果。以下是Mysqlslap MySQL壓力測試對象 簡略教程正文


MySQL從5.1.4版開端帶有一個壓力測試對象mysqlslap,經由過程模仿多個並發客戶端拜訪mysql來履行測試,應用起來異常的簡略。經由過程mysqlslap –help可以取得可用的選項,這裡列一些重要的參數,更具體的解釋參考官方手冊。


–auto-generate-sql, -a
主動生成測試表和數據

–auto-generate-sql-load-type=type
測試語句的類型。取值包含:read,key,write,update和mixed(默許)。

–number-char-cols=N, -x N
主動生成的測試表中包括若干個字符類型的列,默許1

–number-int-cols=N, -y N
主動生成的測試表中包括若干個數字類型的列,默許1

–number-of-queries=N
總的測試查詢次數(並發客戶數×每客戶查詢次數)

–query=name,-q
應用自界說劇本履行測試,例如可以挪用自界說的一個存儲進程或許sql語句來履行測試。

–create-schema
測試的schema,MySQL中schema也就是database

–commint=N
若干條DML後提交一次

–compress, -C
假如辦事器和客戶端支撐都緊縮,則緊縮信息傳遞

–concurrency=N, -c N
並發量,也就是模仿若干個客戶端同時履行select。可指定多個值,以逗號或許–delimiter參數指定的值做為分隔符

–engine=engine_name, -e engine_name
創立測試表所應用的存儲引擎,可指定多個

–iterations=N, -i N
測試履行的迭代次數

–detach=N
履行N條語句後斷開重連

–debug-info, -T
打印內存和CPU的信息

–only-print
只打印測試語句而不現實履行


它的應用語法以下:
shell>/usr/local/mysql/bin/mysqlslap [options]

經常使用參數【options】具體引見:
--concurrency代表並發數目,多個可以用逗號離隔。例如:--concurrency=50,200,500
--engines代表要測試的引擎,可以有多個,用分隔符離隔。例如:--engines=myisam,innodb,memory
--iterations代表要在分歧並發情況下,各自運轉測試若干次。
--auto-generate-sql 代表用mysqlslap對象本身生成的SQL劇本來測試並發壓力。
--auto-generate-sql-add-auto-increment 代表對生成的表主動添加auto_increment列,從5.1.18版本開端,
--auto-generate-sql-load-type 代表要測試的情況是讀操作照樣寫操作照樣二者混雜的(read,write,update,mixed)
--number-of-queries 代表總共要運轉若干條查詢。
--debug-info 代表要額定輸入CPU和內存的相干信息。
--number-int-cols 代表現例表中的INTEGER類型的屬性有幾個。
--number-char-cols代表現例表中的vachar類型的屬性有幾個。
--create-schema 代表自界說的測試庫稱號。
--query 代表自界說的測試SQL劇本。

解釋:

測試的進程須要生成測試表,拔出測試數據,這個mysqlslap可以主動生成,默許生成一個mysqlslap的schema,假如曾經存在則先刪除。可以用-only-print來打印現實的測試進程,全部測試完成後不會在數據庫中留下陳跡。


試驗步調:

演習一:
單線程測試。測試做了甚麼。
>./bin/mysqlslap -a -uroot -p111111
多線程測試。應用--concurrency來模仿並發銜接。
> ./bin/mysqlslap -a -c 100 -uroot -p111111
迭代測試。用於須要屢次履行測試獲得均勻值。
> ./bin/mysqlslap -a -i 10 -uroot -p111111

演習二:
> ./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

> ./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


演習三:
履行一次測試,分離50和100個並發,履行1000次總查詢:
> ./bin/mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --debug-info -uroot -p111111

50和100個並發分離獲得一次測試成果(Benchmark),並發數越多,履行完一切查詢的時光越長。為了精確起見,可以多迭代測試幾回:
> ./bin/mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --debug-info -uroot -p111111

測試同時分歧的存儲引擎的機能停止比較:
>./bin/mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --engine=myisam,innodb --debug-info -uroot -p111111
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved