前言
上面一篇簡(jiǎn)單介紹了Mysql的架構(gòu)以及歷史背景,這一篇介紹主要介紹MySQL的基準(zhǔn)測(cè)試,首先就要知道什么是基準(zhǔn)測(cè)試。
- 基準(zhǔn)測(cè)試(benchmarking):是一種測(cè)量和評(píng)估軟件性能指標(biāo)的活動(dòng)。
通俗點(diǎn)說(shuō)就是測(cè)試我們寫的SQL性能是否比較合適,這樣方便我們?nèi)バ薷奈覀兊腟QL,能夠提高系統(tǒng)的性能。
以后每章都會(huì)寫上我的版本
項(xiàng) | 版本號(hào) | 說(shuō)明 |
---|---|---|
Mysql | 5.6.37 MySQL Community Server (GPL) | 5.0以上版本即可 |
2.1、基準(zhǔn)測(cè)試作用
- 可以提前測(cè)試新系統(tǒng)在不同壓力下的行為,評(píng)估系統(tǒng)容量,觀察系統(tǒng)如何處理不同數(shù)據(jù),觀察系統(tǒng)異常行為,測(cè)試硬件是否滿足要求,軟硬件配置是否正確。
- 測(cè)試系統(tǒng)當(dāng)前運(yùn)行情況。
- 模擬更高的負(fù)載,判斷可能遇到的性能瓶頸,規(guī)劃未來(lái)業(yè)務(wù)增長(zhǎng)。
注意事項(xiàng)
- 它不是完全真實(shí)的壓力測(cè)試,真實(shí)的壓力是不可預(yù)期并且變化多端的,有時(shí)候情況復(fù)雜而難以解釋,不利于從結(jié)果中分析得出結(jié)論,因此基準(zhǔn)測(cè)試施加的壓力相比真實(shí)壓力,要簡(jiǎn)單。
2.2、基準(zhǔn)測(cè)試的策略
集成測(cè)試:可以測(cè)試整個(gè)應(yīng)用系統(tǒng),包括Web服務(wù)器、代碼、MySQL等,因?yàn)楹芏鄷r(shí)候性能并不是Mysql帶來(lái)的,只有這樣才能測(cè)試出整體的瓶頸,以及緩存策略等,但是很難實(shí)施。
-
單組件測(cè)試:針對(duì)MySQL進(jìn)行單獨(dú)測(cè)試。
- 不同的schema或查詢性能,
- 針對(duì)應(yīng)用中具體問題測(cè)試
- 避免漫長(zhǎng)的基準(zhǔn)測(cè)試,通過(guò)短期基準(zhǔn)測(cè)試,做快速“周期循環(huán)”
2.3、基準(zhǔn)測(cè)試的指標(biāo)
- 吞吐量:
TPS每秒事務(wù)數(shù),每秒鐘request/事務(wù) 數(shù)量 - 響應(yīng)時(shí)間或者延遲:
測(cè)試任務(wù)所需的整體時(shí)間, - 并發(fā)性:
在任意時(shí)間有多少同時(shí)發(fā)生的并發(fā)請(qǐng)求或者在某同時(shí)工作的線程數(shù)下,吞吐量和延時(shí)的變化 - 可擴(kuò)展性:
給系統(tǒng)增加一倍的工作,理想情況下應(yīng)當(dāng)?shù)毛@得兩倍的結(jié)果(比如吞吐量)。或者增加一倍的資源(比如CPU數(shù)),獲得兩倍的吞吐量。當(dāng)然,大多數(shù)情況下是不可能線性增長(zhǎng)的。
2.4、基準(zhǔn)測(cè)試的工具
集成式測(cè)試工具:ab、http_load、JMeter;
單組件測(cè)試工具:mysqlslap、MySQL Benchmark Suite(sql-bench)、Super Smack、Database Test Suite、Percona's TPCC-MySQL Tool、sysbench。
這些工具相關(guān)的東西,到后面測(cè)試的時(shí)候會(huì)進(jìn)行詳細(xì)的描述。
下一章:服務(wù)器性能剖析。
系列課程
《高性能MySQL讀書筆記》
準(zhǔn)備篇-mysql安裝
準(zhǔn)備篇-Sakila數(shù)據(jù)庫(kù)
第一章、MySQL架構(gòu)及歷史
第二章、MySQL基準(zhǔn)測(cè)試