1. 程式人生 > >軟件性能中幾個主要的術語

軟件性能中幾個主要的術語

操作系統 使用 定位 -s 是否 執行 計數 函數 服務器

一、響應時間

  響應時間是“對請求做出響應所需要的時間”。之前說過,它既有客觀的成分,也有主觀的成分,一般將用戶所感受到的軟件性能(響應時間)分為呈現時間和服務器端響應時間兩個部分。對於一個Web應用,呈現時間就是瀏覽器接受到響應數據後呈現和執行頁面上腳本所消耗的時間;而服務器端響應時間指應用系統從請求發出開始到客戶端接收到數據所消耗的時間。響應時間可以被進一步分解,下圖描述了一個Web應用的頁面響應時間==網絡傳輸時間(N1+N2+N3+N4)+應用延遲時間(A1+A2+A3),其中A2為數據庫延遲時間,A1/A3為服務器延遲時間。如此劃分的目的是更容易定位性能瓶頸。關於響應時間的參考值,我們一般遵循著2/5/10原則,但這僅僅是個參考值。例如一個使用頻次很低的功能,如果響應時間>100s,也是能接受的。響應時間是否合理,最終取決於實際的用戶需求。

技術分享圖片

二、並發用戶數

  並發用戶數,簡單來說,就是同一時間段之內有多位用戶訪問系統。

  如果性能測試的目的是驗證當前系統能否支持現有用戶的訪問,那麽使用工具模擬用戶數,模擬用戶的行為,得到的測試結果就能真實反映實際用戶訪問時的系統性能表現。這裏的同一時間段訪問系統的用戶數量可以稱為“並發用戶數”,是從業務的角度模擬真實的用戶訪問,體現的業務用戶數。而還有一種針對服務器端的並發用戶數,就是我們平時說的“並發用戶數”,從服務器端承受的壓力出發,描述的是同時向客戶端發出請求的用戶。

  說到並發用戶數,那麽相關的概念還有“系統用戶數”和“同時在線用戶人數”。其中,系統用戶數就是使用該系統的人,不管他是登錄一次還是經常使用,亦或者僅僅只是註冊了,都算。同時在線人數就是後臺統計的系統最高峰時有多少人在線,這個多少人就是一般所說的同時在線人數。假設有200人同時在線,40%的人在寫寫寫,寫完點擊提交才會發起請求;20%的人眼冒綠光的沈迷於首頁的炫酷效果中;30%的人在使用某一業務;還有10%的人在掛機。那麽此時只有30%的用戶真正對服務器構成了壓力。所有針對服務器端的實際承受壓力,不止取決於並發用戶數,還要考慮用戶的業務場景。

  通過對服務器的日誌進行分析,可以了解用戶的使用狀態,並由此算出服務器承受的最大並發用戶數。當然還有一些三者之間的計算公式,此處不說了,僅僅是個參考值,別當做標準值。

三、吞吐量

  吞吐量直接體現系統的性能承載能力,是指單位時間內系統處理的客戶請求的數量,一般用單擊數(請求數)/秒來衡量(TPS/QPS)。對於交互式應用,吞吐量指標反映的是服務器承受的壓力,在容量規劃測試中是一個重點關註的指標,因為它能夠說明系統級別的負載能力。在性能測試過程中,吞吐量可以在以下兩個方面發揮作用:

1、協助設計測試場景,衡量性能測試場景是否達到了預期的設計目標;

2、協助分析性能瓶頸。

在沒有遇到性能瓶頸時,吞吐量和並發數的聯系可以用公式F=N(vu)*R/T來計算,其中F=吞吐量,N(vu)=VU的個數,R=每個VU發出的請求,T=性能測試所用的時間,如果存在性能瓶頸,此式不成立(此時就需要畫圖了)。

註釋:所謂的單擊數一般指客戶端發出的請求,而不是指頁面上的一次單擊事件。

四、性能計數器

  性能計數器是描述服務器或操作系統性能的一些數據指標,例如windows的使用內存數和進程時間等。

  計數器在測試中的作用是監控和分析,在分析系統的可擴展性和性能瓶頸時,計數器的取值較為關鍵。單一的性能計數器只能體現系統的某一個方面,對測試的結果分析必須基於多個不同的計數器。

五、思考時間

  用戶在進行操作時,每個請求之間的間隔時間,具現在腳本中,就是Think函數。吞吐量的公式F=N(vu)*R/T,其中R可以用T/T(s)來計算,即請求數=時間/請求間隔時間。

最後給出一個參考的計算思考時間方法:

1、首先計算出系統的並發用戶數;

2、統計出系統平均的吞吐量;

3、統計出平均每個用戶發出的請求數量;

4、根據R=T/T(s)計算出思考時間T(s)。

軟件性能中幾個主要的術語