常見指標:
tps(transaction per second)
qps(query per second)
響應時間
併發量步驟
計畫和設計基準測試
準備基準測試及資料收集指令碼
容易忽略的問題
使用生產環境資料時只使用了部分資料
在多使用者場景中,只做單使用者的測試
在單伺服器上測試分布式應用
反覆執行同一查詢
mysqlslap
mysql伺服器自帶的基準測試工具,隨mysql一起安裝
常用引數:
–auto-generate-sql 由系統自動生成sql指令碼進行測試
–auto-generate-sql-add-autoincrement 在生成的表中增加自增id
–auto-generate-sql-load-type 指定測試中使用的查詢型別
–auto-generate-sql-write-number 指定初始化資料時生成的資料量
–concurrency 指定併發執行緒的數量
–engine 指定要測試表的儲存引擎,可以用逗號分割多個儲存引擎
–no-drop 指定不清理測試資料
–iterations 指定測試執行的次數
–number-of-queries 指定每乙個執行緒執行的查詢數量
–debug-info 指定輸出額外的記憶體及cpu統計資訊
–number-int-cols 指定測試表中飲食的int型別列的數量
–number-char-cols 指定測試表中包含的varchar型別的數量
–create-schema 指定了用於執行測試的資料庫的名字
–query 用於指定自定義sql的指令碼
–only-print 並不執行測試指令碼,而是把生成的指令碼列印出來
可輸入mysqlslap –help檢視所有引數
舉例如下
mysqlslap --concurrency=1,50,100,200 --iterations=3 --number-int-cols=5 --number-char-cols=5 --auto-generate-sql --auto-generate-sql-add-autoincrement --engine=myisam,innodb --number-of-queries=10 --create-schema=mytest
可通過在後面新增–only-print | more或導到乙個檔案中檢視執行過程的**。
備註:免使用者密碼登入mysql
開啟/etc/my.cnf檔案,新增
[client]
user=root
password=your_passwd
sysbench
安裝方法
wget
unzip 0.5.zip
cd sysbench-0.5
yum install unzip automake libtool -y
./autogen.sh
./configure --with-mysql-includes=/usr/include/mysql/ --with-mysql-libs=/usr/lib64/mysql/
make && make install
–with-mysql-includes和–with-mysql-libs取決於安裝環境,通常自己編譯的為:/usr/local/mysql/include和/usr/local/mysql/lib
安裝完成後通過sysbench –help來驗證一下
常用引數
–test 用於指定所要執行的測試型別,支援以下引數
fileio 檔案系統i/o效能測試
cpu cpu效能測試
memory 記憶體效能測試
oltp 測試要指定具體的lua指令碼, lua指令碼位於/sysbench-0.5/sysbench/tests/db
–mysql-db 用於指定執行基準測試的資料庫名
–mysql-table-engine 用於指定所使用的儲存引擎
–oltp-tables-count 執行測試的表的數量
–oltp-table-size 指定每個表中的資料行數
–num-threads 指定測試的併發執行緒數量
–max-time 指定最大的測試時間
–report-interval 指定間隔多長時間輸出一次統計資訊
–mysql-user 執行測試的mysql使用者
–mysql-password 執行測試的mysql使用者的密碼
prepare 用於準備測試資料
run 進行實際測試
cleanup 用於清理測試資料
如cpu測試
sysbench --test=cpu --cpu-max-prime=10000 run
磁碟i/o測試
cd /tmp/
sysbench --test=fileio --file-total-size=1g prepare #生成檔案大小要大於記憶體
sysbench --test=fileio --num-threads=8 --init-rng=on --file-total-size=1g --file-test-mode=rndrw --report-interval=1 run
sysbench --test=fileio --file-total-size=1g cleanup
mysql資料庫測試
建立測試資料庫以及使用者名稱密碼
create database systest;
grant all privileges on systest.* to systest@localhost identified by '123456';
flush privileges;
進入sysbench-0.5/sysbench/tests/db/目錄
#準備資料後再執行
sysbench --test=./oltp.lua --mysql-table-engine=innodb --oltp-table-size=10000 --mysql-db=systest --mysql-user=systest --mysql-password=123456 --oltp-tables-count=10 --mysql-socket=/var/lib/mysql/mysql.sock prepare
mysql基準測試例項 mysql基準測試
toc 單位時間內所處理的事務數 tps 單位時間內所處理的查詢數 qps 響應時間 平均響應時間,最小響應時間,最大響應時間,各時間所佔百分比 併發量 同時處理的查詢請求的數量 併發量不等於連線數 正在工作的併發的操作或同時工作的數量 工具 mysqlslap mysql自帶的 特點 可以模擬伺服...
mysql 基準測試報告 Mysql基準測試
一 基準測試 基準測試的作用 了解當前系統的效能,建立mysql伺服器效能基準線 為之後的效能優化提供乙個超始線 模擬比當前系統更高的負載,找出系統的擴充套件瓶頸,為系統擴充套件與優化提供參考條件 測試不同的硬體 軟體和作業系統配置 證明新的硬體裝置是否配置正確和是否是最優配置 基準測試可以分為整合...
mysql基準測試
主要簡單了解mysql的基準測試 什麼是基準測試 基準測試是一種測量和評估軟體效能指標的活動,用於建立某個時刻的效能基準,以便當系統發生軟硬體變化時重新進行基準測試以評估變化對效能的影響,通俗講就是針對系統設定的一種壓力測試 基準測試於壓力測試的區別 基準測試 直接 簡單 易於比較 用於評估伺服器的...