對于網(wǎng)站帶寬來說,并沒有一個通用固定的公式和計算的方法來計算網(wǎng)站所需帶寬,但是并不是這樣我們就沒法對網(wǎng)站的帶寬進行預算了。同樣我們還有有辦法對帶寬和資源進行預算,這樣就可以知道需要買什么樣的服務(wù)器,和需要多少帶寬了,不同的業(yè)務(wù),流量差距很大的,下面我們看一下常見的網(wǎng)站類型和帶寬資源需求。
本文以我所經(jīng)歷的一個項目案例來說明。
網(wǎng)站類型:
文字類:導航、門戶網(wǎng)站(大量的文字內(nèi)容+少量配圖)——頁面大小在20K文字+100K資源
圖片類:相冊、圖片分享(大量圖片)——頁面大小在1M圖片
視頻類:軟件下載、視頻播放(大文件)——文件大小在10M左右
電商類:導購、商城(大量文字+大量圖片)——頁面大小在1M圖片
社交類:論壇、博客、群組(大量文字+部分靜態(tài)資源)——頁面大小在20K文字+200K資源
我們的服務(wù)器包括門戶網(wǎng)站和電子商務(wù)頁平均面大小1M(電子商務(wù))+0.8M(門戶網(wǎng)站)=1.8M
這個是網(wǎng)站頁面的平均大小,即網(wǎng)站頁面及圖片視頻CSS、JS大小總和/頁面數(shù),即為平均頁面大小。預計我們兩個網(wǎng)站頁面平均大小為1M和0.8M。
計算公式: 網(wǎng)站PV【注釋1】* 頁面下載大小 * 8 / 30000
上面的 30000 是一天的有效秒數(shù),畢竟高峰、低峰有差別,一天中的高峰時段還是比較少。
上面的 8 是指一個字節(jié)是8位,而帶寬都是以位做衡量單位。
我們這里用10萬PV作為一個量級來做一次計算
文字類: 100000 * 0.12 * 8 / 30000 = 3.2
社交類: 100000 * 0.22 * 8 / 30000 = 5.86
圖片類: 100000 * 1 * 8 / 30000 = 26
電商類: 100000 * 1 * 8 / 30000 = 26
視頻類: 100000 * 10 * 8 / 30000 = 266
從上面的計算結(jié)果大概可以有一個概念了吧。
一個門戶網(wǎng)站,頁面內(nèi)容小一點,圖片少一點,需要的帶寬相應(yīng)也就不會太多了。10萬的PV基本上可以一個3、5M的帶寬就可以搞定了,不需要高太多復雜的分離【注釋2】等工作。我們這里門戶網(wǎng)站和電商分別
門戶網(wǎng)站:100000 * 0.8 * 8 / 30000 = 22M
電子商務(wù):100000 * 1* 8 / 30000=27M
第一:假設(shè)峰值流量是平均流量的5倍。
第二:假設(shè)每次訪問平均的頁面大小 門戶網(wǎng)站800K,電子商務(wù)1024K。
如果100萬PV的訪問量在一天內(nèi)平均分布的話,折合到每秒大約12次訪問,如果按平均每次訪問頁面的大小是800K(1024K)字節(jié)左右計算的話,這12次訪問總計大約就是9600K(12288K)字節(jié),字節(jié)的單位是Byte,而帶寬的單位是bit,它們之間的關(guān)系是1Byte = 8bit,所以9600K Byte(12288K)大致就相當于76800K bit(98304 K bit),也就是75Mbps (96Mbps)的樣子,實際情況中,我們的網(wǎng)站必須能在峰值流量時保持正常訪問,所以按照假設(shè)的峰值流量算,真實帶寬的需求應(yīng)該在75Mbps(96Mbps) 左右。
當然,這個結(jié)論是建立在前面提到的兩點假設(shè)的基礎(chǔ)(100萬PV值、平均頁面800k(1024k))上,如果你的實際情況和這兩點假設(shè)有出入,那么結(jié)果也會有差別。
前期網(wǎng)站訪問量比較少100萬PV肯定是沒有的,前期訪問量預計會在,門戶網(wǎng)站0.5萬PV,電子商務(wù)1萬PV,通過計算帶寬為:門戶網(wǎng)站為0.48M、電子商務(wù)為0.96M.。同時考慮系統(tǒng)冗余0.3。即所需帶寬為(0.48+0.96)/0.7=2.05M即4M帶寬(帶寬為偶數(shù)和整數(shù))
即在前期4M帶寬這足夠,但是隨著宣傳和推廣流量會迅速上升、短時間內(nèi)會達到一個平衡。預計門戶網(wǎng)站會達到10萬PV、電子商務(wù)40萬PV左右即
【(10/0.5)0.48+(40/1)0.96】/0.7=68.5M即70M帶寬。
當然這個也是在一個前提內(nèi):即1S內(nèi)網(wǎng)站做出的反應(yīng),研究表明,用戶能夠忍受的最長等待時間的中位數(shù),在6~8秒之間。這就是說,8秒是一個臨界值,如果你的網(wǎng)站打開速度在8秒以上,那么很可能,大部分訪問者最終都會離你而去。研究顯示,如果等待12秒以后,網(wǎng)頁還是沒有載入,那么99%以上的用戶會關(guān)閉這個網(wǎng)頁,不再等待。相對應(yīng)地,網(wǎng)頁打開速度越慢,訪問者的心理挫折感就越強,就會對網(wǎng)站的可信性和質(zhì)量產(chǎn)生懷疑。在這種情況下,用戶會覺得網(wǎng)站的后臺可能出現(xiàn)了一些錯誤,因為在很長一段時間內(nèi),他沒有得到任何提示。而且,緩慢的打開速度會讓用戶忘了下一步要干什么,不得不重新回憶,這會進一步惡化用戶的使用體驗。
人們不喜歡速度慢的軟件因為人們不喜歡等待,等待意味著你要浪費時間而無所事事。但等待是你和電腦交互的過程中所必須經(jīng)歷的過程,軟件不會馬上相應(yīng)你的指示,你需要等待軟件載入,等待網(wǎng)頁下載,登載……
因為等待并不是產(chǎn)品好的特征,你需要把它的影響最小化。所以要想辦法縮短讓用戶等待的時間。如果反應(yīng)時間增加同樣所需帶寬減少一半,對于門戶網(wǎng)站和電子商務(wù)建議在2S內(nèi)做出反應(yīng),所以所需帶寬70M/2=35M(40M)足夠。縮短用戶等待時間還有其他很多方法,比如優(yōu)化代碼,還有就是現(xiàn)在比較流行的加入有趣的進度條的設(shè)計,一方面網(wǎng)站能夠向用戶顯示反饋消息,進度條告訴用戶進度目前完成了多少,還剩下多少,還可以精確地顯示進行得有多快,以此來估算出剩余時間。 另一方面有趣的進度條設(shè)計可以分散用戶等待的注意力,從而讓用戶覺得等待的時間沒有那么長,程序運行的不那么慢!
除了帶寬速度外,實際的業(yè)務(wù)支撐情況取決于以下幾點因素:服務(wù)類型(即門戶網(wǎng)站、電子商務(wù))、服務(wù)器硬件性能(cpu、內(nèi)存)、網(wǎng)站程序、數(shù)據(jù)庫(Oracle、MySql、MSsql)等。
服務(wù)器資源:
一臺服務(wù)器支撐的訪問量沒有一個定值,因為不同的應(yīng)用占用的服務(wù)器硬件資源和服務(wù)器帶寬資源是不一樣的,如服務(wù)器上面的數(shù)據(jù)庫結(jié)構(gòu)復雜,且數(shù)據(jù)文件龐大,一個訪問者進行數(shù)據(jù)查詢,造成的計算量可能要消耗 1%的 CPU 資源,復用 CPU 情況下大概估算 200 個這樣的用戶就會消耗完服務(wù)器的 CPU 資源,即使帶寬再充足,用戶訪問已經(jīng)非常慢了,因為服務(wù)器沒法計算超額的任務(wù);
在這里我們只考慮帶寬的影響。網(wǎng)站流量是實時動態(tài)變化的,所以我們最好采用監(jiān)控系統(tǒng)來監(jiān)測網(wǎng)站數(shù)據(jù)流量和安全??杀O(jiān)測的網(wǎng)站內(nèi)容包括:網(wǎng)站文字、鏈接、圖片、源代碼、網(wǎng)頁打開速度、DNS解析等。
注釋:
1、 PV:PV(page view)即頁面瀏覽量,通常是衡量一個網(wǎng)絡(luò)新聞頻道或網(wǎng)站甚至一條網(wǎng)絡(luò)新聞的主要指標。網(wǎng)頁瀏覽數(shù)是評價網(wǎng)站流量最常用的指標之一,簡稱為PV。監(jiān)測網(wǎng)站PV的變化趨勢和分析其變化原因是很多站長定期要做的工作。 Page Views中的Page一般是指普通的html網(wǎng)頁,也包含php、jsp等動態(tài)產(chǎn)生的html內(nèi)容。來自瀏覽器的一次html內(nèi)容請求會被看作一個PV,逐漸累計成為PV總數(shù)。
2、分離: 是指由于網(wǎng)站訪問量過大,把圖片、靜態(tài)頁面、動態(tài)處理,分為不同的服務(wù)器來處理,從而減輕服務(wù)器壓力。