前言
上面一篇簡單介紹了Mysql的架構以及歷史背景侥锦,這一篇介紹主要介紹MySQL的基準測試挽荠,首先就要知道什么是基準測試克胳。
- 基準測試(benchmarking):是一種測量和評估軟件性能指標的活動平绩。
通俗點說就是測試我們寫的SQL性能是否比較合適,這樣方便我們去修改我們的SQL漠另,能夠提高系統(tǒng)的性能捏雌。
以后每章都會寫上我的版本
項 | 版本號 | 說明 |
---|---|---|
Mysql | 5.6.37 MySQL Community Server (GPL) | 5.0以上版本即可 |
2.1、基準測試作用
- 可以提前測試新系統(tǒng)在不同壓力下的行為笆搓,評估系統(tǒng)容量性湿,觀察系統(tǒng)如何處理不同數(shù)據(jù),觀察系統(tǒng)異常行為满败,測試硬件是否滿足要求肤频,軟硬件配置是否正確。
- 測試系統(tǒng)當前運行情況算墨。
- 模擬更高的負載宵荒,判斷可能遇到的性能瓶頸,規(guī)劃未來業(yè)務增長米同。
注意事項
- 它不是完全真實的壓力測試骇扇,真實的壓力是不可預期并且變化多端的,有時候情況復雜而難以解釋面粮,不利于從結果中分析得出結論少孝,因此基準測試施加的壓力相比真實壓力,要簡單熬苍。
2.2稍走、基準測試的策略
集成測試:可以測試整個應用系統(tǒng),包括Web服務器柴底、代碼婿脸、MySQL等,因為很多時候性能并不是Mysql帶來的柄驻,只有這樣才能測試出整體的瓶頸狐树,以及緩存策略等,但是很難實施鸿脓。
-
單組件測試:針對MySQL進行單獨測試抑钟。
- 不同的schema或查詢性能,
- 針對應用中具體問題測試
- 避免漫長的基準測試野哭,通過短期基準測試在塔,做快速“周期循環(huán)”
2.3、基準測試的指標
- 吞吐量:
TPS每秒事務數(shù),每秒鐘request/事務 數(shù)量 - 響應時間或者延遲:
測試任務所需的整體時間, - 并發(fā)性:
在任意時間有多少同時發(fā)生的并發(fā)請求或者在某同時工作的線程數(shù)下拨黔,吞吐量和延時的變化 - 可擴展性:
給系統(tǒng)增加一倍的工作蛔溃,理想情況下應當?shù)毛@得兩倍的結果(比如吞吐量)。或者增加一倍的資源(比如CPU數(shù))贺待,獲得兩倍的吞吐量徽曲。當然,大多數(shù)情況下是不可能線性增長的麸塞。
2.4疟位、基準測試的工具
集成式測試工具:ab、http_load喘垂、JMeter;
單組件測試工具:mysqlslap绍撞、MySQL Benchmark Suite(sql-bench)正勒、Super Smack、Database Test Suite傻铣、Percona's TPCC-MySQL Tool章贞、sysbench。
這些工具相關的東西非洲,到后面測試的時候會進行詳細的描述鸭限。
下一章:服務器性能剖析。
系列課程
《高性能MySQL讀書筆記》
準備篇-mysql安裝
準備篇-Sakila數(shù)據(jù)庫
第一章两踏、MySQL架構及歷史
第二章败京、MySQL基準測試