1、QPS:單個(gè)進(jìn)程每秒請(qǐng)求服務(wù)器的 成功次數(shù)
每秒查詢率(Query Per Second) ,每秒的響應(yīng)請(qǐng)求數(shù),也即是最大吞吐能力。
QPS = req/sec = 請(qǐng)求數(shù)/秒
QPS統(tǒng)計(jì)方式 [一般使用 http_load 進(jìn)行統(tǒng)計(jì)]
QPS = 總請(qǐng)求數(shù) / ( 進(jìn)程總數(shù) * 請(qǐng)求時(shí)間 )
QPS: 單個(gè)進(jìn)程每秒請(qǐng)求服務(wù)器的成功次數(shù)
峰值QPS:
原理:每天80%的訪問(wèn)集中在20%的時(shí)間里,這20%時(shí)間叫做峰值時(shí)間
公式:( 總PV數(shù) * 80% ) / ( 每天秒數(shù) * 20% ) = 峰值時(shí)間每秒請(qǐng)求數(shù)(QPS)
2、PV(Page View):訪問(wèn)量
訪問(wèn)量即Page View, 即頁(yè)面瀏覽量或點(diǎn)擊量,用戶每次刷新即被計(jì)算一次
單臺(tái)服務(wù)器每天PV計(jì)算
公式1:每天總PV = QPS * 3600 * 6
公式2:每天總PV = QPS * 3600 * 8
3、UV(Unique Visitor):獨(dú)立訪客
獨(dú)立訪客即Unique Visitor,訪問(wèn)您網(wǎng)站的一臺(tái)電腦客戶端為一個(gè)訪客。00:00-24:00內(nèi)相同的客戶端只被計(jì)算一次
服務(wù)器數(shù)量:
機(jī)器:峰值時(shí)間每秒QPS / 單臺(tái)機(jī)器的QPS = 需要的機(jī)器
機(jī)器:ceil( 每天總PV / 單臺(tái)服務(wù)器每天總PV )
并發(fā)數(shù):
并發(fā)用戶數(shù)是指系統(tǒng)可以同時(shí)承載的正常使用系統(tǒng)功能的用戶的數(shù)量
吐吞量:
吞吐量是指系統(tǒng)在單位時(shí)間內(nèi)處理請(qǐng)求的數(shù)量
4、響應(yīng)時(shí)間(RT):
響應(yīng)時(shí)間是指系統(tǒng)對(duì)請(qǐng)求作出響應(yīng)的時(shí)間
例子:
每天300w PV 的在單臺(tái)機(jī)器上,這臺(tái)機(jī)器需要多少Q(mào)PS?
答:( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)
如果一臺(tái)機(jī)器的QPS是58,需要幾臺(tái)機(jī)器來(lái)支持?
答:139 / 58 = 3
最佳線程數(shù):
性能壓測(cè)的情況下,起初隨著用戶數(shù)的增加,QPS會(huì)上升,當(dāng)?shù)搅艘欢ǖ拈y值之后,用戶數(shù)量增加QPS并不會(huì)增加,或者增加不明顯,同時(shí)請(qǐng)求的響應(yīng)時(shí)間卻大幅增加。這個(gè)閥值我們認(rèn)為是最佳線程數(shù)。
為什么要找最佳線程數(shù)
- 過(guò)多的線程只會(huì)造成,更多的內(nèi)存開(kāi)銷,更多的CPU開(kāi)銷,但是對(duì)提升QPS確毫無(wú)幫助
- 找到最佳線程數(shù)后通過(guò)簡(jiǎn)單的設(shè)置,可以讓web系統(tǒng)更加穩(wěn)定,得到最高,最穩(wěn)定的QPS輸出
最佳線程數(shù)的獲?。?/p>
- 通過(guò)用戶慢慢遞增來(lái)進(jìn)行性能壓測(cè),觀察QPS,響應(yīng)時(shí)間
- 根據(jù)公式計(jì)算:服務(wù)器端最佳線程數(shù)量=((線程等待時(shí)間+線程cpu時(shí)間)/線程cpu時(shí)間) * cpu數(shù)量
- 單用戶壓測(cè),查看CPU的消耗,然后直接乘以百分比,再進(jìn)行壓測(cè),一般這個(gè)值的附近應(yīng)該就是最佳線程數(shù)量。
影響最佳線程數(shù)的主要因素:
- IO
IO開(kāi)銷較多的應(yīng)用其CPU線程等待時(shí)間會(huì)比較長(zhǎng),所以線程數(shù)量可以開(kāi)的多一些,相反則線程數(shù)量要少一些,其實(shí)有兩種極端,純IO的應(yīng)用,比如proxy,則線程數(shù)量可以開(kāi)到非常大(實(shí)在太大了則需要考慮線程切換的開(kāi)銷),這種應(yīng)用基本上后端(比如這個(gè)proxy是代理搜索的)的QPS能有多少,proxy就有多少。
- CPU
對(duì)于耗CPU的計(jì)算,這種情況一般來(lái)講只能開(kāi)到CPU個(gè)數(shù)的線程數(shù)量。但是并不是說(shuō)這種應(yīng)用的QPS就不高,往往這種應(yīng)用的QPS可以很高,因?yàn)楹腃PU計(jì)算的應(yīng)用,往往處理單次請(qǐng)求的時(shí)間會(huì)很短。
QPS和線程數(shù)的關(guān)系
-
在最佳線程數(shù)量之前,QPS和線程是互相遞增的關(guān)系,線程數(shù)量到了最佳線程之后,QPS持平,不在上升,甚至略有下降,同時(shí)響應(yīng)時(shí)間持續(xù)上升。
-
同一個(gè)系統(tǒng)而言,最佳線程數(shù)越多,QPS越高
原文:https://blog.csdn.net/langduhualangdu/article/details/47055789
參考2(QPS(req/sec 每秒請(qǐng)求數(shù))、PV 、RT (響應(yīng)時(shí)間) 之間的關(guān)系):https://blog.csdn.net/lzwglory/article/details/69230689
|