估算并發(fā)用戶數的方法.doc_第1頁
估算并發(fā)用戶數的方法.doc_第2頁
估算并發(fā)用戶數的方法.doc_第3頁
估算并發(fā)用戶數的方法.doc_第4頁
估算并發(fā)用戶數的方法.doc_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

.估算并發(fā)用戶數的方法作者:Eric Man Wong一、引言 為了進行容量規(guī)劃和進行性能方面的管理,正式發(fā)布產品之前往往有必要估算系統(tǒng)能夠承受的最大并發(fā)用戶數。因為系統(tǒng)資源的使用直接與并發(fā)用戶數掛鉤。就拿 Web 應用來說,內存的使用,CPU 的利用率,服務器的進程/線程數,數據庫連接數和網絡帶寬占用率都是關于并發(fā)用戶數的增函數。 盡管知道并發(fā)用戶數的重要性,我們還是經常通過第六感或者是大膽臆測去估計這個數值,十分缺乏理性。在本文中,我們會嘗試去介紹一種簡單的方法來得出這個并發(fā)用戶數的估計值通過某些其他的參數,這個值將會更加易于估算并且更加合理。 二、一種不令人滿意的方法 人們時常用的一種估計方法是這樣的:假設并發(fā)用戶數等于全部用戶數乘以某個比例。這不是一種好方法,因為就算有時候總的用戶數可以可靠的估計出來,然而百分比盡管不能總說是一個不具有說服力的魔力數字。 必須指出的是,剛提到的這個百分比不能視為在某個時間段內登錄系統(tǒng)的那部分用戶。在某些情況下才能肯定的得出登錄系統(tǒng)的用戶數。舉個例子,如果我們知道每個用戶都會在每個月的某一天使用且只使用一次某個系統(tǒng),那么我們可以理所當然的認為任意一天使用該系統(tǒng)的百分比是大約3.3%(作者注:就是1/30)。(譯者注:30 就是提到的“每個月”)。 盡管如此,僅僅依靠這個百分比不能用來推導出并發(fā)用戶數。因為在同一天使用系統(tǒng)的人并不是同時使用的。有的用戶可能在上午使用,有的用戶可能在下午使用。 我們接下來看看一種更好的方法。 三、估算平均并發(fā)用戶數的公式 我們通過定義并發(fā)用戶數來開始這一節(jié)。但是在之前,我們必須搞清楚login session 的含義。 login session 的意思是通過開始和結束時間定義的一段時間。在這段時間內,系統(tǒng)的一個或多個資源被占用。使用任意一個需要用戶登錄的 Web應用作為例子,login session從用戶登錄到系統(tǒng)開始,到用戶退出系統(tǒng)結束。每次用戶的登錄都創(chuàng)建了一個用戶的 session(作者注:占用了系統(tǒng)的內存)。login session 的時長取決于開始和結束的時間。 我們現在做好定義并發(fā)用戶數的準備了。我們應該同意某個瞬間的“并發(fā)用戶數”是這個瞬間的 login session 的個數。在下圖中闡明了這個定義: 橫軸是時間軸。每一條水平線段代表了一個login session。處垂直的那條線與水平線有三個交點,那么并發(fā)用戶數是3。 讓我們關注時間從起點到隨意的某個時間。下面的結論可以利用數學知識證明:(*) 另外,如果從開始到時間 T的范圍內 login session 的總數是 n,并且平均的login session 時長是,那么 (* *) 正式的證明過程見附錄。直覺上來看,這個公式可以這樣來認為:設想每條session 的線條都是首尾相連的。如果這條線的長度超過了,那么我們就把它折疊起來,使得每一段都長度都是T 。折疊的次數就如同平均并發(fā)用戶數。在下圖對此做出了說明: 四、估算其中的參數 為了利用第三節(jié)的公式計算平均并發(fā)用戶數(C),前提條件是在關注的時間段(T)中計算出兩個參數: l login session 的總數(n) l login session 的平均時長(L) 在這一節(jié)中,我們會給出估算這兩個參數的一些建議。 首先,必須指出通過公式得出的 C,僅僅是一個平均值。有可能并發(fā)用戶數會在這個時間段內起伏很大。因此,如果我們希望利用 C 來作為并發(fā)用戶數,我們應當限制關注的時間以便新的 login session 的比例(作者注:比如說n/T的比例)能夠或多或少的保持穩(wěn)定。舉個例子,如果我們知道系統(tǒng)僅僅在工作時間內使用,我們可以只關注工作時間,而不是一整天。那么 T 就等于 8(作者注:假設 8 小時工作制),而不是 24。否則,C 的值就會大大減少,因為事實上沒有人在非工作時間使用系統(tǒng)。 login session 的總數(n)和 login session 的平均時長(L)經??梢杂捎脩艨傮w和使用習慣來確定。舉例來說,如果有 N 個潛在用戶,并且我們知道每個用戶每天可能使用系統(tǒng)一次、兩次、三次的概率分別是,并且假設用戶每天使用系統(tǒng)不會超過 3 次,那么每天 的 login session 的總數就的總數就是。另一參數平均時長,可以通過觀察樣本用戶來估算。 在許多的系統(tǒng)中,不同的用戶對系統(tǒng)的使用頻率以及平均使用系統(tǒng)時長波動的范圍都很大。在這樣的情況下,如果我們將相似的用戶分類,上述的分析依然成立。我們可以計算出每一類用戶的并發(fā)用戶數并且將結果整合在一起。 無可爭辯的是,用戶的使用習慣往往是很難準確預測的。但是對于大多數的系統(tǒng),尤其是內部的應用,一些這方面的合理的、粗略的數據是可以得到的。下一節(jié)的例子會對此做出說明。 五、一個例子 H 市政府準備為了其 170,000 名員工運行一個薪酬系統(tǒng),員工可以通過此系統(tǒng)查詢自己的薪酬信息。由于 IT 技能的差異、電腦的資源有限以及其他種種的原因,預計到系統(tǒng)上線只有 50%的員工會定期使用該系統(tǒng)。這些員工中的70%會在每個月的最后一周使用系統(tǒng)一次。據觀測,參與了用戶接受度測試的員工們平均使用這個系統(tǒng)的時間是 5 分鐘。 現在我們可以來估算一個月的最后一周的并發(fā)用戶數了。我們限定關注的時間是每一天的工作時間(作者注:朝九晚五)。所以,每個月最后一周系統(tǒng)使用的并發(fā)用戶數是124。 六、估算并發(fā)用戶數的高峰值 1、理論 第三節(jié)中的公式估算了平均并發(fā)用戶數。接下來很可能遇到的問題是:怎么預估高峰并發(fā)用戶的數值?在本節(jié)中,我們能夠看到在某些假設條件下,該高峰值也是可以估算出來的。 泊松分布是一種現成的并且廣泛運用的統(tǒng)計模型,它適用于到達速率隨機且獨立的分布(作者注:該分布可以參見于大把介紹統(tǒng)計學的書籍)。假設在線用戶數滿足泊松分布,其中新登錄的數量均值是,根據定義: P代表的是概率,e是歐拉數,x!代表x的階乘。 在此假設下,可以證明在任何時刻的登錄成功的用戶數都符合泊松分布。最驚異結論的莫過于根本不去理會保持登錄的時間時長(作者注:保持登錄的時長也是隨機的且可以隨意長短)。根據上述等式,有: C 是第三節(jié)提及的平均并發(fā)用戶數。(作者注:這部分的證明過于繁瑣。本文將其略掉。) 眾所周知,泊松分布在均值為 C 的時候可以近似的認為滿足均值為 C 且標準差為的正態(tài)分布(作者注:再次說明,這些都可以在大把的統(tǒng)計學教材中找到)。(譯者注:根據譯者慘淡的統(tǒng)計學知識,作者漏了泊松分布要在均值大于20 的時候才近似正態(tài)分布,不過例子中在線的平均人數是超過20 的) 。 如果我們令并發(fā)用戶數為X,那么就意味著滿足標準正態(tài)分布:均值為 0 且標準差為1。查表可得下面的結論: (注:正態(tài)分布表可參考/jxcg/KJ/Bernoulli/N_table.htm) 通俗的講,上面的等式意味著并發(fā)用戶數小于的概率是 99.87%。這個概率對于絕大多數用途都足夠大,所以我們估算高峰并發(fā)用戶數為2、實踐 在上一節(jié),我們講述了新登錄的用戶數符合泊松分布,高峰并發(fā)用戶數也是可以估算的。盡管如此,在現實世界里,登陸的用戶是按照以下的方式運作的: 1、沉睡狀態(tài)在非工作時間不登陸; 2、片刻狀態(tài)(上升)開始工作的時候,人們開始登錄系統(tǒng);在線的數量不斷增加; 3、穩(wěn)定期在線的用戶數保持穩(wěn)定; 4、片刻狀態(tài)(回落)工作時間結束;人們退出系統(tǒng);在線的人減少; 這四個狀態(tài)周而復始。 像上面的這個應用系統(tǒng),6.1 節(jié)的假設只適用于第 3 個狀態(tài)就是穩(wěn)定期那個狀態(tài)。因此,倘若我們要更精確預估高峰并發(fā)用戶數的話,應該遵循下面的步驟: 1、根據經驗來估計穩(wěn)定期的時間段。 2、估計在穩(wěn)定期的登錄用戶數。3、根據第 3 節(jié)的公式(* *)計算平均并發(fā)用戶數 C。 4、運用 6.1 節(jié)的公式(* * *)來計算高峰并發(fā)用戶數。 通過第 5 節(jié)的一個例子來說明一下上述的步驟: 接上例,補充條件如下:假設 80%的員工進入這個薪酬系統(tǒng)的時間是上午 9:30 到 12:30 以及下午 2:30 到 4:30 這 5 個小時,盡管一天工作時間是 8小時。并且,在這 5 小時之間登錄數保持穩(wěn)定。T = 分鐘5小時=300 n = 11,900 0.8 = 9,520L = 5分鐘 讀者可能注意到了上面的平均并發(fā)用戶數和第5 節(jié)的有差異,此處的結果更大。實際上兩處的都是合理的。這正印證了第4 節(jié)說過的,那就是平均并發(fā)用戶數很大程度上取決于所關注的時間段。在第5 節(jié)中,我們關注的時間段是整個工作時間,所以平均值被很少人登錄的那段時間所拖累了。在本節(jié)中,我們限制了關注高峰的時間段,所以結果更大。盡管兩個數據都是合理的,但是后者將更加適用于展現系統(tǒng)的使用情況。 七、根據并發(fā)用戶數得到其他有用的數據 一旦我們找出了并發(fā)用戶數,其他的一些系統(tǒng)屬性值也可以由它推出。在本節(jié)中,我們會討論如何計算網絡帶寬占用率。 對于 Web 應用,請求率(作者注:比如說單位時間內的請求數,有時候視為點擊率)是另一個進行容量規(guī)劃的重要因素。如果可以通過樣本得到用戶的平均數值是 r,那么可以容易得出:式中的C和分別是平均并發(fā)用戶數和高峰并發(fā)用戶數。 拿薪酬系統(tǒng)的例子來說,如果平均每個用戶每分鐘發(fā)起 10 個請求,那高峰時平均總的請求率就大概是1590/分鐘。(作者注:)。 類似的,如果我們能夠確定每位用戶的平均網絡帶寬占用率,總共的網絡帶寬占用率可以用相同的方法求出。每個用戶的單位時間的 bits/bytes 可以由系統(tǒng)通過網絡傳給用戶的數據轉換。令平均的占用率是u,則有: 八、總結 在本文中,我們提出了一個公式,利用該公式可以通過系統(tǒng)的登錄用戶數來計算某段關注的時間的平均并發(fā)用戶數。另外本文還給出了一些估算這些參數的建議。 在登錄用戶數符合泊松分布的假設下,我們大致推斷出了高峰并發(fā)用戶數的上限。 文中的那幾個公式并非解決找出并發(fā)用戶數的靈丹妙藥。它們僅僅提供了解決此類問題的一個方向。確切的公式更大程度上取決于找到用戶登錄的時間段以及平均在線時長,這兩者又取決于用戶習慣。有時候準確預估并發(fā)用戶數真的是又費馬達又費電。然而,我們堅信對于很多的系統(tǒng)來說,有些雖然粗糙但又挺合理的估算在既省時又省力的情況下是可以接受的。附錄:關于第 3 節(jié)公式(*)的證明 設是 t 時刻的并發(fā)用戶數。設想從 O 到 T 的這個時間段被平均分成了 n個小段。每一段的時長是并且第 i 段在時間處結束: 當 n 很大的時候,以下對于并發(fā)用戶數的估算是合理的:我們可以定義

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論