廣義吞吐量:
吞吐量是指對網(wǎng)絡(luò)乾闰、設(shè)備、端口喇颁、虛電路或其他設(shè)施戳护,單位時間內(nèi)成功地傳送數(shù)據(jù)的數(shù)量(以比特、字節(jié)举农、分組等測量)荆针。--百度百科
那么應(yīng)用到計算機(jī)的吞吐量又被定義在不同的應(yīng)用上
一. 系統(tǒng)吞吐量:吞吐量是指在單位時間內(nèi)中央處理器(CPU)從存儲設(shè)備讀取->處理->存儲信息的量。
影響因素
1颁糟、存儲設(shè)備的存取速度航背,即從存儲器讀出數(shù)據(jù)或數(shù)據(jù)寫入存儲器所需時間;
2棱貌、CPU性能:
1)時鐘頻率玖媚;
2)每條指令所花的時鐘周期數(shù)(即CPI);
3)指令條數(shù)婚脱;
3今魔、系統(tǒng)結(jié)構(gòu):
????? 如并行處理結(jié)構(gòu)可增大吞吐量。
二.TPS (transaction per second) 代表每秒執(zhí)行的事務(wù)數(shù)量
通過舉例理解吞吐量以及解決服務(wù)器遇到的瓶頸問題
https://blog.csdn.net/qq_15037231/article/details/79710576
三.QPS(query per second)每秒查詢率是對一個特定的查詢服務(wù)器在規(guī)定時間內(nèi)所處理流量多少的衡量標(biāo)準(zhǔn)障贸。
因特網(wǎng)上错森,經(jīng)常用每秒查詢率來衡量域名系統(tǒng)服務(wù)器的機(jī)器的性能,其即為QPS篮洁。
計算關(guān)系:
QPS = 并發(fā)量 / 平均響應(yīng)時間
并發(fā)量 = QPS * 平均響應(yīng)時間
四.PV和UV
pv訪問量(Page View)涩维,即頁面訪問量,每打開一次頁面PV計數(shù)+1袁波,刷新頁面也是瓦阐。
UV訪問數(shù)(Unique Visitor)指獨(dú)立訪客訪問數(shù),一臺電腦終端為一個訪客锋叨。
PV(訪問量):PV反映的是瀏覽某網(wǎng)站的頁面數(shù)垄分,所以每刷新一次也算一次。就是說PV與來訪者的數(shù)量成正比娃磺,但PV并不是頁面的來訪者數(shù)量薄湿,而是網(wǎng)站被訪問的頁面數(shù)量。
UV(獨(dú)立訪客):可以理解成訪問某網(wǎng)站的電腦的數(shù)量。網(wǎng)站判斷來訪電腦的身份是通過來訪電腦的cookies實(shí)現(xiàn)的豺瘤。如果更換了IP后但不清除cookies吆倦,再訪問相同網(wǎng)站,該網(wǎng)站的統(tǒng)計中UV數(shù)是不變的
五.綜上所述
??一個系統(tǒng)的吞度量(承壓能力)與request對CPU的消耗坐求、外部接口蚕泽、IO等等緊密關(guān)聯(lián)。
單個reqeust?對CPU消耗越高桥嗤,外部系統(tǒng)接口须妻、IO影響速度越慢,系統(tǒng)吞吐能力越低泛领,反之越高荒吏。
系統(tǒng)吞吐量幾個重要參數(shù):QPS(TPS)、并發(fā)數(shù)渊鞋、響應(yīng)時間
QPS(TPS):每秒鐘request/事務(wù)?數(shù)量
并發(fā)數(shù):系統(tǒng)同時處理的request/事務(wù)數(shù)
響應(yīng)時間:?一般取平均響應(yīng)時間
(很多人經(jīng)常會把并發(fā)數(shù)和TPS理解混淆)
理解了上面三個要素的意義之后绰更,就能推算出它們之間的關(guān)系:
QPS(TPS)=?并發(fā)數(shù)/平均響應(yīng)時間
????????一個系統(tǒng)吞吐量通常由QPS(TPS)、并發(fā)數(shù)兩個因素決定锡宋,每套系統(tǒng)這兩個值都有一個相對極限值儡湾,在應(yīng)用場景訪問壓力下,只要某一項(xiàng)達(dá)到系統(tǒng)最高值执俩,系統(tǒng)的吞吐量就上不去了徐钠,如果壓力繼續(xù)增大,系統(tǒng)的吞吐量反而會下降役首,原因是系統(tǒng)超負(fù)荷工作丹皱,上下文切換、內(nèi)存等等其它消耗導(dǎo)致系統(tǒng)性能下降宋税。
首先,開發(fā)軟件的目的是為了讓用戶使用讼油,我們先站在用戶的角度分析一下杰赛,用戶需要關(guān)注哪些性能。
對于用戶來說矮台,當(dāng)點(diǎn)擊一個按鈕乏屯、鏈接或發(fā)出一條指令開始,到系統(tǒng)把結(jié)果已用戶感知的形式展現(xiàn)出來為止瘦赫,這個過程所消耗的時間是用戶對這個軟件性能的直觀印象辰晕。也就是我們所說的響應(yīng)時間,當(dāng)相應(yīng)時間較小時确虱,用戶體驗(yàn)是很好的含友,當(dāng)然用戶體驗(yàn)的響應(yīng)時間包括個人主觀因素和客觀響應(yīng)時間,在設(shè)計軟件時,我們就需要考慮到如何更好地結(jié)合這兩部分達(dá)到用戶最佳的體驗(yàn)窘问。如:用戶在大數(shù)據(jù)量查詢時辆童,我們可以將先提取出來的數(shù)據(jù)展示給用戶,在用戶看的過程中繼續(xù)進(jìn)行數(shù)據(jù)檢索惠赫,這時用戶并不知道我們后臺在做什么把鉴。
用戶關(guān)注的是用戶操作的相應(yīng)時間。
其次儿咱,我們站在管理員的角度考慮需要關(guān)注的性能點(diǎn)庭砍。
1、 相應(yīng)時間
2混埠、 服務(wù)器資源使用情況是否合理
3怠缸、 應(yīng)用服務(wù)器和數(shù)據(jù)庫資源使用是否合理
4、 系統(tǒng)能否實(shí)現(xiàn)擴(kuò)展
5岔冀、 系統(tǒng)最多支持多少用戶訪問凯旭、系統(tǒng)最大業(yè)務(wù)處理量是多少
6、 系統(tǒng)性能可能存在的瓶頸在哪里
7使套、 更換那些設(shè)備可以提高性能
8罐呼、 系統(tǒng)能否支持7×24小時的業(yè)務(wù)訪問
再次,站在開發(fā)(設(shè)計)人員角度去考慮侦高。
1嫉柴、 架構(gòu)設(shè)計是否合理
2、 數(shù)據(jù)庫設(shè)計是否合理
3奉呛、 代碼是否存在性能方面的問題
4计螺、 系統(tǒng)中是否有不合理的內(nèi)存使用方式
5、 系統(tǒng)中是否存在不合理的線程同步方式
6瞧壮、 系統(tǒng)中是否存在不合理的資源競爭
那么站在性能測試工程師的角度登馒,我們要關(guān)注什么呢?
一句話咆槽,我們要關(guān)注以上所有的性能點(diǎn)陈轿。
二、軟件性能的幾個主要術(shù)語
1秦忿、響應(yīng)時間:對請求作出響應(yīng)所需要的時間
網(wǎng)絡(luò)傳輸時間:N1+N2+N3+N4
應(yīng)用服務(wù)器處理時間:A1+A3
數(shù)據(jù)庫服務(wù)器處理時間:A2
響應(yīng)時間=N1+N2+N3+N4+A1+A3+A2
2麦射、并發(fā)用戶數(shù)的計算公式
系統(tǒng)用戶數(shù):系統(tǒng)額定的用戶數(shù)量,如一個OA系統(tǒng)灯谣,可能使用該系統(tǒng)的用戶總數(shù)是5000個潜秋,那么這個數(shù)量,就是系統(tǒng)用戶數(shù)胎许。
同時在線用戶數(shù):在一定的時間范圍內(nèi)峻呛,最大的同時在線用戶數(shù)量罗售。
同時在線用戶數(shù)=每秒請求數(shù)RPS(吞吐量)+并發(fā)連接數(shù)+平均用戶思考時間
平均并發(fā)用戶數(shù)的計算:C=nL / T
其中C是平均的并發(fā)用戶數(shù),n是平均每天訪問用戶數(shù)(login session)杀饵,L是一天內(nèi)用戶從登錄到退出的平均時間(login session的平均時間)莽囤,T是考察時間長度(一天內(nèi)多長時間有用戶使用系統(tǒng))
并發(fā)用戶數(shù)峰值計算:C^約等于C + 3*根號C?
其中C^是并發(fā)用戶峰值,C是平均并發(fā)用戶數(shù)切距,該公式遵循泊松分布理論朽缎。
3、吞吐量的計算公式
指單位時間內(nèi)系統(tǒng)處理用戶的請求數(shù)
從業(yè)務(wù)角度看谜悟,吞吐量可以用:請求數(shù)/秒话肖、頁面數(shù)/秒、人數(shù)/天或處理業(yè)務(wù)數(shù)/小時等單位來衡量
從網(wǎng)絡(luò)角度看葡幸,吞吐量可以用:字節(jié)/秒來衡量
對于交互式應(yīng)用來說最筒,吞吐量指標(biāo)反映的是服務(wù)器承受的壓力,他能夠說明系統(tǒng)的負(fù)載能力
以不同方式表達(dá)的吞吐量可以說明不同層次的問題蔚叨,例如床蜘,以字節(jié)數(shù)/秒方式可以表示數(shù)要受網(wǎng)絡(luò)基礎(chǔ)設(shè)施、服務(wù)器架構(gòu)蔑水、應(yīng)用服務(wù)器制約等方面的瓶頸邢锯;已請求數(shù)/秒的方式表示主要是受應(yīng)用服務(wù)器和應(yīng)用代碼的制約體現(xiàn)出的瓶頸。
當(dāng)沒有遇到性能瓶頸的時候搀别,吞吐量與虛擬用戶數(shù)之間存在一定的聯(lián)系丹擎,可以采用以下公式計算:F=VU * R /
其中F為吞吐量,VU表示虛擬用戶個數(shù)歇父,R表示每個虛擬用戶發(fā)出的請求數(shù)蒂培,T表示性能測試所用的時間
理解了以上各個軟件開發(fā)中常參考的術(shù)語后,想想我們還會在什么地方聽到這些術(shù)語呢
emmmm........
redis的吞吐量,memcache吞吐量等,類比上面的定義,不難理解redis和memcache哦!
SEE YOU!
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? Joyce.