MySQL基準(zhǔn)測試
定義:針對(duì)系統(tǒng)進(jìn)行的壓力測試戏羽。
直接婆芦,簡單蜂怎,易于比較穆刻!用于評(píng)估服務(wù)器處理數(shù)據(jù)的能力。
測試目的
- 建立MySQL服務(wù)器性能的基準(zhǔn)線
- 模擬比當(dāng)前系統(tǒng)更高的負(fù)載杠步,找出系統(tǒng)的瓶頸
- 測試不同的硬件氢伟、軟件和操作系統(tǒng)配置。
- 證明新的設(shè)備是否配置正確
如何測試
對(duì)整個(gè)系統(tǒng)進(jìn)行基準(zhǔn)測試
從系統(tǒng)的入口進(jìn)行測試幽歼。
優(yōu)點(diǎn):
- 能測試這個(gè)系統(tǒng)的性能朵锣,包括web肮蛹、緩存尝盼、數(shù)據(jù)庫煌抒、等等
- 能反應(yīng)出系統(tǒng)各個(gè)組件接口的性能問題
缺點(diǎn):
- 測試設(shè)定復(fù)雜,時(shí)間耗費(fèi)長
單獨(dú)對(duì)MySQL進(jìn)行測試
優(yōu)點(diǎn)
- 測試簡單,測試時(shí)間短掀泳。
缺點(diǎn)
- 無法全面了解整個(gè)系統(tǒng)西轩。
MySQL基準(zhǔn)測試的常見指標(biāo)
- 單位時(shí)間內(nèi)所處理的事物數(shù)(TPS)
- 單位時(shí)間內(nèi)所處理的查詢數(shù)(QPS)
- 響應(yīng)時(shí)間
- 平均響應(yīng)時(shí)間、最小響應(yīng)時(shí)間马僻、最大響應(yīng)時(shí)間注服、各時(shí)間所占比
- 并發(fā)量:同時(shí)查詢請(qǐng)求的數(shù)量
基準(zhǔn)測試步驟
計(jì)劃和設(shè)計(jì)基準(zhǔn)測試
- 對(duì)整個(gè)系統(tǒng)某一個(gè)主鍵
- 使用什么樣的數(shù)據(jù)
- 準(zhǔn)備測試數(shù)據(jù)溶弟,以及數(shù)據(jù)收集腳本
- CPU使用率,IO辜御,網(wǎng)絡(luò)流量、狀態(tài)計(jì)數(shù)器信息等
- 運(yùn)行基準(zhǔn)測試
保存及分析基準(zhǔn)測試的腳本
常用的基準(zhǔn)測試的工具
mysqlslap
下載和安裝:和mysql一起下載安裝
特點(diǎn):
可以模擬服務(wù)器負(fù)載袱巨,并輸出相關(guān)統(tǒng)計(jì)信息
可以指定也可以自動(dòng)生成查詢語句
常用的參數(shù)說明:
- --auto-generate-sql 有系統(tǒng)自從生成sql腳本進(jìn)行測試
- --auto-generate-sql-add-autoincrement 在生成的表中增加自增IF
- --auto-generate-sql-load-type 指定測試中查詢的類型
- --auto-generate-sql-load-write-number 初始化數(shù)據(jù)時(shí)生成的數(shù)據(jù)量
- -- concurrency 指定并發(fā)線程的數(shù)量
- --engine 指定要測試的表的引擎愉老,可以用逗號(hào)分隔多個(gè)引擎
- --no-drop 指定不清理測試數(shù)據(jù)
- --iterations 指定測試運(yùn)行的次數(shù)
- --number-of-queries 指定每一個(gè)線程查詢的數(shù)量
- --debug--info 指定輸出額外的內(nèi)存以及CPU統(tǒng)計(jì)信息
- --number-int-clos 指定表中包含INT的數(shù)量
- --number-char-clos 指定表中包含varchar的數(shù)量
- --create-schema 指定了執(zhí)行數(shù)據(jù)庫測試的數(shù)據(jù)庫的名字
- --query 用于指定自定義的sql腳本
- --only-print 把生成的腳本打印出來俺夕,不會(huì)運(yùn)行
sysbench
是一個(gè)多線程的測試工具
安裝:
1.在githup上下載
2.編譯贱鄙、配置(指定mysql目錄)逗宁、安裝