天天看點

如何準确估算并發數?

http://blog.sina.com.cn/s/blog_544b2b160100gof6.html

這次活動帶給我最深刻的印象就是:由于業務流程中的預見性準備不足,導緻使用者大量流失、後期硬體資源過剩造成浪費,但最恐怖的還是連随附帶的負面影響。為此,在日後舉行大型活動前,必須得從使用者使用的角度、從程式承受能力、及活動的目的幾方面考慮。

    而目前最讓人頭疼的就是如何才能夠準确地估算使用者情況,避免同類情況的發生?這裡需要先了解并确認以下幾個資料:

同時線上使用者數:

平均并發數:

并發使用者數峰值:

    在實際的性能測試工作中,測試人員一般比較關心的是業務并發使用者數,也就是從業務角度關注究竟應該設定多少個并發數比較合理,是以,在後面的讨論中,也是主要針對業務并發使用者數進行讨論,而且,為了友善,直接将業務并發使用者數稱為并發使用者數。

        (1)  計算平均的并發使用者數: C = nL/T    

                 即:平均并發數=總使用者數*使用者線上時長/總工作時間  

        (2)  并發使用者數峰值: C’ ≈ C+3*SQRT(C)

                 即:峰值并發數=平均并發數+3*(平均并發數^1/2)

    公式(1)中,C是平均的并發使用者數;n是login session的數量;L是login session的平均長度;T指考察的時間段長度。

    公式(2)則給出了并發使用者數峰值的計算方式中,其中,C’指并發使用者數的峰值,C就是公式(1)中得到的平均的并發使用者數。該公式的得出是假設使用者的login session産生符合泊松分布而估算得到的。

執行個體:

    假設有一個OA系統,該系統有3000個使用者,平均每天大約有400個使用者要通路該系統,對一個典型使用者來說,一天之内使用者從登入到退出該系統的平均時間為4小時,在一天的時間内,使用者隻在8小時内使用該系統。

則根據公式(1)和公式(2),可以得到:

               C = 400*4/8 = 200

               C’≈200+3*根号200 = 2421

估算處理能力,通常用TPCC值,即每分鐘處理請求。每個伺服器也把TPCC值作為名額。這與以下因素有關:

1,并發使用者數?(U1)

2,使用者通路模式:每分鐘每個使用者發出的業務請求個數,例如0.2個(N1)

3,這些業務請求中,

如果是資料庫伺服器,就統計查詢、更新、統計占比,

如果是Web伺服器,可統計,例如連接配接跳轉、添加操作、删除操作、更新操作,查詢操作除各占1/5

4,業務請求引起的事務數量

例如, 平均每次頁面跳轉操作産生6個事務(T1),平均每次添加操作産生8個事務(T2);平均每次删除操作産生8個事務(T3);平均每次更新操作産生14個事務(T4); 平均每次查詢操作産生10個事務(T5);

5,忙時數量是平均值幾倍,例如5倍

6,經驗系數,例如1.8

7,伺服器保留多少備援,一般是30%

  TPC-C=U1*N1*(T1+T2+T3+ T4+ T5)/5*3*經驗系數/備援系數

繼續閱讀