前幾天有個客戶需要臺香港的高并發(fā)服務器,對各項要求都不清楚,一味說高并發(fā)
所以今天說下關(guān)于這方面的問題
幾個概念
網(wǎng)站流量是指網(wǎng)站的訪問量,用來描述訪問網(wǎng)站的用戶數(shù)量以及用戶所瀏覽的網(wǎng)頁數(shù)量等指標,常用的統(tǒng)計指標包括網(wǎng)站的獨立用戶數(shù)量、總用戶數(shù)量(含重復訪問者)、網(wǎng)頁瀏覽數(shù)量、每個用戶的頁面瀏覽數(shù)量、用戶在網(wǎng)站的平均停留時間等。
網(wǎng)站訪問量的常用衡量標準:獨立訪客(UV) 和 綜合瀏覽量(PV),一般以日為單位來衡量和計算。
獨立訪客(UV):指一定時間范圍內(nèi)相同訪客多次訪問網(wǎng)站,只計算為1個獨立訪客。
綜合瀏覽量(PV):指一定時間范圍內(nèi)頁面瀏覽量或點擊量,用戶每次刷新即被計算一次。
PV計算帶寬
計算帶寬大小需要關(guān)注兩個指標:峰值流量和頁面的平均大小。
舉個例子:
假設網(wǎng)站的平均日PV:10w 的訪問量,頁面平均大小0.4 M 。
網(wǎng)站帶寬 = 10w / (24 *60 * 60)* 0.4M * 8 =3.7 Mbps
具體的計算公式是:網(wǎng)站帶寬= PV / 統(tǒng)計時間(換算到S)*平均頁面大。▎挝籏B)* 8
在實際的網(wǎng)站運行過程中,我們的網(wǎng)站必須要在峰值流量時保持正常的訪問,假設,峰值流量是平均流量的5倍,按照這個計算,實際需要的帶寬大約在 3.7 Mbps * 5=18.5 Mbps 。
PS:
1. 字節(jié)的單位是Byte,而帶寬的單位是bit,1Byte=8bit,所以轉(zhuǎn)換為帶寬的時候,要乘以 8。
2. 在實際運行中,由于緩存、CDN、白天夜里訪問量不同等原因,這個是絕對情況下的算法。
PV與并發(fā)
具體的計算公式是:并發(fā)連接數(shù) = PV / 統(tǒng)計時間 * 頁面衍生連接次數(shù) * http響應時間 * 因數(shù) / web服務器數(shù)量;
解釋:
頁面衍生連接次數(shù): 一個頁面請求,會有好幾次http連接,如外部的css, js,圖片等,這個根據(jù)實際情況而定。
http響應時間: 平均一個http請求的響應時間,可以使用1秒或更少。
因數(shù): 峰值流量 和平均流量的倍數(shù),一般使用5 ,最好根據(jù)實際情況計算后得出。
例子:
10PV的并發(fā)連接數(shù): (100000PV / 86400秒 * 50個派生連接數(shù) * 1秒內(nèi)響應 * 5倍峰值) / 1臺Web服務器 = 289 并發(fā)連接數(shù)
所以,如果我們能夠測試出單機的并發(fā)連接數(shù),和 日pv 數(shù),那么我們同樣也能估算出需要web的服務器數(shù)量。
還有一套通過單機 QPS計算 pv 和 需要的web服務器數(shù)量的方法,目前一些公司采用這種計算方法,但是其實計算的原理都是差不多的。
QPS、PV和需要部署機器數(shù)量計算公式(轉(zhuǎn))
術(shù)語說明:
QPS = req/sec = 請求數(shù)/秒
【QPS計算PV和機器的方式】
QPS統(tǒng)計方式 [一般使用 http_load 進行統(tǒng)計]
QPS = 總請求數(shù) / ( 進程總數(shù) * 請求時間 )
QPS: 單個進程每秒請求服務器的成功次數(shù)
單臺服務器每天PV計算
公式1:每天總PV = QPS * 3600 * 6
公式2:每天總PV = QPS * 3600 * 8
服務器計算
服務器數(shù)量 = ( 每天總PV / 單臺服務器每天總PV )
【峰值QPS和機器計算公式】
原理:每天80%的訪問集中在20%的時間里,這20%時間叫做峰值時間
公式:( 總PV數(shù) * 80% ) / ( 每天秒數(shù) * 20% ) = 峰值時間每秒請求數(shù)(QPS)
機器:峰值時間每秒QPS / 單臺機器的QPS = 需要的機器