PV和併發 以及計算web伺服器的數量的方法

2022-02-06 11:16:32 字數 1855 閱讀 5265

幾個概念

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

綜合瀏覽量(pv):指一定時間範圍內頁面瀏覽量或點選量,使用者每次重新整理即被計算一次。

pv計算頻寬

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

**頻寬 = 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,等,這個根據實際情況而定。

因數: 峰值流量 和平均流量的倍數,一般使用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

web伺服器 併發web伺服器實現 epoll

在linux的網路程式設計中,很長的時間都在使用select來做事件觸發。在linux新的核心中,有了一種替換它的機制,就是epoll。epoll 是當今 linux 系統採用的方式,一般伺服器都是用 epoll 來實現的。epoll 是一種方案,這種方案不使用多程序多執行緒多協程,而是使用單程序單...

Web伺服器 併發伺服器 長連線(3 4 4)

每次new socket都被強制關閉,造成短連線 所提不要關閉套接字 但是不關閉的話,瀏覽器不知道發完沒有啊 此時用到header的屬性content length 將http body的長度裝到返回頭,送出給瀏覽器 當瀏覽器獲取完資料了之後,就不會再載入了 設定非堵塞 tcp sever sock...

Web伺服器 併發伺服器 Epoll(3 4 5)

epoll是一種解決方案,nginx就是用的這個 中心思想 不要再使用多程序,多執行緒了,使用單程序,單執行緒去實現併發 在上面部落格實現的 中使用過的輪詢去檢視套接字有沒有資料,而epoll是主動通知 當使用多程序的時候,是複製乙份資源去檢視,epoll不用複製,直接來 優勢 1.共享記憶體 2....