一吠各、QPS 每秒查詢
QPS:Queries Per Second意思是“每秒查詢率”,是一臺服務(wù)器每秒能夠相應(yīng)的查詢次數(shù)星瘾,是對一個特定的查詢服務(wù)器在規(guī)定時間內(nèi)所處理流量多少的衡量標(biāo)準(zhǔn)【灞玻互聯(lián)網(wǎng)中琳状,作為域名系統(tǒng)服務(wù)器的機(jī)器的性能經(jīng)常用每秒查詢率來衡量。
二盒齿、TPS 每秒事務(wù)
TPS:是TransactionsPerSecond的縮寫念逞,也就是事務(wù)數(shù)/秒。它是軟件測試結(jié)果的測量單位边翁。一個事務(wù)是指一個客戶機(jī)向服務(wù)器發(fā)送請求然后服務(wù)器做出反應(yīng)的過程翎承。客戶機(jī)在發(fā)送請求時開始計(jì)時符匾,收到服務(wù)器響應(yīng)后結(jié)束計(jì)時叨咖,以此來計(jì)算使用的時間和完成的事務(wù)個數(shù)。QPS vs TPS:QPS基本類似于TPS,但是不同的是甸各,對于一個頁面的一次訪問垛贤,形成一個TPS;但一次頁面請求趣倾,可能產(chǎn)生多次對服務(wù)器的請求聘惦,服務(wù)器對這些請求,就可計(jì)入“QPS”之中儒恋。如善绎,訪問一個頁面會請求服務(wù)器2次,一次訪問诫尽,產(chǎn)生一個“T”禀酱,產(chǎn)生2個“Q”。
三箱锐、RT 響應(yīng)時間
響應(yīng)時間:執(zhí)行一個請求從開始到最后收到響應(yīng)數(shù)據(jù)所花費(fèi)的總體時間,即從客戶端發(fā)起請求到收到服務(wù)器響應(yīng)結(jié)果的時間比勉。響應(yīng)時間RT(Response-time),是一個系統(tǒng)最重要的指標(biāo)之一驹止,它的數(shù)值大小直接反應(yīng)了系統(tǒng)的快慢浩聋。
四、并發(fā)數(shù)
并發(fā)數(shù)是指系統(tǒng)同時能處理的請求數(shù)量臊恋,這個也是反應(yīng)了系統(tǒng)的負(fù)載能力衣洁。
五、吞吐量
系統(tǒng)的吞吐量(承壓能力)與request對CPU的消耗抖仅、外部接口坊夫、IO等等緊密關(guān)聯(lián)。單個request 對CPU消耗越高撤卢,外部系統(tǒng)接口环凿、IO速度越慢,系統(tǒng)吞吐能力越低放吩,反之越高智听。系統(tǒng)吞吐量幾個重要參數(shù):QPS(TPS)、并發(fā)數(shù)渡紫、響應(yīng)時間到推。
QPS(TPS):(Query Per Second)每秒鐘request/事務(wù) 數(shù)量
并發(fā)數(shù): 系統(tǒng)同時處理的request/事務(wù)數(shù)
響應(yīng)時間: 一般取平均響應(yīng)時間
理解了上面三個要素的意義之后,就能推算出它們之間的關(guān)系:
QPS(TPS)= 并發(fā)數(shù)/平均響應(yīng)時間
并發(fā)數(shù) = QPS*平均響應(yīng)時間
六惕澎、實(shí)際舉例
我們通過一個實(shí)例來把上面幾個概念串起來理解莉测。按二八定律來看,如果每天 80% 的訪問集中在 20% 的時間里唧喉,這 20% 時間就叫做峰值時間捣卤。
公式:( 總PV數(shù) * 80% ) / ( 每天秒數(shù) * 20% ) = 峰值時間每秒請求數(shù)(QPS)
機(jī)器:峰值時間每秒QPS / 單臺機(jī)器的QPS = 需要的機(jī)器
1忍抽、每天300w PV 的在單臺機(jī)器上,這臺機(jī)器需要多少Q(mào)PS腌零?
( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)
2梯找、如果一臺機(jī)器的QPS是58,需要幾臺機(jī)器來支持益涧?
139 / 58 = 3
七锈锤、最佳線程數(shù)、QPS闲询、RT
1久免、單線程QPS公式:QPS=1000ms/RT
對同一個系統(tǒng)而言,支持的線程數(shù)越多扭弧,QPS越高阎姥。假設(shè)一個RT是80ms,則可以很容易的計(jì)算出QPS,QPS = 1000/80 = 12.5
多線程場景,如果把服務(wù)端的線程數(shù)提升到2鸽捻,那么整個系統(tǒng)的QPS則為 2*(1000/80) = 25, 可見QPS隨著線程的增加而線性增長呼巴,那QPS上不去就加線程唄,聽起來很有道理御蒲,公司也說的通衣赶,但是往往現(xiàn)實(shí)并非如此。
2厚满、QPS和RT的真實(shí)關(guān)系
我們想象的QPS府瞄、RT關(guān)系如下
實(shí)際的QPS、RT關(guān)系如下
3碘箍、最佳線程數(shù)量
剛好消耗完服務(wù)器的瓶頸資源的臨界線程數(shù)遵馆,公式如下
最佳線程數(shù)量=((線程等待時間+線程cpu時間)/線程cpu時間)* cpu數(shù)量
特性:
在達(dá)到最佳線程數(shù)的時候,線程數(shù)量繼續(xù)遞增丰榴,則QPS不變货邓,而響應(yīng)時間變長,持續(xù)遞增線程數(shù)量四濒,則QPS開始下降换况。
每個系統(tǒng)都有其最佳線程數(shù)量,但是不同狀態(tài)下峻黍,最佳線程數(shù)量是會變化的复隆。
瓶頸資源可以是CPU,可以是內(nèi)存拨匆,可以是鎖資源姆涩,IO資源:超過最佳線程數(shù)-導(dǎo)致資源的競爭,超過最佳線程數(shù)-響應(yīng)時間遞增惭每。