? ? ? 吞吐量
? ? 一個系統(tǒng)的吞吐量(承壓能力)需由 單個request對cpu的消耗、外部接口、IO等綜合評定,單個request對cpu消耗越高,外部系統(tǒng)接口、IO響應(yīng)越慢,系統(tǒng)吞吐能力也就越低
? ? ? ?系統(tǒng)吞吐量幾個重要參數(shù):QPS、TPS、并發(fā)數(shù)、響應(yīng)時間
????????QPS:Queries Per Second意思是“每秒查詢率”,是一臺服務(wù)器每秒能夠相應(yīng)的查詢次數(shù),是對一個特定的查詢服務(wù)器在規(guī)定時間內(nèi)所處理流量多少的衡量標(biāo)準(zhǔn)
? ??????TPS:是TransactionsPerSecond的縮寫,也就是事務(wù)數(shù)/秒。它是軟件測試結(jié)果的測量單位。一個事務(wù)是指一個客戶機(jī)向服務(wù)器發(fā)送請求然后服務(wù)器做出反應(yīng)的過程。客戶機(jī)在發(fā)送請求時開始計時,收到服務(wù)器響應(yīng)后結(jié)束計時,以此來計算使用的時間和完成的事務(wù)個數(shù)。
QPS vs TPS:QPS基本類似于TPS,但是不同的是,對于一個頁面的一次訪問,形成一個TPS;但一次頁面請求,可能產(chǎn)生多次對服務(wù)器的請求,服務(wù)器對這些請求,就可計入“QPS”之中。如,訪問一個頁面會請求服務(wù)器2次,一次訪問,產(chǎn)生一個“T”,產(chǎn)生2個“Q”
????????并發(fā)數(shù):?系統(tǒng)同時處理的request/事務(wù)數(shù);
? ? ? ? 并發(fā)用戶數(shù):指的是現(xiàn)實系統(tǒng)中操作業(yè)務(wù)的用戶;在性能測試工具中,一般稱為虛擬用戶數(shù)(Virutal User),注意并發(fā)用戶數(shù)跟注冊用戶數(shù)、在線用戶數(shù)有很大差別的,并發(fā)用戶數(shù)一定會對服務(wù)器產(chǎn)生壓力的,而在線用戶數(shù)只是?”掛”?在系統(tǒng)上,對服務(wù)器 不產(chǎn)生壓力,注冊用戶數(shù)一般指的是數(shù)據(jù)庫中存在的用戶數(shù)
????????響應(yīng)時間(RT):??一般取平均響應(yīng)時間
? ? ? (重要:并發(fā)有別于tps。TPS是每秒事務(wù)數(shù),但事務(wù)是基于虛擬用戶數(shù)(VU)的,假如1個虛擬用戶在1秒內(nèi)完成1筆事務(wù),那么TPS明顯就是1;如果某筆業(yè)務(wù)響應(yīng)時間是1ms,那么1個用戶在1秒內(nèi)能完成1000筆事務(wù),TPS就是1000了;如果某筆業(yè)務(wù)響應(yīng)時間是1s,那么1個用戶在1秒內(nèi)只能完成1筆事務(wù),要想達(dá)到1000TPS,至少需要1000個用戶;因此可以說1個用戶可以產(chǎn)生1000TPS,1000個用戶也可以產(chǎn)生1000TPS,無非是看響應(yīng)時間快慢)
? ? ? ?由此可推出他們之間的關(guān)系:
? ? ? ? ? ? QPS(TPS) = 并發(fā)數(shù)/平均響應(yīng)時間
? ? 看個實例:按照二八原則,百分之八十的訪問集中在百分之二十的時間(峰值時間)內(nèi)
? ? ? ? ? ? ? ? ? ? 總PV數(shù)*80%) / 總時間(秒)*20% = 峰值時間每秒請求數(shù)(QPS)
? ? ? ? ? ? ? ? ? ? 假設(shè):網(wǎng)站日PV100萬,則服務(wù)器需要至少多少Q(mào)PS?
? ? ? ? ? ? ? ? ? ? ? ? ? ? (1000000 * 0.8) / (86400 * 0.2) = 47(QPS)
? ? ? 某些情況下的計算中,需要引入Think?Time,從業(yè)務(wù)角度來看,這個時間指用戶進(jìn)行操作時每個請求之間的時間間隔,而在做新能測試時,為了模擬這樣的時間間隔,引入了思考時間這個概念,來更加真實的模擬用戶的操作,即系統(tǒng)真實TPS(QPS) = 并發(fā)數(shù)/(響應(yīng)時間+Think Time)
? ??????當(dāng)沒有遇到性能瓶頸的時候,吞吐量與虛擬用戶數(shù)之間存在一定的聯(lián)系,可以采用以下公式計算:F=VU?*?R?/ T
??其中F為吞吐量,VU表示虛擬用戶個數(shù),R表示每個虛擬用戶發(fā)出的請求數(shù),T表示性能測試所用的時間