1. 程式人生 > >(總結)MySQL自帶的效能壓力測試工具mysqlslap詳解

(總結)MySQL自帶的效能壓力測試工具mysqlslap詳解

PS:今天一同事問我有木有比較靠譜的mysql壓力測試工具可用。其實mysql自帶就有一個叫mysqlslap的壓力測試工具,還是模擬的不錯的。下面舉例說說。mysqlslap是從5.1.4版開始的一個MySQL官方提供的壓力測試工具。通過模擬多個併發客戶端訪問MySQL來執行壓力測試,同時詳細的提供了“高負荷攻擊MySQL”的資料效能報告。並且能很好的對比多個儲存引擎在相同環境下的併發壓力效能差別。通過mysqlslap –help可以獲得可用的選項,這裡列一些主要的引數,更詳細的說明參考官方手冊。如果是系統自帶或者使用rpm包安裝的mysql,安裝了MySQL-client端的包就有mysqlslap這個工具。

下圖是執行mysqlslap -a -c 500 -i 10 -uroot -p123456測試時mysql的連線程序數:


使用語法如下:
# mysqlslap [options]

常用引數 [options] 詳細說明:

--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 總的測試查詢次數(併發客戶數×每客戶查詢次數)
--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的相關資訊。

說明:
測試的過程需要生成測試表,插入測試資料,這個mysqlslap可以自動生成,預設生成一個mysqlslap的schema,如果已經存在則先刪除。可以用--only-print來列印實際的測試過程,整個測試完成後不會在資料庫中留下痕跡。

各種測試引數例項(-p後面跟的是mysql的root密碼):

單執行緒測試。測試做了什麼。
# mysqlslap -a -uroot -p123456
多執行緒測試。使用–concurrency來模擬併發連線。
# mysqlslap -a -c 100 -uroot -p123456
迭代測試。用於需要多次執行測試得到平均值。
# mysqlslap -a -i 10 -uroot -p123456

# mysqlslap ---auto-generate-sql-add-autoincrement -a -uroot -p123456
# mysqlslap -a --auto-generate-sql-load-type=read -uroot -p123456
# mysqlslap -a --auto-generate-secondary-indexes=3 -uroot -p123456
# mysqlslap -a --auto-generate-sql-write-number=1000 -uroot -p123456
# mysqlslap --create-schema world -q "select count(*) from City" -uroot -p123456
# mysqlslap -a -e innodb -uroot -p123456
# mysqlslap -a --number-of-queries=10 -uroot -p123456

測試同時不同的儲存引擎的效能進行對比:
# mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --engine=myisam,innodb --debug-info -uroot -p123456

執行一次測試,分別50和100個併發,執行1000次總查詢:
# mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --debug-info -uroot -p123456

50和100個併發分別得到一次測試結果(Benchmark),併發數越多,執行完所有查詢的時間越長。為了準確起見,可以多迭代測試幾次:
# mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --debug-info -uroot -p123456

相關推薦

總結MySQL效能壓力測試工具mysqlslap

PS:今天一同事問我有木有比較靠譜的mysql壓力測試工具可用。其實mysql自帶就有一個叫mysqlslap的壓力測試工具,還是模擬的不錯的。下面舉例說說。mysqlslap是從5.1.4版開始的一個MySQL官方提供的壓力測試工具。通過模擬多個併發客戶端訪問MySQL

MySQL效能壓力測試工具mysqlslap

PS:今天一同事問我有木有比較靠譜的mysql壓力測試工具可用。其實mysql自帶就有一個叫mysqlslap的壓力測試工具,還是模擬的不錯的。下面舉例說說。mysqlslap是從5.1.4版開始的一個MySQL官方提供的壓力測試工具。通過模擬多個併發客戶端訪問MySQL來執

mysql壓力測試工具

mysqlslap 是 Mysql 自帶的壓力測試工具,可以模擬出大量客戶端同時操作資料庫的情況,通過結果資訊來了解資料庫的效能狀況 mysqlslap 的一個主要工作場景就是對資料庫伺服器做基準測試 例如我們拿到了一臺伺服器,準備做為資料庫伺服器,那麼這臺伺服器的硬體資源能夠支援多

Web效能壓力測試工具——Siege

Siege可以從您選擇的預置列表中請求隨機的URL。所以siege可用於模擬使用者請求負載,而ab則不能。但不要使用siege來執行最高效能基準調校測試,這方面ab就準確很多。 一、安裝 編譯安裝 wget http://www.joedog.org/pub/siege/siege-latest.

PHP測試與優化-- Apache壓力測試工具abapache bench - 簡單使用

一、測試工具: Apache 壓力測試工具ab ab是針對apache的效能測試工具,可以只安裝ab工具。 ubuntu安裝ab apt-get install apache2-utils centos安裝ab yum install httpd-tools 命令:

Maven學習總結27——Maven定義打包外掛maven-assembly-plugin

Assembly外掛會生成 “assemblies”, 此特性等同於的Maven 1 distribution plug-in.。該外掛不僅支援建立二進位制歸檔檔案,也支援建立原始碼歸檔檔案。這些as

apache的ab壓力測試工具用法

ab是apache自帶的一個很好用的壓力測試工具,當安裝完apache的時候,就可以在bin下面找到ab 1 我們可以模擬100個併發使用者,對一個頁面傳送1000個請求 ./ab -n1000 -c100 http://www.baidu.com 其中-n代表請求數,

