mysqlslap對mysql進行壓力測試

来源:http://www.cnblogs.com/ddbear/archive/2017/06/02/6930141.html
-Advertisement-
Play Games

mysqlslap是從5.1.4版開始的一個MySQL官方提供的壓力測試工具。通過模擬多個併發客戶端訪問MySQL來執行壓力測試,並且能很好的對比多個存儲引擎在相同環境下的併發壓力性能差別。 mysqlslap的運行有如下3個步驟: 1. 創建schema、table、test data 等,使用單 ...


 

mysqlslap是從5.1.4版開始的一個MySQL官方提供的壓力測試工具。通過模擬多個併發客戶端訪問MySQL來執行壓力測試,並且能很好的對比多個存儲引擎在相同環境下的併發壓力性能差別。

 

mysqlslap的運行有如下3個步驟:
1. 創建schema、table、test data 等,使用單個連接 (在MySQL中,schema就是database);
2. 運行負載測試,可以使用多個併發客戶端連接;
3. 測試環境清理(刪除創建的數據、表等,斷開連接),使用單個連接。

 

使用語法如下:
# 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="sql statement",-q 使用自定義腳本執行測試,例如可以調用自定義的一個存儲過程或者sql語句來執行測試。
--create="sql statement" 創建表的SQL語句或文件
--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 只列印測試語句而不實際執行。
--debug-info, -T 列印記憶體和CPU的相關信息。

更詳細的參數請查閱官網文檔:https://dev.mysql.com/doc/refman/5.7/en/mysqlslap.html#option_mysqlslap_debug-info

 

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

 

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


Demo 1:

單線程測試。測試做了什麼。
# mysqlslap -a -uroot -p123456
多線程測試。使用–concurrency來模擬客戶端併發連接數。如,100個客戶端併發連接資料庫。
# mysqlslap -a -c 100 -uroot -p123456
迭代測試。用於需要多次執行測試得到平均值。如,迭代10次,取平均值。
# mysqlslap -a -i 10 -uroot -p123456

Demo 2:

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

分別500個併發,每個併發客戶端執行一次查詢,共500次查詢,和1000個併發,每個併發客戶端執行一次查詢,共1000次查詢。為了準確起見,可以多迭代測試幾次:

兩個測試都自動生成SQL測試腳本,各自迭代10次取平均值。測試環境包括讀、寫、更新混合測試,自增長欄位、測試引擎為innodb。

# mysqlslap –uroot –p –concurrency=500  –I 10 –a –auto-generate-sql-type=mixed –auto-generate-sql-add-autoincrement –engine=innodb –number-of-queries=500

# mysqlslap –uroot –p –concurrency=1000  –I 10 –a –auto-generate-sql-type=mixed –auto-generate-sql-add-autoincrement –engine=innodb –number-of-queries=1000

返回結果如下:

從上面兩個測試可以看出來,併發量從500變成1000的時候,查詢時間大概接近原來的一倍左右。

 

參考:http://www.ha97.com/5182.html

http://www.jb51.net/article/28621.htm


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 按照windows 7 64位 安裝oracle 11g R2中的方法成功安裝Oracle 11g後,共有7個服務,這七個服務的含義分別為: 1. Oracle ORCL VSS Writer Service:Oracle捲映射拷貝寫入服務,VSS(Volume Shadow Copy Servic ...
  • XtraBackup介紹 XtraBackup是Percona公司的開源項目,用以實現類似Innodb官方的熱備份工具InnoDB Hot Backup的功能,它支持線上熱備份(備份時不影響數據讀寫)。到目前為止,最新的版本為Percona XtraBackup 2.4.7. XtraBackup有... ...
  • Oracle 12C加入了一個非常有新意的功能“可插拔資料庫”特性,實現了資料庫(PDB)在“容器”(CDB)上的拔功能,既能提高系統資源的利用率,也簡化大面積資料庫的管理和遷移工作。 下麵我們體驗一下可插拔資料庫的CDB和PDB的操作: 基本信息:根容器(CDB):CUP可插拔資料庫(PDB):T ...
  • 實現伺服器A資料庫DBName和伺服器B資料庫DBName資料庫數據的實時同步。此作業的前提條件為兩個伺服器的資料庫同步表結構必須完全一致。 1)發佈伺服器端: 圖1 圖2 圖3 圖4 圖5 圖6 圖7 圖8 圖9 圖10 圖11 圖12 訂閱伺服器端: 圖1 圖2 圖3 圖4 圖5 圖6 圖7 圖 ...
  • 為了驗證SQLite的性能巔峰,我們來做一個大數據測試。 模擬每天4億票銷售訂單,分表分庫,每天一個資料庫文件,有訂單號、部門節點、時間等。 租用阿裡雲最低配置ECS,單核1G記憶體,1M帶寬,每年300塊,每天九毛錢 ...
  • ##語法格式為:imp 用戶名/密碼@IP地址/資料庫名 file='dmp文件路徑' full=y1.C:\Users\Administrator>imp testuser/testuser@localhost/orcl file='C:\Users\Administrator\Documents ...
  • 本文出處:http://www.cnblogs.com/wy123/p/6932166.html 折騰了大半天,看了想,想了看,總算是弄清楚yum安裝的過程了,之前寫過二進位包安裝的,這裡用yum安裝,環境都是一樣的,Centos7.2+MySQL5.7.18.每一步都參考了不少文章,後面會一一列舉 ...
  • 不能夠連接到主機(名稱為localhost)上的MySQL服務” -如果是服務未啟動。那麼就右鍵‘電腦’ >管理 >服務和應用程式 >服務,在右側的欄目中找到名稱為MYSQL的服務。 這個時候他的狀態應該是空,即未啟動,啟動此服務就OK了。 源網址:http://blog.csdn.net/wku ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...