QPS
QPS Queries Per Second
是每秒查詢率 ,是一臺服務(wù)器每秒能夠相應(yīng)的查詢次數(shù),是對一個(gè)特定的查詢服務(wù)器在規(guī)定時(shí)間內(nèi)所處理流量多少的衡量標(biāo)準(zhǔn), 即每秒的響應(yīng)請求數(shù),也即是最大吞吐能力。
TPS
TPS Transactions Per Second
也就是事務(wù)數(shù)/秒。一個(gè)事務(wù)是指一個(gè)客戶機(jī)向服務(wù)器發(fā)送請求然后服務(wù)器做出反應(yīng)的過程??蛻魴C(jī)在發(fā)送請求時(shí)開始計(jì)時(shí),收到服務(wù)器響應(yīng)后結(jié)束計(jì)時(shí),以此來計(jì)算使用的時(shí)間和完成的事務(wù)個(gè)數(shù),
QPS和TPS區(qū)別
舉例,請求一個(gè)index.html 頁面,客戶端發(fā)起了三個(gè)請求(css、js、index接口),那么此時(shí)TPS =1 、QPS =3 。
在針對單接口的時(shí)候TPS = QPS。
并發(fā)數(shù)
并發(fā)數(shù)(并發(fā)度):指系統(tǒng)同時(shí)能處理的請求數(shù)量,同樣反應(yīng)了系統(tǒng)的負(fù)載能力。這個(gè)數(shù)值可以分析機(jī)器1s內(nèi)的訪問日志數(shù)量來得到。
壓測時(shí),一般都是指定并發(fā)數(shù)來壓出單實(shí)例的QPS拐點(diǎn),即一步一步提高并發(fā)數(shù)來測出對應(yīng)的QPS,平均RT,錯(cuò)誤率
- 并發(fā)數(shù):100
- 并發(fā)數(shù):300
- 并發(fā)數(shù):500
吐吞量
吐吞量:吞吐量(Throughput)是指系統(tǒng)在單位時(shí)間內(nèi)處理請求的數(shù)量,TPS、QPS都是吞吐量的常用量化指標(biāo)。
RT
響應(yīng)時(shí)間:RT(Response-time)就是從客戶端請求發(fā)起到服務(wù)器響應(yīng)結(jié)果的時(shí)間。RT這個(gè)參數(shù)是系統(tǒng)最重要的指標(biāo)之一,它的大小直接反應(yīng)了當(dāng)前系統(tǒng)的響應(yīng)狀態(tài)?;竞驮蹅冇脩趔w驗(yàn)息息相關(guān),現(xiàn)在好一點(diǎn)監(jiān)控系統(tǒng)一般都有三個(gè)RT,即平均、最大、最小。
P99,P95,P50
一般系統(tǒng)RT 100ms 以內(nèi)是比較正常的,300ms 勉強(qiáng)可以接受,1s的話再加上一些其他的外因,給用戶的體驗(yàn)就是實(shí)實(shí)在在的不爽了。
P99 < 1s,P95 < 300ms
上面幾個(gè)名詞的計(jì)算關(guān)系
-
QPS = 并發(fā)數(shù) / 平均響應(yīng)時(shí)間
-
并發(fā)數(shù) = QPS * 平均響應(yīng)時(shí)間
計(jì)算1:QPS、RT、并發(fā)數(shù)計(jì)算
以下示例來著互聯(lián)網(wǎng)文章-艾小仙
假設(shè)公司每天早上9點(diǎn)到10點(diǎn)1個(gè)小時(shí)內(nèi)都有員工要上廁所,公司有3600個(gè)員工,平均每個(gè)員工上廁所時(shí)間為10分鐘,我們來計(jì)算一下。
QPS = 3600/60*60 1
RT = 10*60 600秒
并發(fā)數(shù) = 1 * 600 600
這樣就意味著如果想達(dá)到最好的蹲坑體驗(yàn),公司需要600個(gè)坑位來滿足員工需求,否則的話上廁所就要排隊(duì)等待了。
針對以上答案不是很好理解,我是這么分析的,其實(shí)上面的需求是 1個(gè)小時(shí) 讓3600人拉完屎,即廁所服務(wù)的整體吞吐量需求為 3600人/1時(shí) = 3600人/3600s = 1/s
,即QPS = 1。
那么需要多少個(gè)廁所實(shí)例來滿足需求呢?
由于單個(gè)廁所實(shí)例的qps = 1人/10m = 1人/600s。
所以需要 1人/s
/ 1人/600s
= 600 個(gè) 廁所實(shí)例。
QPS
- 廁所服務(wù):3600人/1時(shí) = 1 QPS
- 廁所實(shí)例:1人/10m = 1/600 = 0.00167 QPS
響應(yīng)時(shí)間
-
廁所服務(wù):1h
-
廁所實(shí)例:10m
并發(fā)數(shù)
如果按照上面的計(jì)算公式 并發(fā)數(shù) = QPS * 平均響應(yīng)時(shí)間
,那這里廁所實(shí)例的并發(fā)數(shù)等于多少呢?
1 * 1h = 3600??? 不對哦,這里的平均響應(yīng)時(shí)間 是每個(gè)人的即1* 10m = 600。
也可以這么理解廁所服務(wù)提供了 600 個(gè)廁所坑位,所以支持的最大并發(fā)數(shù),即同時(shí)拉屎數(shù) = 600…
- 廁所服務(wù):1QPS(服務(wù)的QPS) * 10m (實(shí)例的響應(yīng)時(shí)間 一個(gè)call) = 600
- 廁所實(shí)例:0.00167 QPS * 10m = 1
吞吐量
- 廁所服務(wù)的吞吐量為 3600 TPH = 1 TPS
PV
PV(Page View):頁面訪問量,即頁面瀏覽量或點(diǎn)擊量,用戶每次刷新即被計(jì)算一次??梢越y(tǒng)計(jì)服務(wù)一天的訪問日志得到。 可以通過Nginx、Apache之類的Web Server得到。
UV
UV(Unique Visitor):獨(dú)立訪客,統(tǒng)計(jì)1天內(nèi)訪問某站點(diǎn)的用戶數(shù)??梢越y(tǒng)計(jì)服務(wù)一天的訪問日志并根據(jù)用戶的唯一標(biāo)識去重得到??梢酝ㄟ^Nginx、Apache之類的Web Server得到。
DAU
DAU(Daily Active User),日活躍用戶數(shù)量。常用于反映網(wǎng)站、互聯(lián)網(wǎng)應(yīng)用或網(wǎng)絡(luò)游戲的運(yùn)營情況。DAU通常統(tǒng)計(jì)一日(統(tǒng)計(jì)日)之內(nèi),登錄或使用了某個(gè)產(chǎn)品的用戶數(shù)(去除重復(fù)登錄的用戶),與UV概念相似
MAU
MAU(Month Active User):月活躍用戶數(shù)量,指網(wǎng)站、app等去重后的月活躍用戶數(shù)量
計(jì)算2:峰值QPS和機(jī)器計(jì)算
原理:按二八定律來看,如果每天80%的訪問集中在20%的時(shí)間里,這20%時(shí)間叫做峰值時(shí)間 。
這里應(yīng)該根據(jù)業(yè)務(wù)場景來定,例如這個(gè)時(shí)間 * 20%
針對一些政企機(jī)關(guān)單位這個(gè)時(shí)間不是 24h而是8h,應(yīng)靈活運(yùn)用。
公式:
-
峰值QPS:( 總PV數(shù) * 80% ) / ( 每天秒數(shù) * 20% ) = 峰值時(shí)間每秒請求數(shù)(QPS)
-
需要的機(jī)器:峰值時(shí)間每秒QPS / 單臺機(jī)器的QPS = 需要的機(jī)器
示例:
問:每天100w PV 的在單臺機(jī)器上,這臺機(jī)器峰值是多少Q(mào)PS?
答:( 1000000 * 0.8 ) / (86400 * 0.2 ) = 46 (QPS)
如果有成熟的監(jiān)控可以從監(jiān)控上去看實(shí)際的QPS與計(jì)算的偏差。
問:如果一臺機(jī)器的QPS是18,需要幾臺機(jī)器來支持?文章來源:http://www.zghlxwxcb.cn/news/detail-446115.html
答:46/ 18 = 3文章來源地址http://www.zghlxwxcb.cn/news/detail-446115.html
到了這里,關(guān)于QPS、TPS、RT、并發(fā)用戶數(shù)、吞吐量的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!