總結CentOS Linux下VNC Server遠端桌面配置

PS:偶以前基本不用Linux的遠端圖形桌面,前幾天有開發的同事配置CentOS的vnc有問題,找我解決,就順便記錄總結一下,這個總結是比較完整的。下面的配置在CentOS5.x和6.x、SUSE企業版親測驗證,其他發行版按理也通用: 一、安裝相應桌面環境與vnc服務端和客戶端: # yum group

總結Nginx/LVS/HAProxy負載均衡軟體的優缺點

PS:Nginx/LVS/HAProxy是目前使用最廣泛的三種負載均衡軟體,本人都在多個專案中實施過,參考了一些資料,結合自己的一些使用經驗,總結一下。 一般對負載均衡的使用是隨著網站規模的提升根據不同的階段來使用不同的技術。具體的應用需求還得具體分析,如果是中小型的W

Linux Logrotate 日誌切割工具配置

多少 日誌丟失 logger 管理工具 utm 拷貝 刪除 code 系統 Logrotate 程序是一個日誌文件管理工具。用於分割日誌文件,壓縮轉存、刪除舊的日誌文件,並創建新的日誌文件,下面就對logrotate日誌輪轉的記錄: 1.1 Logrotate配置文件介紹

mysqlslap--MySQL效能壓力測試工具(測試修正版)

mysqlslap 是 Mysql 自帶的壓力測試工具,可以模擬出大量客戶端同時操作資料庫的情況,通過結果資訊來了解資料庫的效能狀況 mysqlslap 的一個主要工作場景就是對資料庫伺服器做基準測試 例如我們拿到了一臺伺服器,準備做為資料庫伺服器,那麼這臺伺服器的硬體資源能夠支援

MySQL學習筆記—— MySQL連接

概念 cor 子查詢 ron 表操作 例子 質量 _id order by 有的時候我們需要對同一表中的數據進行多次檢索,這個時候我們可以使用之前學習過的子查詢,先查詢出需要的數據,再進行一次檢索。 例如:一張products表,有產品id,供應商id(vend_

mysqlmysql數據庫壓力測試工具mysqlslap

root .cn this 用戶 cas bench 測試 逗號 complete mysqlslap是從MySQL的5.1.4版開始就開始官方提供的壓力測試工具。通過模擬多個並發客戶端並發訪問MySQL來執行壓力測試,同時提供了較詳細的SQL執行數據性能報告,並且能很好的

mysql資料庫連線異常問題總結 mysql資料庫連線異常問題總結

mysql資料庫連線異常問題(總結) 1.1 前言     最近專案由1個數據源增加至了3個數據源(連線池使用C3P0),結果各種奇葩的資料庫連線問題接踵而至,為防止將來再次遇到同樣的問題不犯同樣錯誤,現總結如下。 1.2  An attempt by

卡爾曼濾波器的兩種python實現方法:1opencv的cv2.KalmanFilter 2pykalman演算法庫

預備知識: 卡爾曼濾波的理論知識: 具體的理論知識可參考以下博文,非常感謝相關博主的貢獻: 以一個滑鼠追蹤的任務分析兩種卡爾曼濾波的實現方式: (一)opencv自帶的cv2.KalmanFilter 該卡爾曼濾波器演算法分為兩個階段: 預測

利用WPF建立自己的3d gis軟體非axhost方式SDK部分面板的呼叫

先下載SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bPew 密碼:1te1 地圖資料包(sqlserver2008R2版本,也可以不下載):  https://pan.baidu.com/s/1PjcNamad7OVpCrsV

jvm——JVM記憶體分析工具

在進行java程式問題定位時,記憶體問題定位是很關鍵的一招。jvm自帶的命令可以方便的在生產監控和列印堆疊的日誌資訊幫忙我們來定位問題!雖然jvm調優成熟的工具已經有很多:jconsole、大名鼎鼎的VisualVM,IBM的Memory Analyzer等等,

1java軟體包javax.crypto的使用方法,對稱加密方法和非對稱加密方法

一般來講,在java上實現加密解密演算法,有3種方式。 1)自行實現演算法 2)使用java自帶的crypto軟體包 3)使用第三方庫 本文講述一下第二種使用方法。我最開始也是找了很多這方面的資料,但是總感覺還是缺乏一些細節。現將我的一些心得與大家分享。 本文給出的例子

壓力測試工具、Web效能壓力測試工具ApacheBenchab

網站效能壓力測試是效能調優過程中必不可少的一環。只有讓伺服器處在高壓情況下才能真正體現出各種設定所暴露的問題。Apache中有個自帶的,名為ab的程式,可以對Apache或其它型別的伺服器進行網站訪問壓力測試。 ApacheBench命令原理: ab命令會建立很

專案管理學習總結9——史上最全網際網路八大技術崗位

網際網路技術崗位詳解,涉及到前段開發、後端開發、移動端開發、大資料、專案管理、測試、運維、技術管理等八大領域。架構師每個產品線都有架構師,在技術平臺部門也需要技術平臺的架構師。架構師負責設計系統整體架構,從需求到設計的每個細節都要考慮到,把握整個專案,使設計的專案儘量效率高,