一文了解QPS、TPS、并發(fā)用戶(hù)數(shù)、吞吐量的關(guān)系
1、QPS
QPS Queries Per Second
是每秒查詢(xún)率 ,是一臺(tái)服務(wù)器每秒能夠相應(yīng)的查詢(xún)次數(shù),是對(duì)一個(gè)特定的查詢(xún)服務(wù)器在規(guī)定時(shí)間內(nèi)所處理流量多少的衡量標(biāo)準(zhǔn), 即每秒的響應(yīng)請(qǐng)求數(shù),也即是最大吞吐能力。
2、TPS
TPS Transactions Per Second
也就是事務(wù)數(shù)/秒。一個(gè)事務(wù)是指一個(gè)客戶(hù)機(jī)向服務(wù)器發(fā)送請(qǐng)求然后服務(wù)器做出反應(yīng)的過(guò)程??蛻?hù)機(jī)在發(fā)送請(qǐng)求時(shí)開(kāi)始計(jì)時(shí),收到服務(wù)器響應(yīng)后結(jié)束計(jì)時(shí),以此來(lái)計(jì)算使用的時(shí)間和完成的事務(wù)個(gè)數(shù),
個(gè)人理解如下:
1、Tps即每秒處理事務(wù)數(shù),包括了
用戶(hù)請(qǐng)求服務(wù)器
-
服務(wù)器自己的內(nèi)部處理 -
服務(wù)器返回給用戶(hù)
這三個(gè)過(guò)程,每秒能夠完成N個(gè)這三個(gè)過(guò)程,Tps也就是N;
2、Qps基本類(lèi)似于Tps,但是不同的是,對(duì)于一個(gè)頁(yè)面的一次訪(fǎng)問(wèn),形成一個(gè)Tps;但一次頁(yè)面請(qǐng)求,可能產(chǎn)生多次對(duì)服務(wù)器的請(qǐng)求,服務(wù)器對(duì)這些請(qǐng)求,就可計(jì)入“Qps”之中。
例子:
例如:訪(fǎng)問(wèn)一個(gè)頁(yè)面會(huì)請(qǐng)求服務(wù)器3次,一次放,產(chǎn)生一個(gè)“T”,產(chǎn)生3個(gè)“Q”
例如:一個(gè)大胃王一秒能吃10個(gè)包子,一個(gè)女孩子0.1秒能吃1個(gè)包子,那么他們是不是一樣的呢?答案是否定的,因?yàn)檫@個(gè)女孩子不可能在一秒鐘吃下10個(gè)包子,她可能要吃很久。這個(gè)時(shí)候這個(gè)大胃王就相當(dāng)于TPS,而這個(gè)女孩子則是QPS。雖然很相似,但其實(shí)是不同的。
4、并發(fā)數(shù)
5、吐吞量
吞吐量是指系統(tǒng)在單位時(shí)間內(nèi)處理請(qǐng)求的數(shù)量,TPS、QPS都是吞吐量的常用量化指標(biāo)。
系統(tǒng)吞吐量要素
一個(gè)系統(tǒng)的吞吐量(承壓能力)與request(請(qǐng)求)對(duì)cpu的消耗,外部接口,IO等等緊密關(guān)聯(lián)。
單個(gè)request 對(duì)cpu消耗越高,外部系統(tǒng)接口,IO影響速度越慢,系統(tǒng)吞吐能力越低,反之越高。
重要參數(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í)間
關(guān)系
QPS(TPS)=并發(fā)數(shù)/平均響應(yīng)時(shí)間
一個(gè)系統(tǒng)吞吐量通常有QPS(TPS),并發(fā)數(shù)兩個(gè)因素決定,每套系統(tǒng)這個(gè)兩個(gè)值都有一個(gè)相對(duì)極限值,在應(yīng)用場(chǎng)景訪(fǎng)問(wèn)壓力下,只要某一項(xiàng)達(dá)到系統(tǒng)最高值,系統(tǒng)吞吐量就上不去了,如果壓力繼續(xù)增大,系統(tǒng)的吞吐量反而會(huì)下降,原因是系統(tǒng)超負(fù)荷工作,上下文切換,內(nèi)存等等其他消耗導(dǎo)致系統(tǒng)性能下降。
6、PV
PV(Page View):頁(yè)面訪(fǎng)問(wèn)量,即頁(yè)面瀏覽量或點(diǎn)擊量,用戶(hù)每次刷新即被計(jì)算一次??梢越y(tǒng)計(jì)服務(wù)一天的訪(fǎng)問(wèn)日志得到。
7、UV
UV(Unique Visitor):獨(dú)立訪(fǎng)客,統(tǒng)計(jì)1天內(nèi)訪(fǎng)問(wèn)某站點(diǎn)的用戶(hù)數(shù)??梢越y(tǒng)計(jì)服務(wù)一天的訪(fǎng)問(wèn)日志并根據(jù)用戶(hù)的唯一標(biāo)識(shí)去重得到。響應(yīng)時(shí)間(RT):響應(yīng)時(shí)間是指系統(tǒng)對(duì)請(qǐng)求作出響應(yīng)的時(shí)間,一般取平均響應(yīng)時(shí)間??梢酝ㄟ^(guò)Nginx、Apache之類(lèi)的Web Server得到。
8、DAU
DAU(Daily Active User),日活躍用戶(hù)數(shù)量。常用于反映網(wǎng)站、互聯(lián)網(wǎng)應(yīng)用或網(wǎng)絡(luò)游戲的運(yùn)營(yíng)情況。DAU通常統(tǒng)計(jì)一日(統(tǒng)計(jì)日)之內(nèi),登錄或使用了某個(gè)產(chǎn)品的用戶(hù)數(shù)(去除重復(fù)登錄的用戶(hù)),與UV概念相似
9、MAU
MAU(Month Active User):月活躍用戶(hù)數(shù)量,指網(wǎng)站、app等去重后的月活躍用戶(hù)數(shù)量
10、系統(tǒng)吞吐量評(píng)估
我們?cè)谧鱿到y(tǒng)設(shè)計(jì)的時(shí)候就需要考慮CPU運(yùn)算,IO,外部系統(tǒng)響應(yīng)因素造成的影響以及對(duì)系統(tǒng)性能的初步預(yù)估。
而通常情況下,我們面對(duì)需求,我們?cè)u(píng)估出來(lái)的出來(lái)QPS,并發(fā)數(shù)之外,還有另外一個(gè)維度:日pv。
通過(guò)觀察系統(tǒng)的訪(fǎng)問(wèn)日志發(fā)現(xiàn),在用戶(hù)量很大的情況下,各個(gè)時(shí)間周期內(nèi)的同一時(shí)間段的訪(fǎng)問(wèn)流量幾乎一樣。比如工作日的每天早上。只要能拿到日流量圖和QPS我們就可以推算日流量。
通常的技術(shù)方法:
1、找出系統(tǒng)的最高TPS和日PV,這兩個(gè)要素有相對(duì)比較穩(wěn)定的關(guān)系(除了放假、季節(jié)性因素影響之外)
2、通過(guò)壓力測(cè)試或者經(jīng)驗(yàn)預(yù)估,得出最高TPS,然后跟進(jìn)1的關(guān)系,計(jì)算出系統(tǒng)最高的日吞吐量。B2B中文和淘寶面對(duì)的客戶(hù)群不一樣,這兩個(gè)客戶(hù)群的網(wǎng)絡(luò)行為不應(yīng)用,他們之間的TPS和PV關(guān)系比例也不一樣。
11、軟件性能測(cè)試的基本概念和計(jì)算公式
軟件做性能測(cè)試時(shí)需要關(guān)注哪些性能呢?
首先,開(kāi)發(fā)軟件的目的是為了讓用戶(hù)使用,我們先站在用戶(hù)的角度分析一下,用戶(hù)需要關(guān)注哪些性能。
對(duì)于用戶(hù)來(lái)說(shuō),當(dāng)點(diǎn)擊一個(gè)按鈕、鏈接或發(fā)出一條指令開(kāi)始,到系統(tǒng)把結(jié)果已用戶(hù)感知的形式展現(xiàn)出來(lái)為止,這個(gè)過(guò)程所消耗的時(shí)間是用戶(hù)對(duì)這個(gè)軟件性能的直觀印 象。也就是我們所說(shuō)的響應(yīng)時(shí)間,當(dāng)相應(yīng)時(shí)間較小時(shí),用戶(hù)體驗(yàn)是很好的,當(dāng)然用戶(hù)體驗(yàn)的響應(yīng)時(shí)間包括個(gè)人主觀因素和客觀響應(yīng)時(shí)間,在設(shè)計(jì)軟件時(shí),我們就需要 考慮到如何更好地結(jié)合這兩部分達(dá)到用戶(hù)最佳的體驗(yàn)。如:用戶(hù)在大數(shù)據(jù)量查詢(xún)時(shí),我們可以將先提取出來(lái)的數(shù)據(jù)展示給用戶(hù),在用戶(hù)看的過(guò)程中繼續(xù)進(jìn)行數(shù)據(jù)檢 索,這時(shí)用戶(hù)并不知道我們后臺(tái)在做什么。
用戶(hù)關(guān)注的是用戶(hù)操作的相應(yīng)時(shí)間。
其次,我們站在管理員的角度考慮需要關(guān)注的性能點(diǎn)。
1、 響應(yīng)時(shí)間
2、 服務(wù)器資源使用情況是否合理
3、 應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)資源使用是否合理
4、 系統(tǒng)能否實(shí)現(xiàn)擴(kuò)展
5、 系統(tǒng)最多支持多少用戶(hù)訪(fǎng)問(wèn)、系統(tǒng)最大業(yè)務(wù)處理量是多少
6、 系統(tǒng)性能可能存在的瓶頸在哪里
7、 更換那些設(shè)備可以提高性能
8、 系統(tǒng)能否支持7×24小時(shí)的業(yè)務(wù)訪(fǎng)問(wèn)
再次,站在開(kāi)發(fā)(設(shè)計(jì))人員角度去考慮。
1、 架構(gòu)設(shè)計(jì)是否合理
2、 數(shù)據(jù)庫(kù)設(shè)計(jì)是否合理
3、 代碼是否存在性能方面的問(wèn)題
4、 系統(tǒng)中是否有不合理的內(nèi)存使用方式
5、 系統(tǒng)中是否存在不合理的線(xiàn)程同步方式
6、 系統(tǒng)中是否存在不合理的資源競(jìng)爭(zhēng)
作者:Fysddsw_lc
來(lái)源:https://juejin.im/post/5c2cb5e15188257a937fbfaf?utm_source=gold_browser_extension
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!