qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

          系統(tǒng)吞吐量(TPS)、用戶并發(fā)量、性能測試概念和公式

          近期在做項目的性能測試和性能優(yōu)化,先了解與性能相關(guān)的一些概念。

            一.系統(tǒng)吞度量要素:

            一個系統(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)用場景訪問壓力下,只要某一項達(dá)到系統(tǒng)最高值,系統(tǒng)的吞吐量就上不去了,如果壓力繼續(xù)增大,系統(tǒng)的吞吐量反而會下降,原因是系統(tǒng)超負(fù)荷工作,上下文切換、內(nèi)存等等其它消耗導(dǎo)致系統(tǒng)性能下降。

            決定系統(tǒng)響應(yīng)時間要素

            我們做項目要排計劃,可以多人同時并發(fā)做多項任務(wù),也可以一個人或者多個人串行工作,始終會有一條關(guān)鍵路徑,這條路徑就是項目的工期。

            系統(tǒng)一次調(diào)用的響應(yīng)時間跟項目計劃一樣,也有一條關(guān)鍵路徑,這個關(guān)鍵路徑是就是系統(tǒng)影響時間;

            關(guān)鍵路徑是有CPU運(yùn)算、IO、外部系統(tǒng)響應(yīng)等等組成。

            二.系統(tǒng)吞吐量評估:

            我們在做系統(tǒng)設(shè)計的時候就需要考慮CPU運(yùn)算、IO、外部系統(tǒng)響應(yīng)因素造成的影響以及對系統(tǒng)性能的初步預(yù)估。

            而通常境況下,我們面對需求,我們評估出來的出來QPS、并發(fā)數(shù)之外,還有另外一個維度:日PV。

            通過觀察系統(tǒng)的訪問日志發(fā)現(xiàn),在用戶量很大的情況下,各個時間周期內(nèi)的同一時間段的訪問流量幾乎一樣。比如工作日的每天早上。只要能拿到日流量圖和QPS我們就可以推算日流量。

            通常的技術(shù)方法:

            1. 找出系統(tǒng)的最高TPS和日PV,這兩個要素有相對比較穩(wěn)定的關(guān)系(除了放假、季節(jié)性因素影響之外)

            2. 通過壓力測試或者經(jīng)驗預(yù)估,得出最高TPS,然后跟進(jìn)1的關(guān)系,計算出系統(tǒng)最高的日吞吐量。B2B中文和淘寶面對的客戶群不一樣,這兩個客戶群的網(wǎng)絡(luò)行為不應(yīng)用,他們之間的TPS和PV關(guān)系比例也不一樣。

            A)淘寶

            淘寶流量圖:

            淘寶的TPS和PV之間的關(guān)系通常為  最高TPS:PV大約為 1 : 11*3600 (相當(dāng)于按最高TPS訪問11個小時,這個是商品詳情的場景,不同的應(yīng)用場景會有一些不同)

           B) B2B中文站

            B2B的TPS和PV之間的關(guān)系不同的系統(tǒng)不同的應(yīng)用場景比例變化比較大,粗略估計在1 : 8個小時左右的關(guān)系(09年對offerdetail的流量分析數(shù)據(jù))。旺鋪和offerdetail這兩個比例相差很大,可能是因為爬蟲暫的比例較高的原因?qū)е隆?/p>

            在淘寶環(huán)境下,假設(shè)我們壓力測試出的TPS為100,那么這個系統(tǒng)的日吞吐量=100*11*3600=396萬

            這個是在簡單(單一url)的情況下,有些頁面,一個頁面有多個request,系統(tǒng)的實際吞吐量還要小。

            無論有無思考時間(T_think),測試所得的TPS值和并發(fā)虛擬用戶數(shù)(U_concurrent)、Loadrunner讀取的交易響應(yīng)時間(T_response)之間有以下關(guān)系(穩(wěn)定運(yùn)行情況下):

            TPS=U_concurrent / (T_response+T_think)。

            并發(fā)數(shù)、QPS、平均響應(yīng)時間三者之間關(guān)系

            軟件性能測試的基本概念和計算公式

            一、軟件性能的關(guān)注點

            對一個軟件做性能測試時需要關(guān)注那些性能呢?

            我們想想在軟件設(shè)計、部署、使用、維護(hù)中一共有哪些角色的參與,然后再考慮這些角色各自關(guān)注的性能點是什么,作為一個軟件性能測試工程師,我們又該關(guān)注什么?

            首先,開發(fā)軟件的目的是為了讓用戶使用,我們先站在用戶的角度分析一下,用戶需要關(guān)注哪些性能。

            對于用戶來說,當(dāng)點擊一個按鈕、鏈接或發(fā)出一條指令開始,到系統(tǒng)把結(jié)果已用戶感知的形式展現(xiàn)出來為止,這個過程所消耗的時間是用戶對這個軟件性能的直觀印象。也就是我們所說的響應(yīng)時間,當(dāng)相應(yīng)時間較小時,用戶體驗是很好的,當(dāng)然用戶體驗的響應(yīng)時間包括個人主觀因素和客觀響應(yīng)時間,在設(shè)計軟件時,我們就需要考慮到如何更好地結(jié)合這兩部分達(dá)到用戶最佳的體驗。如:用戶在大數(shù)據(jù)量查詢時,我們可以將先提取出來的數(shù)據(jù)展示給用戶,在用戶看的過程中繼續(xù)進(jìn)行數(shù)據(jù)檢索,這時用戶并不知道我們后臺在做什么。

            用戶關(guān)注的是用戶操作的相應(yīng)時間。

            其次,我們站在管理員的角度考慮需要關(guān)注的性能點。

            1、 相應(yīng)時間

            2、 服務(wù)器資源使用情況是否合理

            3、 應(yīng)用服務(wù)器和數(shù)據(jù)庫資源使用是否合理

            4、 系統(tǒng)能否實現(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)注以上所有的性能點。

            二、軟件性能的幾個主要術(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表示性能測試所用的時間

            4、性能計數(shù)器

            是描述服務(wù)器或操作系統(tǒng)性能的一些數(shù)據(jù)指標(biāo),如使用內(nèi)存數(shù)、進(jìn)程時間,在性能測試中發(fā)揮著“監(jiān)控和分析”的作用,尤其是在分析統(tǒng)統(tǒng)可擴(kuò)展性、進(jìn)行新能瓶頸定位時有著非常關(guān)鍵的作用。

            資源利用率:指系統(tǒng)各種資源的使用情況,如cpu占用率為68%,內(nèi)存占用率為55%,一般使用“資源實際使用/總的資源可用量”形成資源利用率。

            5、思考時間的計算公式

            Think Time,從業(yè)務(wù)角度來看,這個時間指用戶進(jìn)行操作時每個請求之間的時間間隔,而在做新能測試時,為了模擬這樣的時間間隔,引入了思考時間這個概念,來更加真實的模擬用戶的操作。

            在吞吐量這個公式中F=VU * R / T說明吞吐量F是VU數(shù)量、每個用戶發(fā)出的請求數(shù)R和時間T的函數(shù),而其中的R又可以用時間T和用戶思考時間TS來計算:R = T / TS

            下面給出一個計算思考時間的一般步驟:

            A、首先計算出系統(tǒng)的并發(fā)用戶數(shù)

            C=nL / T F=R×C

            B、統(tǒng)計出系統(tǒng)平均的吞吐量

            F=VU * R / T R×C = VU * R / T

            C、統(tǒng)計出平均每個用戶發(fā)出的請求數(shù)量

            R=u*C*T/VU

            D、根據(jù)公式計算出思考時間

            TS=T/R


          posted on 2013-07-15 10:11 順其自然EVO 閱讀(4217) 評論(0)  編輯  收藏 所屬分類: loadrunner性能測試

          <2013年7月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 威信县| 大连市| 大田县| 扶余县| 双柏县| 威远县| 桦川县| 庆云县| 洛南县| 萨嘎县| 阜阳市| 浙江省| 南丰县| 方城县| 闽清县| 和龙市| 涟水县| 湛江市| 花垣县| 天长市| 东明县| 缙云县| 吉林市| 开江县| 巴南区| 隆化县| 商南县| 启东市| 芷江| 东安县| 涿州市| 民县| 米泉市| 仪征市| 平南县| 白水县| 太保市| 蓝山县| 沾化县| 新乡市| 湘阴县|