閱讀394 返回首頁    go 阿裏雲


如何選擇合適的虛擬用戶數__Lite實踐指南_性能測試-阿裏雲

訪問Lite控製台

一、 概述

大家做性能測試很大程序是想評估被測係統在一定負載壓力下性能表現如何,而在測試過程中,很多人隻是用並發用戶數來衡量係統的性能,沒有考慮其他前提條件,比如響應時間;覺得係統能支撐的並發用戶數越多,係統的性能就越好;對TPS也不是非常理解,也根本不知道它們之間的關係。為了更好的選擇合適的虛擬用戶數進行壓測,需正確理解虛擬用戶數、TPS、響應時間之間的關係。

二、 術語定義

虛擬用戶:性能測試中通過線程或進程執行腳本來模擬典型用戶訪問係統行為的用戶。

TPS: 每秒處理事務數, 是衡量係統性能的一個非常重要的指標。

在線用戶(或活躍用戶):一個時間段內,與服務器保持交互的用戶,也稱為活躍用戶。需與論壇或者QQ上常見的“在線人數”定義區分,該類係統的在線用戶不一定是活躍用戶,在線隻是一種狀態。但在業務類係統中,一般隻考慮活躍用戶,可認為與在線用戶通用。

並發用戶:表示同一時間與服務器保持交互的用戶。

響應時間:簡稱RT,指的是業務請求從客戶端發起到客戶端接收服務器端響應請求完成的時間。

思考時間:用戶每個操作後的暫停時間,或者叫操作之間的間隔時間,此時間內是不對服務器產生壓力的。

三、 在線用戶數和並發用戶數的區別

下圖中紅色表示訪問首頁操作、黃色表示訪問投票頁麵操作、橄欖色表提票提交操作、綠色表色投票統計結果查看操作、藍色表示“等待行為”。“等待行為“是什麼呢?比如用戶在頁麵填寫內容、瀏覽頁麵信息、瀏覽統計結果數據,這些用戶在客戶端行為與服務器無任何交互,對服務器來說是沒有負載壓力的。

我們可以從圖中看出25個用戶在線訪問投票係統,每個用戶操作流程是:1.訪問首頁,2.瀏覽首頁,3.訪問投票頁麵,4.填寫投票表單內容,5.投票提交,6.投票統計結果查看訪問,7.瀏覽統計結果。其中1,3,5,6操作會與服務器進行交互,對服務器形成負載壓力,而2,4,7操作是用戶在客戶端的行為,並沒有於服務器進行交互,對服務器沒有任何壓力。

從時間視角1來說,當前活躍用戶數(在線用戶)是25,並發用戶數隻有7個,為什麼呢?因為從當前視角來看隻有7個用戶在同時與服務器進行交互,對服務器形成了負載壓力,而其他18個用戶都在“等待行為”狀態。

那麼從視角2來看,活躍用戶數(在線用戶)仍然是25,並發用戶數是多少呢?答案是6個。

所以我們在虛擬用戶在模擬用戶行為的時候,如果虛擬用戶中包含“等待行為”的話,那麼虛擬用戶數=在線用戶數;不包含“等待行為”的話虛擬用戶數=並發用戶數。

四、 虛擬用戶數、響應時間、TPS之間的關係

在術語中解釋了TPS是每秒事務數,但是事務是要靠虛擬用戶做出來的,假如1個虛擬用戶在1秒內完成1筆事務,那麼TPS明顯就是1;如果某筆業務響應時間是1ms,那麼1個用戶在1秒內能完成1000筆事務,TPS就是1000了;如果某筆業務響應時間是1s,那麼1個用戶在1秒內隻能完成1筆事務,要想達到1000TPS,至少需要1000個用戶;因此可以說1個用戶可以產生1000TPS,1000個用戶也可以產生1000TPS,無非是看響應時間快慢。

由此我們可以一個公式:

TPS=虛擬用戶數/響應時間

通常針對服務器端的性能評估,以TPS為主來衡量係統的性能,並發用戶數為輔來衡量係統的性能,如果必須要用並發用戶數來衡量的話,需要一個前提,那就是交易在多長時間內完成,因為在係統負載不高的情況下,將思考時間(思考時間的值等於交易響應時間)加到腳本中,並發用戶數基本可以增加一倍,因此用並發用戶數來衡量係統的性能沒太大的意義。

五、 施壓策略建議

通過很多性能測試案例,發現不需要用上萬的用戶並發去進行測試,隻要係統處理業務時間足夠快,幾百個用戶甚至幾十個用戶就可以達到目的。另外谘詢很多專家做過的性能測試項目,基本都沒有超過5000用戶並發。

因此對於大型係統、業務量非常高、硬件配置足夠多的情況下,5000用戶並發就足夠了;對於中小型係統,1000用戶並發就足夠了。

在做負載測試的時候,一般都是按照梯度施壓的方式去增加虛擬用戶數,而不是在沒有預估的情況下,一次加幾萬個用戶,交易失敗率非常高,響應時間非常長,已經超過了使用者忍受範圍內,這樣做沒有多大的意義。

六、 總結

  • 係統的性能由TPS決定,跟並發用戶數沒有多大關係。在同樣的TPS下,可以由不同的用戶數去壓(通過加思考時間設置)。
  • 係統的最大TPS是一定的(在一個範圍內),但並發用戶數不一定,可以調整。
  • 建議性能測試的時候,不要設置過長的思考時間或不設思考時間,以最壞的情況下對服務器施壓。
  • 一般情況下,大型係統(業務量大、機器多)做壓力測試,5000個用戶並發就夠了,中小型係統做壓力測試,1000個用戶並發就足夠了

訪問Lite控製台

最後更新:2016-05-06 10:44:43

  上一篇:go 測試結果數據展示__測試結果_Lite用戶使用手冊_性能測試-阿裏雲
  下一篇:go 如何解讀結果__Lite實踐指南_性能測試-阿裏雲