mysql 基準測試報告 Mysql基準測試

2021-10-17 18:20:23 字數 2582 閱讀 7590

一、基準測試

基準測試的作用:

了解當前系統的效能,建立mysql伺服器效能基準線(為之後的效能優化提供乙個超始線)

模擬比當前系統更高的負載,找出系統的擴充套件瓶頸,為系統擴充套件與優化提供參考條件

測試不同的硬體、軟體和作業系統配置

證明新的硬體裝置是否配置正確和是否是最優配置

基準測試可以分為整合式測試和單元件式測試。

整合式測試就是對整個應用系統進行測試,如乙個**應用系統,對整個**系統進行測試。

單元件式測試是對系統中的某個元件進行測試,如對**中的資料庫這個元件進行測試,或對web伺服器這個元件進行測試等。

(一)、整合式測試工具

有http_load,ab,jmeter,wrk等

1、ab的使用

ab即apache bench,是apache httpd包含的乙個http壓測工具

(1)ab的安裝

(2)ab的常用用法

ab [options] url

options表示引數

-n:請求數

-c:併發數(請求人數)

-s:超時時間

url表示壓力測試的位址

如:結果如下:

2、wrk的使用

wrk是一款簡單的http壓測工具,安裝和使用都比較簡單(推薦使用)

(1)安裝

(2)使用

wrk url

- options:引數

-c:連線數

-d:壓測時間(可以使用m(分鐘)、s(秒)這種單位)

-t:使用的執行緒數

結果如下:

3、jmeter的使用

jmeter相對於其他工具來說相對複雜,之後會有專門的文章來介紹jmeter的使用

(二)、單元件式測試工具

有mysqlslap,sysbench等

1、mysqlslap

它是mysql自帶的壓測工具

使用:mysqlslap

常用options詳解:

--auto-generate-sql(或者使用-a),表示使用mysqlslap工具自己生成的sql指令碼來測試併發壓力

--concurency(或者使用-c),表示模擬的多少個客戶端同時執行操作

--engine(或者使用-e),表示要測試的儲存引擎

--iterations(或者使用-i),表示在不同的併發環境下,各自測試多少次

--number-of-queries=n,表示總的測試查詢次數

如:測試單個使用者

或:模擬多個使用者(100個)

2、sysbench

二、效能分析

與測試一樣,效能分析也包括對整個應用的效能分析和對單個元件的效能分析,針對整個應用,針對不同的開發平台,有不同的解決方案。如openresty中可以通過火焰圖來分析,php中可以使用xhprof來分析,或者借助第三方的效能分析工具(一般是收費的,搜尋apm即可)

1、應用級效能分析

針對整個應用級的效能分析,非本文的重點,可以根據專案特性選擇或開發對應的工具來分析。

2、mysql效能分析

(1)分析慢查詢日誌

可以使用mysqldumpslow或者pt-query-digest來分析,具體可參考 mysql慢查詢日誌分析工具的使用

(2)通過show status和show engine innodb status等

show status可以檢視當前伺服器的狀態:

檢視伺服器正在執行的命令

檢視和伺服器之間來往的流量:

檢視在查詢執行期間建立的臨時表和檔案:

show engine innodb status:檢視innodb這種儲存引擎的狀態

(3)通過show profile

通過show profile可以檢視mysql語句的效能損耗在哪些地方

第一步:要開啟profiling(可以先檢視是否開啟)

第二步:執行sql

第三步:檢視執行的sql的效能損耗分析報告

檢視最近的一條執行結果:

例如:檢視結果:

通過上圖可以看出整個執行過程每個階段消耗的時間。

通過show profiles檢視:

通過上圖可以查詢每條執行語句消耗的時間

(4)通過show processlist

通過show processlist可以檢視目前有哪些執行緒進行執行,也可以認為這是查詢當前mysql連線數的方法,對於出現too many connections的錯誤,是乙個很好的排查方式。

結果如下:

id:連線的編號

user:連線的使用者

host:連線的主機

db:連線的資料庫名稱

command:執行的命令

time:連線持續時間

state:連線狀態

info:具體執行的sql語句

主要的state狀態:(這個狀態值有很多,這裡只列舉常用的幾個,可以根據名稱很容易知道其含義)

locked:被其他查詢鎖定

sending data:正在處理select查詢的記錄,時時正在把結果傳送給客戶端

connect out:複製從伺服器正在連線主伺服器

updating:正在搜尋匹配的記錄,並且修改這些資料

測試 測試報告

document number 文件編號 confidentiality level 密級 test report 01 絕密 秘密 內部公開 document version 文件版本 total 10 pages 共 10 頁 v1.0 測試報告 prepared by 擬制date 日期yyy...

mysql基準測試例項 mysql基準測試

toc 單位時間內所處理的事務數 tps 單位時間內所處理的查詢數 qps 響應時間 平均響應時間,最小響應時間,最大響應時間,各時間所佔百分比 併發量 同時處理的查詢請求的數量 併發量不等於連線數 正在工作的併發的操作或同時工作的數量 工具 mysqlslap mysql自帶的 特點 可以模擬伺服...

mysql 基準測試指令碼 MySQL基準測試

常見指標 tps transaction per second qps query per second 響應時間 併發量步驟 計畫和設計基準測試 準備基準測試及資料收集指令碼 容易忽略的問題 使用生產環境資料時只使用了部分資料 在多使用者場景中,只做單使用者的測試 在單伺服器上測試分布式應用 反覆...