測試系統(tǒng):公司網(wǎng)站的beta環(huán)境,本次測試數(shù)據(jù)有大約9萬條數(shù)據(jù)。系統(tǒng)的架構(gòu)為lamp+nginx,數(shù)據(jù)的流向,從mysql數(shù)據(jù)庫 做一個dumper 每10分鐘dump一次數(shù)據(jù)到系統(tǒng)的引擎。引擎是提供給用戶垂直搜索的數(shù)據(jù)集合。
測試數(shù)據(jù)來源:收集線上訪問的日志,并做相關(guān)的參數(shù)化。
測試步驟:
1.準(zhǔn)備相關(guān)測試工具,這里采用http_load ,測試命令sudo http_load -f 1000 -p 10 url.txt
2.準(zhǔn)備測數(shù)據(jù),目前該工具只支持get的請求,收集引擎服務(wù)器上的訪問log 作為url,注意收集的 url 非常重要 他關(guān)系這個本次測試是否有效 ,最好收集 線上服務(wù)器的一個小時內(nèi)的訪問log 做修改和參數(shù)化
3.新舊版本對比測試,跑數(shù)據(jù) -f 1000 -p 10 ; -f 2000 -p 20 ; -f 3000 -p 30; -f 5000 -p 50 ;-f 10000 -p 100 .每組數(shù)據(jù)跑三次 取平均的結(jié)果,當(dāng)然跑多次取平均最好。
2000 fetches, 20 max parallel, 9.63347e+07 bytes, in 89.0738 seconds 48167.3 mean bytes/connection 22.4533 fetches/sec, 1.08152e+06 bytes/sec msecs/connect: 0.250249 mean, 0.763 max, 0 min msecs/first-response: 874.104 mean, 4883.77 max, 3.489 min 33 bad byte counts HTTP response codes: code 200 -- 1952 code 400 -- 1 code 500 -- 47 |
4.結(jié)果分析:
22.4533 fetches/sec --這個是qps 業(yè)務(wù)處理能力
HTTP response codes --這個是記錄訪問成功和失敗的url數(shù)據(jù)
一般來說 同樣的壓力下 ,qps越高,代表業(yè)務(wù)處理能力越好性能越好,返回200 越多越好,如果qps相同 但是404,或者5000比較多,就要考慮是不是系統(tǒng)有性能瓶頸
5.補(bǔ)充 :一般好要監(jiān)控 服務(wù)的性能指標(biāo)load數(shù)和cpu等等,僅僅看返回結(jié)果是不準(zhǔn)確的,要把這些因素綜合考慮,并且當(dāng)并發(fā)和請求數(shù)太多客戶機(jī)的性能也要考慮進(jìn)去