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