一、QPS(每秒查詢)
QPS(Queries Per Second):表示“每秒查詢率”,指一臺(tái)服務(wù)器每秒能夠相應(yīng)的查詢次數(shù),是對(duì)一個(gè)特定的查詢服務(wù)器在規(guī)定時(shí)間內(nèi)所處理流量多少的衡量標(biāo)準(zhǔn)。
二、TPS(每秒事務(wù))
TPS(Transaction Per Second):表示每秒的事務(wù)數(shù),指軟件測(cè)試的測(cè)量單位。這其中一個(gè)事務(wù)是指一個(gè)客戶端向服務(wù)器發(fā)送請(qǐng)求然后服務(wù)器做出反應(yīng)的過程。TPS的一個(gè)完整計(jì)時(shí)周期是客戶機(jī)在發(fā)送請(qǐng)求時(shí)開始計(jì)時(shí),收到服務(wù)器的響應(yīng)后結(jié)束計(jì)時(shí),以此來統(tǒng)計(jì)相應(yīng)時(shí)間內(nèi)的完成事務(wù)的個(gè)數(shù)即TPS,即每秒完成的事務(wù)數(shù)量。
三、RT(響應(yīng)時(shí)間)
RT(Response Time):表示響應(yīng)時(shí)間,指執(zhí)行一個(gè)請(qǐng)求從開始到最后收到響應(yīng)數(shù)據(jù)花費(fèi)的總體時(shí)間,即從客戶端發(fā)起請(qǐng)求到收到服務(wù)器響應(yīng)結(jié)果的時(shí)間。因此RT直接代表了服務(wù)系統(tǒng)的快慢,是線上服務(wù)最重要的指標(biāo)之一,直接關(guān)聯(lián)著用戶體驗(yàn)。
四、并發(fā)數(shù)
并發(fā)數(shù)是指系統(tǒng)同時(shí)能處理的請(qǐng)求數(shù)量,直接反映了系統(tǒng)的負(fù)載能力
五、吞吐量
系統(tǒng)的吞吐量(承壓能力)與request對(duì)CPU的消耗、外部接口和IO讀寫等等有密切的關(guān)聯(lián),單個(gè)request對(duì)CPU的消耗越高,IO速度越慢和對(duì)外部接口的依賴越多,就會(huì)導(dǎo)致系統(tǒng)吞吐率越低,反之則越高。
系統(tǒng)吞吐量幾個(gè)重要參數(shù):QPS(TPS)、并發(fā)數(shù)、響應(yīng)時(shí)間。
QPS(TPS):每秒鐘request/事務(wù) 數(shù)量
并發(fā)數(shù): 系統(tǒng)同時(shí)處理的request/事務(wù)數(shù)
響應(yīng)時(shí)間: 一般取平均響應(yīng)時(shí)間
六、最佳線程數(shù)、QPS、RT
1、單線程QPS公式:QPS=1000ms/RT
對(duì)同一個(gè)系統(tǒng)而言,支持的線程數(shù)越多,QPS越高。假設(shè)一個(gè)RT是80ms,則可以很容易的計(jì)算出QPS,QPS = 1000/80 = 12.5
多線程場(chǎng)景,如果把服務(wù)端的線程數(shù)提升到2,那么整個(gè)系統(tǒng)的QPS則為 2*(1000/80) = 25, 可見QPS隨著線程的增加而線性增長,那QPS上不去就加線程唄,聽起來很有道理,公司也說的通,但是往往現(xiàn)實(shí)并非如此。
2、最佳線程數(shù)量
剛好消耗完服務(wù)器的瓶頸資源的臨界線程數(shù),公式如下
最佳線程數(shù)量=((線程等待時(shí)間+線程cpu時(shí)間)/線程cpu時(shí)間)* cpu數(shù)量
特性:
在達(dá)到最佳線程數(shù)的時(shí)候,線程數(shù)量繼續(xù)遞增,則QPS不變,而響應(yīng)時(shí)間變長,持續(xù)遞增線程數(shù)量,則QPS開始下降。
每個(gè)系統(tǒng)都有其最佳線程數(shù)量,但是不同狀態(tài)下,最佳線程數(shù)量是會(huì)變化的。
瓶頸資源可以是CPU,可以是內(nèi)存,可以是鎖資源,IO資源:超過最佳線程數(shù)-導(dǎo)致資源的競(jìng)爭(zhēng),超過最佳線程數(shù)-響應(yīng)時(shí)間遞增。