1. 程式人生 > >根據PV計算頻寬及根據PV算併發

根據PV計算頻寬及根據PV算併發

根據PV計算頻寬
我們通常說的網站流量(traffic)就是指網站的訪問量,是用來描述訪問一個網站的使用者數量以及使用者所瀏覽的網頁數量等指標,常用的統計指標包括網站的獨立使用者數量、總使用者數量(含重複訪問者)、網頁瀏覽數量、每個使用者的頁面瀏覽數量、使用者在網站的平均停留時間等。
網站訪問量的衡量標準一個是IP,另一個是PV,常以日為標準,即日獨立IP和PV來計算.
    訪問數(IP):即Internet Protocol,指獨立IP數。00:00-24:00內相同IP地址只被計算一次。
    綜合瀏覽量(PV):即Page View, 即頁面瀏覽量或點選量,使用者每次重新整理即被計算一次。
    二者的聯絡與區別:PV高不一定代表來訪者多;PV與來訪者的數量成正比,但是PV並不直接決定頁面的真實來訪者數量。比如一個網站就你一個人進來,通過不斷的重新整理頁面,也可以製造出非常高的PV。
IP是一個反映網路虛擬地址物件的概念,獨立使用者是一個反映實際使用者的概念,每個獨立使用者相對於每個IP,更加準確地對應一個實際的瀏覽者。使用獨立使用者作為統計量,可以更加準確的瞭解單位時間內實際上有多少個訪問者來到了相應的頁面。
一個獨立IP可以產生多個PV,所以PV個數>=IP個數。
    PV(Page View)值:是指一定時間範圍內所有瀏覽該網站的訪問者請求的頁面數量之合。(例如:該網站一天有500個訪問者,每個訪問者瀏覽的頁面數量平均為8頁,則每天的PV是500×8=4000)
    Hits值:是指對每個頁面元素的請求數量。(一個頁面中任何一個圖片或者flash檔案都算是一個頁面元素)
    日瀏覽位元組數:即日流量,是指一天內,訪問者請求的所有頁面元素的位元組數之和。

計算頻寬大小需要關注兩個指標:峰值流量和頁面的平均大小。舉個例子說明下吧:

    假設網站的峰值流量是平均流量的5倍(當然,這只是一個假設,具體實施我們需要視自己情況而定);
    假設每次訪問的平均頁面大小是200K位元組;
    假設網站的預期目標是每天50W PV的訪問量。
我們的計算開始:50W PV如果在一天內平均分佈,摺合到每秒大概是50W/(24*60*60)=6次訪問,按照我們之前的假設平均頁面大小是200K位元組計算,這6次訪問總 共就是1200K位元組(需要注意的是這個地方是位元組),位元組的單位是Byte,而頻寬的單位是bit,1Byte=8bit,因此1200K Byte大概就是9600K bit,也就是9Mbps(1M=1024K)。在實際的網站執行過程中,我們的網站必須要在峰值流量時保持正常的訪問,這裡就會用到我們之前的假設,峰 值流量是平均流量的5倍,按照這個計算,實際需要的頻寬大約在9Mbps*5=45Mbps左右。
具體的計算公式是:網站獨享頻寬=一天總的PV值÷ 一天總時間(換算到S)*平均頁面大小(單位KB)* 8


     這個計算結果的前提是我們之前的三條假設,而在實際執行中,由於快取、網站提供下載、圖片較多、網站白天夜裡訪問量不同等原因,這個結果可能並不是很理想。所以這個演算法只能算是一個大概的演算法了。

eg. 10w pv,頁面大小1M ,頻寬=10,0000/86400*1M*8 = 9.26Mbps 

PV與併發之間換算的演算法換算公式

併發連線數 = PV / 統計時間 * 頁面衍生連線次數 * http響應時間 * 因數 / web伺服器數量
PV = 併發連線數 * 統計時間 * web伺服器數量/ 頁面衍生連線次數 / http響應時間 / 因數
解釋:
統計時間 : pv統計的總時間,單位秒,要計算一天的pv就是86400秒
頁面衍生連線次數: 一個HTML頁面可能會請求好幾次http連線,如外部的css, js,圖片等,可以估算一下,或者用10,可根據實際情況改變
http響應時間: 可以使用1秒或更少,可根據實際情況改變
因數: 一般使用5即可,可根據實際情況計算後推出
web伺服器數量: web伺服器數量
* "頁面衍生連線次數","http響應時間","因數"這三個引數要根據實際情況分析計算後,確定一個適合的值
推算一下。單臺機器1000併發的情況下,一天是1,728,000的pv(1秒響應,10個衍生連線,因子為5的情況下)
======================================================================
例子:
保證每天多少PV的併發連線數的計算公式是:
併發連線數= PV / 統計時間(一天是86400) * 頁面衍生連線次數 * http響應時間 * 因數(5) / web伺服器數量
保證4千萬PV的併發連線數:
(40000000PV / 86400秒 * 10個派生連線數 * 5秒內響應 * 5倍峰值) / 6臺Web伺服器 = 19290連線數

eg.

10PV的併發連線數:
(100000PV / 86400秒 * 10個派生連線數 * 5秒內響應 * 5倍峰值) / 1臺Web伺服器 = 289連線數

Ref:
[1] http://cwind.blog.51cto.com/62582/1114405
[2] http://2804976.blog.51cto.com/2794976/786664