1. 程式人生 > >網站架設中的伺服器併發數和伺服器頻寬估計方法

網站架設中的伺服器併發數和伺服器頻寬估計方法

       網站的負載能力主要還是依據每日PV的量。對於併發來講,每一個頁面請求可能有很多個HTTP請求,分別用來下載html,js,css和圖片等部分。同時,連線持續的時間也是一個重要的引數。一般來說,就這兩個引數,再加上PV的時間分佈,即一天的多少小時內產生這些PV,就可以估計網站的併發數了。計算公式如下:
PC=PV/T*C*t
其中,PC是併發數,T是觀測時間,即產生PV的時間長度,比如一天中的14個小時產生了20萬併發,則公式中T=14*60*60秒,PV=20萬。C是單個頁面請求的HTTP連線數,t是連線的持續時間,一般取一個估計使用者等待連線的時長,比如使用者在平均等待5秒發現網頁還沒開啟就不耐煩了,那麼這個t可以取5秒。不過由於網站的訪問往往有很大的不確定性,雖然我們知道平均PV,但是偶爾可能碰到訪問量井噴的時候,淘寶在搞促銷的時候就經常有這個問題,京東也一樣,我在豆瓣上沒少見到友鄰鄙視京東的伺服器承壓能力......嘛,我們在計算的時候就必須考慮這種極端情況帶來的影響,通常要在以上公式中加入一個因數,代表極端情況。那麼以上公式修改為:
PC=PV/T*C*t*f
其中f表示極端情況下PV相對於平均PV的倍數。

       需要注意的是,我們的計算僅考慮了伺服器只有一臺的情況,或者說以上計算實際上估計的是總的併發需求,並未考慮硬體上可能存在多個伺服器的情況。有些帖子裡會簡單的在上面的公式右邊再除以伺服器的個數。但本人並不贊同這種做法。因為不同伺服器往往要執行不同的應用和服務,那麼不同的伺服器被訪問的量也就不同,用這種簡單平均的估算方法並不準確,尤其是在專案較大,涉及的應用較多的時候,這種計算非常不合理。更好的做法是根據具體的需求和系統的架構來對各個伺服器進行估計。而這就涉及到技術架構的很多方面了,比如請求中有多少是靜態頁面的,多少動態頁面的,多少對資料庫進行讀寫操作的,是讀還是寫,快取怎麼安排,如果訪問量太大,單個數據庫的壓力太大,做成資料庫集群后又如何。訪問量再擴大,現有的資料架構能否跟上,伺服器硬碟的I/O效能能否跟上等,都會成為估計的問題。目前我負責的專案還處於策劃階段,所以沒有辦法做到如此細緻。但到了專案真正實施部署並測試的時候,這些應該都會成為考慮的方向。

       而頻寬的估計又跟併發有關,不僅如此,頻寬要求還跟網頁的平均大小,圖片的大小有很大的關係。技術方面,快取的方案也會大大影響頻寬的使用。在不考慮任何優化的情況下,頻寬的估算可以依據以下公式:
BW=PS*PC*8bit/byte*r/t
其中BW為頻寬大小,PS為頁面平均大小,PC為併發數,8bit/byte是單位轉換,1byte=8bit,r是因數,代表極端情況,作用跟併發估計中的f因數差不多。t指使用者能忍受的平均最大等待時間,比如20秒之內網頁沒有完全開啟,使用者就會離開,則t取20秒。同樣,這個公式估計的也是單個伺服器的頻寬需求,或者是網站的總頻寬需求。對於具體的情況,我們往往也要根據系統架構來對單個伺服器進行估計。這裡面需要考慮的因素包括網路請求中的資料平均大小,是網頁則是網頁的大小,是圖片則是圖片的大小,是Web服務介面則是通訊的訊息大小;瀏覽器端的快取使用,js,css,圖片是否放在CDN上等等。因為資訊太少,我依然無法準確估計。


      另外,以上計算的公式,我都是在網上看來的,沒有過多的去深究機理,有什麼不對的,還請高手們拍磚。

相關推薦

網站架設伺服器併發伺服器頻寬估計方法

       網站的負載能力主要還是依據每日PV的量。對於併發來講,每一個頁面請求可能有很多個HTTP請求,分別用來下載html,js,css和圖片等部分。同時,連線持續的時間也是一個重要的引數。一般來說,就這兩個引數,再加上PV的時間分佈,即一天的多少小時內產生這些PV,

伺服器併發訪問量計算與伺服器配置

併發訪問量是10分鐘100人線上?還是每秒100個併發請求?  如果是前者,以在10分鐘內,100人每人平均訪問10個pv,那麼每秒請求數就是100*10/10/60=1.66,對伺服器壓力幾乎就沒有啦,用個單路雙核的伺服器輕鬆搞定。  如果是後者,至少就得一個四核處理器,2G記憶體,10M獨享頻寬以上,才可

機器學習的概率模型概率密度估計方法及VAE生成式模型詳解之二(作者簡介)

