一、mysqlslap介紹
mysqlslap是mysql5.1之後自帶的benchmark基準測試工具,類似apache bench負載產生工具,生成schema,裝載資料,執行benckmark和查詢資料,語法簡單,靈活,容易使用。該工具可以模擬多個客戶端同時併發的向伺服器發出查詢更新,給出了效能測試資料而且提供了多種引擎的效能比較。mysqlslap為mysql效能優化前後提供了直觀的驗證依據,筆者建議系統運維人員應該掌握一些常見的壓力測試工具,這樣才能較為準確的掌握線上系統能夠支撐的使用者流量上限及其抗壓性等問題。
二、引數介紹
--auto-generate-sql -a 自動生成mysql測試語句
--auto-generate-sql-add-autoincrement 新增auto_increment欄位
--auto-generate-sql-execute-number=# 查詢的個數
--auto-generate-sql-guid-primary 新增guid欄位
--auto-generat程式設計客棧e-sql-load-type=name mixed:混合、update:更新、write:寫入、key:讀主鍵、read:查詢
--auto-generate-sql-secondary-indexes=# 設定索引字段個數
--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語句數量
--commit=# 設定每多少條sql語句提交一次
--compress -c 啟用壓縮協議
--concurrency=# -c 客戶端數量(併發量)
--create=name 測試的sql語句或檔案
--create-schema=name 測試的資料名
--csv=name 生產csv格式資料檔案
--debug -# 寫除錯日誌(windows不可用) 如:mysqlslap -a -#"d:t:o,c:/debug.txt"
--debug-check 測試後列印除錯資訊(windows不可用)
--debug-info -t 列印記憶體和cpu的相關資訊
--default-auth=plugin 驗證外掛程式
--delimiter=str -f 語句分隔符預設是 ;
--detach=# 執行n條語句後斷開重連
--enable-cleartext-plugin 啟用明文身份驗證外掛程式
--engine=engine_name -e 測試引擎 如:mysqlslap -e"myisam"或-e"myisam,innodb"
--help 幫助資訊
--host=host_name -h 資料庫host
--iterations=# -i 重複執行的次數
--login-path=name 登陸配置檔案
--no-drop 測試後不刪除schema
--number-char-cols=# -x www.cppcns.com 設定varchar型別字段數量
--number-int-cols=# -y 設定int型別字段數量
--number-of-queries=# 每個客戶端執行sql語句數量
--only-print 僅顯示將被執行的sql語句--delimiter選項影響
--password=password -p 資料庫密碼
--pipe 啟用管道
--plugin-dir=path 外掛程式目錄
--port=port_num -p 資料庫埠
--post-query=value 測試後執行的sql語句
--post-system=str 測試後執行的系統語句
--pre-query=value 測試前執行的sql語句
--pre-system=str 測試前執行的系統語句
--protocol=type 鏈結協議 tcp, socket, pipe
--query=value -q 測試的sql語句 如:my程式設計客棧sqlslap --query="select * from t1"
--secure-auth 不要傳送密碼到伺服器
--silent -s 不顯示測試(靜音測試)
--socket=程式設計客棧path -s 連線伺服器的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 資料庫使用者名稱
--verbose -v 輸出更多的資訊
--version -v 版本資訊
三、簡單示例
1.分別測試100、200、400個併發執行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
注意:報告輸出的時間主要體現在執行完–number-of-queries指定的查詢所花的時間,這裡分別是100個併發、200個併發、400個併發執行10w條call所花的時間。預設不指定–iterations代表重複執行一次操作,如果重複執行n此輸出的時間也是反應的是單次迴圈所花的時間。
2.生成csv
mysqlslap -a -e"myisam,innodb" --csv="c:/a.csv"
四、總結
web版本 開源壓測工具 免費壓測工具
很多的web應用在搭建伺服器完成後,為了讓搭建的服務能夠滿足使用者的訪問需求,通常需要測試自己應用的併發連線能力。需要使用一些壓測工具,本文介紹一些免費的開源的壓測工具,可以用於簡單的壓力測試 實驗均在linux系統下 1.ab工具 ab的全稱是apache bench,是apache自帶的網路壓力...
壓測 mysql關閉連線 MySQL 壓測
mysqlslap iterations 100 create schema test query query.sql number of queries 20000 delimiter concurrency 100 3.2.2 網路引數問題 問題描述 使用mysqlslap 壓測某個語句,當併發...
壓測工具(二)
安裝yum y install httpd tools基本用法使用方法 ab 可選的引數選項 需要進行壓測的url n 在測試會話中所執行的請求個數。預設時,僅執行乙個請求 c 一次產生的請求個數 t 測試所進行的最大秒數。其最大隱含值時 n 50000,它可以使對伺服器的測試限制在乙個固定的總時間...