? ? ? 吞吐量
? ? 一個系統(tǒng)的吞吐量(承壓能力)需由 單個request對cpu的消耗滥崩、外部接口、IO等綜合評定讹语,單個request對cpu消耗越高钙皮,外部系統(tǒng)接口、IO響應越慢顽决,系統(tǒng)吞吐能力也就越低
? ? ? ?系統(tǒng)吞吐量幾個重要參數(shù):QPS短条、TPS、并發(fā)數(shù)才菠、響應時間
????????QPS:Queries Per Second意思是“每秒查詢率”茸时,是一臺服務器每秒能夠相應的查詢次數(shù),是對一個特定的查詢服務器在規(guī)定時間內(nèi)所處理流量多少的衡量標準
? ??????TPS:是TransactionsPerSecond的縮寫赋访,也就是事務數(shù)/秒可都。它是軟件測試結果的測量單位。一個事務是指一個客戶機向服務器發(fā)送請求然后服務器做出反應的過程蚓耽∏客戶機在發(fā)送請求時開始計時,收到服務器響應后結束計時田晚,以此來計算使用的時間和完成的事務個數(shù)嘱兼。
QPS vs TPS:QPS基本類似于TPS国葬,但是不同的是贤徒,對于一個頁面的一次訪問,形成一個TPS汇四;但一次頁面請求接奈,可能產(chǎn)生多次對服務器的請求,服務器對這些請求通孽,就可計入“QPS”之中序宦。如,訪問一個頁面會請求服務器2次背苦,一次訪問互捌,產(chǎn)生一個“T”潘明,產(chǎn)生2個“Q”
????????并發(fā)數(shù):?系統(tǒng)同時處理的request/事務數(shù);
? ? ? ? 并發(fā)用戶數(shù):指的是現(xiàn)實系統(tǒng)中操作業(yè)務的用戶;在性能測試工具中,一般稱為虛擬用戶數(shù)(Virutal User)领跛,注意并發(fā)用戶數(shù)跟注冊用戶數(shù)夺衍、在線用戶數(shù)有很大差別的,并發(fā)用戶數(shù)一定會對服務器產(chǎn)生壓力的族展,而在線用戶數(shù)只是?”掛”?在系統(tǒng)上,對服務器 不產(chǎn)生壓力,注冊用戶數(shù)一般指的是數(shù)據(jù)庫中存在的用戶數(shù)
????????響應時間(RT):??一般取平均響應時間
? ? ? (重要:并發(fā)有別于tps吓坚。TPS是每秒事務數(shù),但事務是基于虛擬用戶數(shù)(VU)的灯荧,假如1個虛擬用戶在1秒內(nèi)完成1筆事務礁击,那么TPS明顯就是1;如果某筆業(yè)務響應時間是1ms,那么1個用戶在1秒內(nèi)能完成1000筆事務逗载,TPS就是1000了客税;如果某筆業(yè)務響應時間是1s,那么1個用戶在1秒內(nèi)只能完成1筆事務,要想達到1000TPS撕贞,至少需要1000個用戶更耻;因此可以說1個用戶可以產(chǎn)生1000TPS,1000個用戶也可以產(chǎn)生1000TPS捏膨,無非是看響應時間快慢)
? ? ? ?由此可推出他們之間的關系:
? ? ? ? ? ? QPS(TPS) = 并發(fā)數(shù)/平均響應時間
? ? 看個實例:按照二八原則秧均,百分之八十的訪問集中在百分之二十的時間(峰值時間)內(nèi)
? ? ? ? ? ? ? ? ? ? 總PV數(shù)*80%) / 總時間(秒)*20% = 峰值時間每秒請求數(shù)(QPS)
? ? ? ? ? ? ? ? ? ? 假設:網(wǎng)站日PV100萬,則服務器需要至少多少Q(mào)PS号涯?
? ? ? ? ? ? ? ? ? ? ? ? ? ? (1000000 * 0.8) / (86400 * 0.2) = 47(QPS)
? ? ? 某些情況下的計算中目胡,需要引入Think?Time,從業(yè)務角度來看链快,這個時間指用戶進行操作時每個請求之間的時間間隔誉己,而在做新能測試時,為了模擬這樣的時間間隔域蜗,引入了思考時間這個概念巨双,來更加真實的模擬用戶的操作,即系統(tǒng)真實TPS(QPS) = 并發(fā)數(shù)/(響應時間+Think Time)
? ??????當沒有遇到性能瓶頸的時候霉祸,吞吐量與虛擬用戶數(shù)之間存在一定的聯(lián)系筑累,可以采用以下公式計算:F=VU?*?R?/ T
??其中F為吞吐量,VU表示虛擬用戶個數(shù)丝蹭,R表示每個虛擬用戶發(fā)出的請求數(shù)慢宗,T表示性能測試所用的時間