基準測試(benchmark),是新手和專家都必須掌握的一項基本技能荠医,是針對系統(tǒng)設計的一種壓力測試颜价。
1.1 為什么需要基準測試
基準測試斯碌,可以提前測試新系統(tǒng)在不同壓力下的行為思币,評估系統(tǒng)容量鹿响,觀察系統(tǒng)如何處理不同數(shù)據(jù)羡微,觀察系統(tǒng)異常行為,測試硬件是否滿足要求惶我,軟硬件配置是否正確拷淘;
基準測試,測試結果只用于參考指孤,因為畢竟不是真實生產(chǎn)環(huán)境,要留有余量贬堵;
基準測試恃轩,測試要盡量簡單直接,結果之間容易比較黎做,成本低且易于執(zhí)行叉跛;
基準測試,實施時一定要搞清楚測試的原理蒸殿,要了解如何分析結果代表的意義筷厘。
1.2 基準測試的策略
兩種分類,集成測試宏所、單組件測試酥艳;
集成測試,可以測試整個應用系統(tǒng)爬骤,包括Web服務器充石、代碼、MySQL等霞玄,但很難實施骤铃;
測試指標,吞吐量(TPS每秒事務數(shù))坷剧、響應時間或延遲(測試任務所需的整體時間)惰爬、并發(fā)性、可擴展性;
并發(fā)性惫企,總被誤認為是同時有多少人訪問網(wǎng)站(Web服務器)撕瞧,實際上HTTP是無狀態(tài)的,大多數(shù)用戶只是簡單地讀取瀏覽器上顯示的信息雅任,也就是此時并沒有發(fā)生請求风范,因此,并發(fā)性應該是指任意時間有多少同時發(fā)生的并發(fā)請求沪么;
并發(fā)性硼婿,注意不要將創(chuàng)建數(shù)據(jù)庫連接和并發(fā)性搞混,一個設計良好的應用禽车,同時可以打開成千上萬個MySQL數(shù)據(jù)庫服務器連接寇漫,但可能同時只有少數(shù)連接在執(zhí)行查詢刊殉。因此,并發(fā)性是關注的是正在工作的并發(fā)操作州胳,或者是同時工作的線程數(shù)連接數(shù)记焊。
1.3 基準測試方法
先設計和規(guī)劃基準測試,然后運行72小時以上栓撞,盡可能多的獲取運行時的系統(tǒng)性能和狀態(tài)數(shù)據(jù)(使用腳本自動收集)遍膜、學會分析結果、學會繪圖(用圖表達數(shù)據(jù)結果)瓤湘。
1.4 基準測試工具
總體測試工具:ab瓢颅、http_load、JMeter弛说;
組件測試工具:mysqlslap挽懦、MySQL Benchmark Suite(sql-bench)、Super Smack木人、Database Test Suite信柿、Percona's TPCC-MySQL Tool、sysbench醒第。
重點學會:sysbench渔嚷。
1.5 基準測試案例
sysbench工具:sysbench測試簡單、結果有可比性稠曼,包括CPU基準測試圃伶、文件I/O基準測試(fileio)、OLTP基準測試蒲列;
Percona's TPCC-MySQL工具:可以模擬真實壓力環(huán)境窒朋。
1.6 總結
至少學會sysbench,學會gnuplot繪圖工具蝗岖,眼睛比任何腳本和自動化工具都更有效侥猩。