不管是系統設計人員、開發人員還是測試人員,要構建高效能的系統,對於系統效能的一些常用術語都不瞭解,那是無從做起的,這裡主要介紹幾個軟體效能指標的術語及計算方法,便以在效能最佳化及效能評判時有的放矢:
1.回應時間
回應時間是系統對使用者請求作出響應的時間,回應時間是使用者對系統效能最直觀的感受,因此直接表現了系統的效能。影響系統回應時間的因素主要有以下幾個:
1) 網路傳輸時間:包含請求資訊傳送致伺服器、伺服器資訊返回使用者等時間計為NT
2)應用伺服器處理時間:伺服器響應使用者請求,封裝資料並發出,計為AT
3)資料庫伺服器處理時間:資料庫資料操作執行及返回伺服器時間。計為DT
回應時間=NT+AT+DT,由此我們可以看出,回應時間受到多個方面的影響,這些因素的時間都與初始資料量有較大的影響,因此在系統開發及測試過程中,合適的初始化資料非常重要。同時,單使用者情況下與並發使用者的回應時間通常會有較大差異,合適的並發使用者也是必要的。
2.並發使用者
1)系統使用者數:系統額定的使用者數量,如一個系統中,可能使用該系統的使用者總數是2萬個,那麼這個數量,就是系統使用者數。
2)同時線上使用者數:在一定的時間範圍內,最大的同時線上使用者數量,也就是高峰線上使用者數。
3)平均並發使用者數的計算:C=nL / T,其中C是平均的並發使用者數,n是平均每天訪問使用者數,L是一天內使用者從登入到退出的平均時間(操作平均時間),T是考察時間長度(一天內多長時間有使用者使用系統)。
4)並發使用者數峰值計算:C^約等於C + 3*根號C,其中C^是並發使用者峰值,C是平均並發使用者數,該公式遵循泊松分布理論。
通過以上公式,可以計算出系統應該能夠承受的平均並發使用者數及並發峰值,在系統架構設計及研發、測試過程中,務必保證系統能夠在高峰並發情況下效能表現達到使用者需求。
3.輸送量
系統輸送量是指指單位時間內系統處理使用者的請求數
1)從業務角度看,輸送量可以用:請求數/秒、頁面數/秒、人數/天或處理業務數/小時等單位來衡量
2)從網路角度看,輸送量可以用:位元組/秒來衡量
對於互動式應用來說,輸送量指標反映的是伺服器承受的壓力,他能夠說明系統的負載能力以不同方式表達的輸送量可以說明不同層次的問題,例如,以位元組數/秒方式可以表示數要受網路基礎設施、伺服器架構、應用伺服器制約等方面的瓶頸;已請求數/秒的方式表示主要是受應用伺服器和應用代碼的制約體現出的瓶頸。當沒有遇到效能瓶頸的時候,輸送量與虛擬使用者數之間存在一定的聯絡,可以採用以下公式計算:F=VU
* R / T,其中F為輸送量,VU表示虛擬使用者個數,R表示每個虛擬使用者發出的請求數,T表示效能測試所用的時間。
在以往的應用中,對於系統輸送量,我們更多關注於位元組/秒指標,但這塊只體現了一個方面的系統輸送量。對於業務操作而言,F=VU
* R / T更有意義,這塊輸送量指標設計應當在每個特定的應用功能層級進行設計與測試。
4.考慮時間
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
通常情況下,以上這些指標只是測試人員熟悉,但如果要構建一個高效能的系統,在設計之初就應當將這些指標做為系統的一個核心非功能特性寫入設計文檔並貫徹在開發執行過程中,這樣才能予以系統效能穩固保障,因此,不管是系統設計人員、開發人員還是測試人員,都應當對這些指標非常熟悉。