qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          性能測試中“并發度”的意義

            之前的文章中曾出現過“并發度”這個概念,這個詞不知道是不是我原創,它意在表達“并發”的可能性,是壓力的一種度量。一些同學可能還沒有理解這個概念的意義,下面我們看看它是怎么來……

            看過之前文章的同學應該知道,我將“并發”這個容易產生誤解的詞拆分成了“相對并發”和“絕對并發”。為什么這么做呢?那是因為“絕對并發”說的是同一時刻發生的事情,這通常是我們無法觀測和衡量的。而“相對并發”說的是一個時間段內發生的事情,這是很容易觀測到的。從某種程度上,也可以說“相對并發”是為了彌補我們無法有效評估“絕對并發”的壓力而出現的。

            但是有時候,性能測試工程師仍然需要回答“系統可以處理多少個并發請求”這類的問題,或者是需要測試一些絕對并發的極限場景。這類問題和測試場景是有意義的,但是在沒有“絕對并發”相關數據的情況下,我們如何處理?顯然胡亂拍板是不可以的,那么我們只有根據一些可觀測的數據進行合理的推測和估算,“并發度”就是這樣產生的。

            假設我們已經分析得出,系統的使用壓力集中在2個小時內,在這個時間段內共有100個用戶訪問(活躍用戶),且壓力是平均分布的(否則就可以說壓力集中在更小的時間段內了),平均每個用戶使用系統的時間是30分鐘(活躍時間),那么我們可以畫出下面一張圖來表示服務端所承受的壓力。

            這是一張從服務端視角來看的交互圖。橫軸是時間,縱軸是訪問用戶,每一條橫線表示一個用戶與系統的交互過程,不同的用戶用不同顏色做了標識。在這張圖中,什么是并發度呢?我們選取時間軸上的一個點,延縱軸方向做一條平行線,這條線穿過的橫線的數量,就是并發度。

            并發度表示,在一個時間點上,可能與服務端進行交互的用戶的數量。為什么說是“可能”呢?因為圖中的每一條橫線代表的是用戶與系統的交互過程,也可以說是用戶的活躍區間,在這個區間段內,用戶只是處于一種活躍狀態,而并不是說一直保持著與服務端的交互,這也是圖中的橫線用的是虛線的原因。所以,并發度表達的,是系統在一定的訪問分布下,可能承受的最大并發壓力,它是一種可能性。

            這樣這個概念應該比較容易理解了,我們再來看看并發度的值是如何得出的。繼續之前的分析結果“系統的使用壓力集中在2個小時內,在這個時間段內共有100個用戶訪問,且壓力是平均分布的,平均每個用戶使用系統的時間是30分鐘”,依然利用剛剛做的那條線,記對應的時間軸刻度為B,我們需要知道的是,有多少條代表交互過程的橫線與之相交。

            很明顯,開始時間點在B之前,結束時間點在B之后的橫線,它的起點必須落在從B向前一個用戶活躍時長的區間內,即下圖的AB區域內。

            接下來只需簡單的算術就可以了,100個用戶訪問平均分布在2小時內,AB時長為平均用戶活躍時間,即30分鐘,那么在AB區域內有100*30min/2h=25個用戶訪問。這25個用戶在B時刻都可能會與系統發生交互,對系統照成壓力,雖然只是一種理論上的可能性。

            這就是并發度,理解它的意義了么?

          posted on 2013-01-14 11:53 順其自然EVO 閱讀(282) 評論(0)  編輯  收藏 所屬分類: 性能測試

          <2013年1月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 商南县| 平罗县| 辽源市| 宜兰市| 阿克| 大荔县| 通州市| 曲沃县| 厦门市| 通榆县| 林甸县| 炉霍县| 扎鲁特旗| 仙游县| 莱阳市| 若尔盖县| 都匀市| 大荔县| 潞西市| 阳山县| 岳阳市| 衡阳县| 方城县| 新巴尔虎左旗| 墨玉县| 雅安市| 辽源市| 道孚县| 石首市| 闵行区| 新巴尔虎左旗| 嘉善县| 罗甸县| 宝清县| 临沧市| 文安县| 新民市| 淮北市| 咸宁市| 琼海市| 渝北区|