系統吞吐量(TPS)、用戶併發量、性能測試概念和公式


  通過觀察系統的訪問日誌發現,在用戶量很大的情況下,各個時間週期內的同一時間段的訪問流量幾乎一樣。比如工作日的每天早上。只要能拿到日流量圖和QPS我們就可以推算日流量。   通常的技術方法: 
  1. 找出系統的最高TPS和日PV,這兩個要素有相對比較穩定的關係(除了放假、季節性因素影響之外) 
  2. 通過壓力測試或者經驗預估,得出最高TPS,然後跟進1的關係,計算出系統最高的日吞吐量。B2B中文和淘寶面對的客戶羣不一樣,這兩個客戶羣的網絡行爲不應用,他們之間的TPS和PV關係比例也不一樣。   A)淘寶   淘寶流量圖: 
 
  淘寶的TPS和PV之間的關係通常爲  最高TPS:PV大約爲 1 : 11*3600 (相當於按最高TPS訪問11個小時,這個是商品詳情的場景,不同的應用場景會有一些不同) B) B2B中文站 
  B2B的TPS和PV之間的關係不同的系統不同的應用場景比例變化比較大,粗略估計在1 : 8個小時左右的關係(09年對offerdetail的流量分析數據)。旺鋪和offerdetail這兩個比例相差很大,可能是因爲爬蟲暫的比例較高的原因導致。 
  在淘寶環境下,假設我們壓力測試出的TPS爲100,那麼這個系統的日吞吐量=100*11*3600=396萬 


  這個是在簡單(單一url)的情況下,有些頁面,一個頁面有多個request,系統的實際吞吐量還要小。 
  無論有無思考時間(T_think),測試所得的TPS值和併發虛擬用戶數(U_concurrent)、Loadrunner讀取的交易響應時間(T_response)之間有以下關係(穩定運行情況下): 
  TPS=U_concurrent / (T_response+T_think)。   併發數、QPS、平均響應時間三者之間關係 
 
  軟件性能測試的基本概念和計算公式   一、軟件性能的關注點 
  對一個軟件做性能測試時需要關注那些性能呢? 
  我們想想在軟件設計、部署、使用、維護中一共有哪些角色的參與,然後再考慮這些角色各自關注的性能點是什麼,作爲一個軟件性能測試工程師,我們又該關注什麼? 
  首先,開發軟件的目的是爲了讓用戶使用,我們先站在用戶的角度分析一下,用戶需要關注哪些性能。 
  對於用戶來說,當點擊一個按鈕、鏈接或發出一條指令開始,到系統把結果已用戶感知的形式展現出來爲止,這個過程所消耗的時間是用戶對這個軟件性能的直觀印象。也就是我們所說的響應時間,當相應時間較小時,用戶體驗是很好的,當然用戶體驗的響應時間包括個人主觀因素和客觀響應時間,在設計軟件時,我們就需要考慮到如何更好地結合這兩部分達到用戶最佳的體驗。如:用戶在大數據量查詢時,我們可以將


先提取出來的數據展示給用戶,在用戶看的過程中繼續進行數據檢索,這時用戶並不知道我們後臺在做什麼。 
  用戶關注的是用戶操作的相應時間。 
  其次,我們站在管理員的角度考慮需要關注的性能點。   1、 相應時間 
  2、 服務器資源使用情況是否合理   3、 應用服務器和數據庫資源使用是否合理   4、 系統能否實現擴展 
  5、 系統最多支持多少用戶訪問、系統最大業務處理量是多少   6、 系統性能可能存在的瓶頸在哪裏   7、 更換那些設備可以提高性能   8、 系統能否支持7×24小時的業務訪問   再次,站在開發(設計)人員角度去考慮。   1、 架構設計是否合理   2、 數據庫設計是否合理   3、 代碼是否存在性能方面的問題   4、 系統中是否有不合理的內存使用方式   5、 系統中是否存在不合理的線程同步方式   6、 系統中是否存在不合理的資源競爭 
  那麼站在性能測試工程師的角度,我們要關注什麼呢?   一句話,我們要關注以上所有的性能點。   二、軟件性能的幾個主要術語 
  1、響應時間:對請求作出響應所需要的時間   網絡傳輸時間:N1+N2+N3+N4   應用服務器處理時間:A1+A3   數據庫服務器處理時間:A2 
  響應時間=N1+N2+N3+N4+A1+A3+A2   2、併發用戶數的計算公式 
  系統用戶數:系統額定的用戶數量,如一個OA系統,可能使用該系統的用戶總數是5000個,那麼這個數量,就是系統用戶數。 


  同時在線用戶數:在一定的時間範圍內,最大的同時在線用戶數量。 
  同時在線用戶數=每秒請求數RPS(吞吐量)+併發連接數+平均用戶思考時間   平均併發用戶數的計算:C=nL / T 
  其中C是平均的併發用戶數,n是平均每天訪問用戶數(login session),L是一天內用戶從登錄到退出的平均時間(login session的平均時間),T是考察時間長度(一天內多長時間有用戶使用系統) 
  併發用戶數峯值計算:C^約等於C + 3*根號C 
  其中C^是併發用戶峯值,C是平均併發用戶數,該公式遵循泊松分佈理論。  3、吞吐量的計算公式 
  指單位時間內系統處理用戶的請求數 
  從業務角度看,吞吐量可以用:請求數/秒、頁面數/秒、人數/天或處理業務數/小時等單位來衡量 
  從網絡角度看,吞吐量可以用:字節/秒來衡量 
  對於交互式應用來說,吞吐量指標反映的是服務器承受的壓力,他能夠說明系統的負載能力 
  以不同方式表達的吞吐量可以說明不同層次的問題,例如,以字節數/秒方式可以表示數要受網絡基礎設施、服務器架構、應用服務器制約等方面的瓶頸;已請求數/秒的方式表示主要是受應用服務器和應用代碼的制約體現出的瓶頸。 
  當沒有遇到性能瓶頸的時候,吞吐量與虛擬用戶數之間存在一定的聯繫,可以採用以下公式計算:F=VU * R / 
  其中F爲吞吐量,VU表示虛擬用戶個數,R表示每個虛擬用戶發出的請求數,T表示性能測試所用的時間   4、性能計數器 
  是描述服務器或操作系統性能的一些數據指標,如使用內存數、進程時間,在性能測試中發揮着“監控和分析”的作用,尤其是在分析統統可擴展性、進行新能瓶頸定位時有着非常關鍵的作用。 
  資源利用率:指系統各種資源的使用情況,如cpu佔用率爲68%,內存佔用率爲55%,一般使用“資源實際使用/總的資源可用量”形成資源利用率。   5、思考時間的計算公式 


  Think Time,從業務角度來看,這個時間指用戶進行操作時每個請求之間的時間間隔,而在做新能測試時,爲了模擬這樣的時間間隔,引入了思考時間這個概念,來更加真實的模擬用戶的操作。 
  在吞吐量這個公式中F=VU * R / T說明吞吐量F是VU數量、每個用戶發出的請求數R和時間T的函數,而其中的R又可以用時間T和用戶思考時間TS來計算:R = T / TS 
  下面給出一個計算思考時間的一般步驟:   A、首先計算出系統的併發用戶數   C=nL / T F=R×C 
  B、統計出系統平均的吞吐量   F=VU * R / T R×C = VU * R / T   C、統計出平均每個用戶發出的請求數量   R=u*C*T/VU 
  D、根據公式計算出思考時間   TS=T/R
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章