1. 程式人生 > >關於系統用戶數,並發用戶數,在線用戶數,吞吐量

關於系統用戶數,並發用戶數,在線用戶數,吞吐量

編寫 之間 log 瓶頸 註冊 clas 專業 系統用戶 mar

1、關於系統用戶數,並發用戶數和在線用戶數

系統用戶數

狹義上來說,可以理解為系統註冊用戶數;廣義上來說,可以理解為所有訪問過系統的用戶數

在線用戶數

狹義上來說,可以理解為已登錄系統的用戶數;廣義來說,可以理解為當前時間訪問系統的用戶數。

並發用戶數

可以分兩種:

  1. 同一時間點,執行同一(業務)操作的用戶數

  2. 同一時間點,執行不同(業務)操作的用戶數

註意:服務器實際承受的壓力並不完全取決於並發用戶數,詳情見下面的例子。


以51測試論壇為例

作為專業軟件測試論壇,會有很多測試者去論壇註冊帳號。

假設到現在已有75萬在該論壇註冊會員,那我們可以說,該論壇擁有75萬的系統用戶;

假設在某日早上9點,已有10萬會員登陸了論壇,那麽我們可以說,該論壇在某日9點時擁有10萬的在線用戶;

假設在這10萬已登陸會員中,某個時間點,有2萬會員正在提交新帖子,有3萬會員正在編寫帖子(假設編寫帖子不會產生服務器請求操作);有1萬會員在帖子頁面瀏覽某帖子內容;有1萬會員正在發呆,啥也不做;還有3萬會員正在點擊某個帖子,那麽我們可以說,某時間點,有2萬個並發用戶在提交新帖子,有3萬個並發用戶在編寫帖子,有1萬個並發用戶瀏覽帖子內容,有3萬個並發用戶在點擊某個帖子,,系統有9萬的並發用戶。

值得註意的是,這9萬並發用戶中,真正對系統產生壓力的只有5萬用戶,即提交新帖和點擊帖子的用戶。換句話說,僅對系統發起了請求的並發用戶才會對系統施加壓力。


這也告訴我們,要好好測試一個系統的性能,必須先對用戶的(業務)操作進行分析,分離出用戶最常使用、最關心的(業務)操作,因為使用這些操作的人多,所以容易產生並發的情況。

計算公式
C = nL/T   # 公式1

其中,C 是平均並發用戶數;n是 login session的數量;L是login session的平均時長。T是考查的時間段長度。

註:login session指用戶從登陸系統到退出系統之間的時間段。

Cmax = C + 3  # 公式2

其中,Cmax 是並發用戶數的峰值;C為第一個公式中的並發用戶數。

註意:

1.公式的得出是假設用戶login session產生符合泊松分布而估算得到的。
2.因為要精確估算平均用戶數和login session的長度並不容易,同時用戶的業務操作存在一定的時間分布,所以上述公式可能並不是很精確
3.基於第2點的建議:1)基於更細粒度的時間進行考察;2)考慮業務操作時間分布

2、吞吐量

性能測試中,可以俠義的理解為“單位時間內系統處理的用戶請求的數量”。一般情況,吞吐量用請求數/秒、頁面數/秒來衡量,從業務的角度,吞吐量也可用單位時間內的訪問人數、處理的業務數等進行衡量。從網絡角度來,也可以單位時間內的處理的數據量等進行衡量。

對於一個Web應用系統來說,從系統的處理能力考慮,可以以頁面數/秒作為吞吐量的標準;對一個銀行的前臺業務來說,可以以其單位時間內處理的業務數作為吞吐量的標準。

通常,對於交互式應用,用戶直接的體驗是“響應時間”,通過“並發用戶數”和“響應時間”可以確定系統的性能規劃;但對於非交互式應用,用“吞吐量”來描述我們對系統性能的期望可能更加合理。

作為性能測試的主要關註指標,吞吐量和並發用戶數之間存在一定的聯系,在沒有遇到性能瓶頸的時候,吞吐量可以采用如下公式計算:

F = Nvu*R/3  # 公式3

關於系統用戶數,並發用戶數,在線用戶數,吞吐量(摘)

其中,F表示吞吐量, Nvu表示虛擬用戶數,R表示每個虛擬用戶數發起的請求數,T表示性能測試所用的時間。

註意:
雖然吞吐量指標可被看作是系統承受壓力的體現,但是不同並發用戶數量的情況下,對同一個系統施加相同的吞吐量壓力,很可能會得到不同的測試結果。

關於系統用戶數,並發用戶數,在線用戶數,吞吐量