聊一聊PV和併發

  最近和幾個朋友,聊到併發和服務器的壓力問題。不少朋友,不知道該怎麼去計算併發?部署多少臺服務器才合適? 因此,今天就來聊一聊PV和併發,還有計算web服務器的數量 的等方法。這些都是本身的想法加上一些網上的總結,若有不對,歡迎拍磚。 css

  幾個概念web

    網站流量是指網站的訪問量,用來描述訪問網站的用戶數量以及用戶所瀏覽的網頁數量等指標,經常使用的統計指標包括網站的獨立用戶數量、總用戶數量(含重複訪問者)、網頁瀏覽數量、每一個用戶的頁面瀏覽數量、用戶在網站的平均停留時間等。算法

    網站訪問量的經常使用衡量標準:獨立訪客(UV) 和 綜合瀏覽量(PV),通常以日爲單位來衡量和計算。緩存

    獨立訪客(UV):指必定時間範圍內相同訪客屢次訪問網站,只計算爲1個獨立訪客。服務器

    綜合瀏覽量(PV):指必定時間範圍內頁面瀏覽量或點擊量,用戶每次刷新即被計算一次。併發

  PV計算帶寬
    計算帶寬大小須要關注兩個指標:峯值流量和頁面的平均大小。測試

    舉個例子:網站

        假設網站的平均日PV:10w 的訪問量,頁面平均大小0.4 M 。spa

        網站帶寬 = 10w / (24 *60 * 60)* 0.4M * 8 =3.7 Mbps進程

    具體的計算公式是:網站帶寬= PV / 統計時間(換算到S*平均頁面大小(單位KB* 8

    在實際的網站運行過程當中,咱們的網站必需要在峯值流量時保持正常的訪問,假設,峯值流量是平均流量的5倍,按照這個計算,實際須要的帶寬大約在 3.7 Mbps * 5=18.5 Mbps 。

    PS:1. 字節的單位是Byte,而帶寬的單位是bit,1Byte=8bit,因此轉換爲帶寬的時候,要乘以 8。

       2. 在實際運行中,因爲緩存、CDN、白天夜裏訪問量不一樣等緣由,這個是絕對狀況下的算法。
  PV與併發

    具體的計算公式是:併發鏈接數 = PV / 統計時間 * 頁面衍生鏈接次數 * http響應時間 * 因數 / web服務器數量;
  解釋:
    頁面衍生鏈接次數: 一個頁面請求,會有好幾回http鏈接,如外部的css, js,圖片等,這個根據實際狀況而定。

    http響應時間: 平均一個http請求的響應時間,可使用1秒或更少。

    因數: 峯值流量 和平均流量的倍數,通常使用5 ,最好根據實際狀況計算後得出。

  例子:

    10PV的併發鏈接數: (100000PV / 86400秒 * 50個派生鏈接數 * 1秒內響應 * 5倍峯值) / 1臺Web服務器 = 289 併發鏈接數

  因此,若是咱們可以測試出單機的併發鏈接數,和 日pv 數,那麼咱們一樣也能估算出須要web的服務器數量。

  還有一套經過單機 QPS計算 pv 和 須要的web服務器數量的方法,目前一些公司採用這種計算方法,可是其實計算的原理都是差很少的。

  QPS、PV和須要部署機器數量計算公式(轉)

  術語說明: 
    QPS = req/sec = 請求數/秒 
   【QPS計算PV和機器的方式】 
  QPS統計方式 [通常使用 http_load 進行統計] 

    QPS = 總請求數 / ( 進程總數 *   請求時間 ) 

    QPS: 單個進程每秒請求服務器的成功次數 

  單臺服務器天天PV計算 

    公式1:天天總PV = QPS * 3600 * 6 

    公式2:天天總PV = QPS * 3600 * 8 

  服務器計算 

    服務器數量 =  ( 天天總PV / 單臺服務器天天總PV ) 

  【峯值QPS和機器計算公式】 

    原理:天天80%的訪問集中在20%的時間裏,這20%時間叫作峯值時間 

    公式:( 總PV數 * 80% ) / ( 天天秒數 * 20% ) = 峯值時間每秒請求數(QPS) 

    機器:峯值時間每秒QPS / 單臺機器的QPS   = 須要的機器 
    例子:天天300w PV 的在單臺機器上,這臺機器須要多少QPS? 
       ( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS) 
    例子:若是一臺機器的QPS是58,須要幾臺機器來支持? 

       139 / 58 = 3 

相關文章
相關標籤/搜索