之前的文章中曾出現過「併發度」這個概念,這個詞不知道是不是我原創,它意在表達「併發」的可能性,是壓力的一種度量。一些同學可能還沒有理解這個概念的意義,下面我們看看它是怎麼來……
看過之前文章的同學應該知道,我將「併發」這個容易產生誤解的詞拆分成了「相對併發」和「絕對併發」。為什麼這麼做呢?那是因為「絕對併發」說的是同一時刻發生的事情,這通常是我們無法觀測和衡量的。而「相對併發」說的是乙個時間段內發生的事情,這是很容易觀測到的。從某種程度上,也可以說「相對併發」是為了彌補我們無法有效評估「絕對併發」的壓力而出現的。
但是有時候,效能測試工程師仍然需要回答「系統可以處理多少個併發請求」這類的問題,或者是需要測試一些絕對併發的極限場景。這類問題和測試場景是有意義的,但是在沒有「絕對併發」相關資料的情況下,我們如何處理?顯然胡亂拍板是不可以的,那麼我們只有根據一些可觀測的資料進行合理的推測和估算,「併發度」就是這樣產生的。
假設我們已經分析得出,系統的使用壓力集中在2個小時內,在這個時間段內共有100個使用者訪問(活躍使用者),且壓力是平均分布的(否則就可以說壓力集中在更小的時間段內了),平均每個使用者使用系統的時間是30分鐘(活躍時間),那麼我們可以畫出下面一張圖來表示服務端所承受的壓力。
這是一張從服務端視角來看的互動圖。橫軸是時間,縱軸是訪問使用者,每一條橫線表示乙個使用者與系統的互動過程,不同的使用者用不同顏色做了標識。在這張圖中,什麼是併發度呢?我們選取時間軸上的乙個點,延縱軸方向做一條平行線,這條線穿過的橫線的數量,就是併發度。
併發度表示,在乙個時間點上,可能與服務端進行互動的使用者的數量。為什麼說是「可能」呢?因為圖中的每一條橫線代表的是使用者與系統的互動過程,也可以說是使用者的活躍區間,在這個區間段內,使用者只是處於一種活躍狀態,而並不是說一直保持著與服務端的互動,這也是圖中的橫線用的是虛線的原因。所以,併發度表達的,是系統在一定的訪問分布下,可能承受的最大併發壓力,它是一種可能性。
這樣這個概念應該比較容易理解了,我們再來看看併發度的值是如何得出的。繼續之前的分析結果「系統的使用壓力集中在2個小時內,在這個時間段內共有100個使用者訪問,且壓力是平均分布的,平均每個使用者使用系統的時間是30分鐘」,依然利用剛剛做的那條線,記對應的時間軸刻度為b,我們需要知道的是,有多少條代表互動過程的橫線與之相交。
很明顯,開始時間點在b之前,結束時間點在b之後的橫線,它的起點必須落在從b向前乙個使用者活躍時長的區間內,即下圖的ab區域內。
接下來只需簡單的算術就可以了,100個使用者訪問平均分布在2小時內,ab時長為平均使用者活躍時間,即30分鐘,那麼在ab區域內有100*30min/2h=25個使用者訪問。這25個使用者在b時刻都可能會與系統發生互動,對系統照成壓力,雖然只是一種理論上的可能性。
這就是併發度,理解它的意義了麼?
效能測試中「併發度」的意義
之前的文章中曾出現過 併發度 這個概念,這個詞不知道是不是我原創,它意在表達 併發 的可能性,是壓力的一種度量。一些同學可能還沒有理解這個概念的意義,下面我們看看它是怎麼來 看過之前文章的同學應該知道,我將 併發 這個容易產生誤解的詞拆分成了 相對併發 和 絕對併發 為什麼這麼做呢?那是因為 絕對併...
轉 效能測試中如何確定併發使用者數
近日,hitest在其技術部落格上發表了一篇題為 併發使用者數與tps之間的關係 的文章,文章對tps和併發使用者數做了詳細的解釋,並針對性能測試中系統效能的衡量維度和測試策略給出了自己的建議。hitest是阿里巴巴技術質量部提供的一款web 移動應用安全測試saas化服務平台,旨在幫助開發者簡單快...
關於效能測試中的併發
不少負載工具在實際的意義中也可以進行壓力測試的分析。其中經常談到併發及集合點的概念。集合點是為了大資料量的指令碼,設定1個集合點,利於指令碼分批量執行,也近似模擬乙個較真實的場景。併發目的引入併發是為了提高資源利用率,從而提高系統效率。併發是1個會受作業系統所影響,是指在單位一定時間內的執行內 物理...