性能測試中“并發(fā)度”的意義
之前的文章中曾出現(xiàn)過“并發(fā)度”這個概念,這個詞不知道是不是我原創(chuàng),它意在表達“并發(fā)”的可能性,是壓力的一種度量。一些同學可能還沒有理解這個概念的意義,下面我們看看它是怎么來……
看過之前文章的同學應該知道,我將“并發(fā)”這個容易產(chǎn)生誤解的詞拆分成了“相對并發(fā)”和“絕對并發(fā)”。為什么這么做呢?那是因為“絕對并發(fā)”說的是同一時刻發(fā)生的事情,這通常是我們無法觀測和衡量的。而“相對并發(fā)”說的是一個時間段內(nèi)發(fā)生的事情,這是很容易觀測到的。從某種程度上,也可以說“相對并發(fā)”是為了彌補我們無法有效評估“絕對并發(fā)”的壓力而出現(xiàn)的。
但是有時候,性能測試工程師仍然需要回答“系統(tǒng)可以處理多少個并發(fā)請求”這類的問題,或者是需要測試一些絕對并發(fā)的極限場景。這類問題和測試場景是有意義的,但是在沒有“絕對并發(fā)”相關數(shù)據(jù)的情況下,我們?nèi)绾翁幚恚匡@然胡亂拍板是不可以的,那么我們只有根據(jù)一些可觀測的數(shù)據(jù)進行合理的推測和估算,“并發(fā)度”就是這樣產(chǎn)生的。
假設我們已經(jīng)分析得出,系統(tǒng)的使用壓力集中在2個小時內(nèi),在這個時間段內(nèi)共有100個用戶訪問(活躍用戶),且壓力是平均分布的(否則就可以說壓力集中在更小的時間段內(nèi)了),平均每個用戶使用系統(tǒng)的時間是30分鐘(活躍時間),那么我們可以畫出下面一張圖來表示服務端所承受的壓力。
這是一張從服務端視角來看的交互圖。橫軸是時間,縱軸是訪問用戶,每一條橫線表示一個用戶與系統(tǒng)的交互過程,不同的用戶用不同顏色做了標識。在這張圖中,什么是并發(fā)度呢?我們選取時間軸上的一個點,延縱軸方向做一條平行線,這條線穿過的橫線的數(shù)量,就是并發(fā)度。
并發(fā)度表示,在一個時間點上,可能與服務端進行交互的用戶的數(shù)量。為什么說是“可能”呢?因為圖中的每一條橫線代表的是用戶與系統(tǒng)的交互過程,也可以說是用戶的活躍區(qū)間,在這個區(qū)間段內(nèi),用戶只是處于一種活躍狀態(tài),而并不是說一直保持著與服務端的交互,這也是圖中的橫線用的是虛線的原因。所以,并發(fā)度表達的,是系統(tǒng)在一定的訪問分布下,可能承受的最大并發(fā)壓力,它是一種可能性。
這樣這個概念應該比較容易理解了,我們再來看看并發(fā)度的值是如何得出的。繼續(xù)之前的分析結果“系統(tǒng)的使用壓力集中在2個小時內(nèi),在這個時間段內(nèi)共有100個用戶訪問,且壓力是平均分布的,平均每個用戶使用系統(tǒng)的時間是30分鐘”,依然利用剛剛做的那條線,記對應的時間軸刻度為B,我們需要知道的是,有多少條代表交互過程的橫線與之相交。
很明顯,開始時間點在B之前,結束時間點在B之后的橫線,它的起點必須落在從B向前一個用戶活躍時長的區(qū)間內(nèi),即下圖的AB區(qū)域內(nèi)。
接下來只需簡單的算術就可以了,100個用戶訪問平均分布在2小時內(nèi),AB時長為平均用戶活躍時間,即30分鐘,那么在AB區(qū)域內(nèi)有100*30min/2h=25個用戶訪問。這25個用戶在B時刻都可能會與系統(tǒng)發(fā)生交互,對系統(tǒng)照成壓力,雖然只是一種理論上的可能性。
這就是并發(fā)度,理解它的意義了么?
posted on 2013-01-14 11:53 順其自然EVO 閱讀(280) 評論(0) 編輯 收藏 所屬分類: 性能測試