AR aca rtu href beijing cert school start ica Brief Introduction of the AuthorChief Architect at 2Wave Technology Inc. (a startup company

機器學習的概率模型概率密度估計方法及VAE生成式模型詳解之一(簡介)

價值 新書 The aar 生成 syn TE keras 第一章 A Gentle Introduction to Probabilistic Modeling and Density Estimation in Machine LearningAndA Detailed

機器學習的概率模型概率密度估計方法及VAE生成式模型詳解之五(第3章 之 EM算法)

ado vpd dea bee OS deb -o blog Oz 機器學習中的概率模型和概率密度估計方法及VAE生成式模型詳解之五(第3章 之 EM算法)

機器學習的概率模型概率密度估計方法及VAE生成式模型詳解之六(第3章 之 VI/VB算法)

dac term http 51cto -s mage 18C watermark BE ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

機器學習的概率模型概率密度估計方法及VAE生成式模型詳解之七(第4章 之 梯度估算)

.com 概率 roc 生成 詳解 time 學習 style BE ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?機器學習中的概率模型和概率密度估計方法及V

機器學習的概率模型概率密度估計方法及VAE生成式模型詳解之八(第4章 之 AEVBVAE)

RM mes 9.png size mar evb DC 機器 DG ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

機器學習的概率模型概率密度估計方法及VAE生成式模型詳解之九(第5章 總結)

ces mark TP 生成 機器 分享 png ffffff images ? ?機器學習中的概率模型和概率密度估計方法及VAE生成式模型詳解之九(第5章 總結)

機器學習的概率模型概率密度估計方法 及 VAE生成式模型詳解(之二)

簡介     非監督機器學習(Unsupervised Machine Learning)中的資料分佈密度估計(Density Estimation)、樣本取樣(Sampling)與生成(Generation,或Synthesis,即合成)等幾類任務具有重要的應用價值,這從近

oracle資料庫選擇桌面類伺服器類的區別

在以前的學習過程中,一直用到的都是sql server資料庫,之後接觸到了oracle資料庫。在安裝過程中,有兩個選項,桌面類和伺服器類,當時按照網上的安裝步驟,選擇了桌面類,後來公司裡他們安裝都是用的伺服器類,後來查了查兩者的區別。 桌面類――這種安裝方式一般適用於桌上型電腦和筆記本。它包含一

把插入的資料自動備份到另一個表 ~ 語境:本地伺服器自動同步

逆天最近在弄一個本地和伺服器自動同步的東西,每天都會新增很多新資料,本地和伺服器同樣的ShopMenu表,我總不能每次都把伺服器的清掉然後再把本地的匯入進去吧~ 可能有人說~直接插伺服器的資料庫不就可以了嗎? 可惜==》 本地的資料測試通過後才允許同步到伺服器中 可能又有人說~設定一個 所以就有

C++虛函多態

對象實例 http 子類 應該 函數指針 amp ive 什麽 覆蓋 1.C++中的虛函數 C++中的虛函數的作用主要是實現了多態的機制。關於多態,簡而言之就是用父類型別的指針指向其子類的實例,然後通過父類的指針調用實際子類的成員函數。這種技術可以讓父類的指針有“多種形態”

mysql日期函日期的加減運算

一個數 hour %u rdate 時間值 範圍 ddd name 需要 mysql日期運算,日期函數 DAYOFWEEK(date) 返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。這些索引值對應於ODBC標準。 mysql> sel

c/c++時間函隨機函的總結

type years errno tween rom 循環語句 see cpu linux時間 c/c++中時間函數和隨機函數的總結 *******************C++的隨機函數和時間函數************ 隨機函數 一、C++中不能使用rand

hive優化之——控制hive任務的mapreduce

計算 2-0 問題 tdi title ask hadoop 發現 http 一、 控制hive任務中的map數: 1. 通常情況下,作業會通過input的目錄產生一個或者多個map任務。主要的決定因素有: input的文件總個數,input的文件大小,集群設

Pythonjoin函os.path.join用法

post () 參數說明 python class log join 絕對路徑 返回 Python中有join和os.path.join()兩個函數,具體作用如下: join:連接字符串數組。將字符串、元組、列表中的元素以指定的字符(分隔符)連接生成一個新的字符串 os.p

Python特殊函表達式 filter,map,reduce,lambda

result before positive ply sequence items closed 默認 hid 1. filter 官方解釋:filter(function or None, sequence) -> list, tuple, or string Re

php 構造函析構函

bsp style 自動調用 eight pan name new class per 構造函數: 在對象實例化時被調用,一個類中只能有一個構造函數,在類中起初始化的作用。 析構函數: 在對象結束時被自動調用。 話不多說,用一段代碼來說明兩者的區別: <?p

db2left()函right()函對應oracle的substr()函

itl sql sel div 都是 db2 class () tle DB2 LEFT、RIGHT函數 語法:LEFT(ARG,LENGTH)、RIGHT(ARG,LENGTH) LEFT、RIGHT函數返回ARG最左邊、右邊的LENGTH個字符串,ARG可以是CHAR或