同時線上人數(shù)約2000人需要什么等級服務(wù)器?
以 MySpace 為例
在網(wǎng)絡(luò)上流傳一篇很火紅的文章從 MySpace 數(shù)據(jù)庫看分散式系統(tǒng)數(shù)據(jù)結(jié)構(gòu)變遷,內(nèi)容提到 MySpace 這個大型的社區(qū)網(wǎng)站,使用微軟平臺的 Windows Server、SQL Server、ASP.NET 技術(shù),如今每個月的用戶訪問量高達(dá) 500 億,且已有 2 億個以上的用戶注冊。以下僅節(jié)錄該文的重點:
* 第一代架構(gòu) - 添置更多的 Web 服務(wù)器
在 MySpace 有 50 萬個注冊用戶的時候,網(wǎng)站只用了兩臺 Dell 雙 CPU、4 GB 內(nèi)存的 Web Server (分散用戶的請求)、一臺 DB Server (所有數(shù)據(jù)都存儲在這)。
* 第二代架構(gòu) - 增加數(shù)據(jù)庫服務(wù)器
運行在三臺數(shù)據(jù)庫服務(wù)器上,一臺用于更新數(shù)據(jù) (由它復(fù)制到其他兩個)、另兩臺用于讀取數(shù)據(jù),因為看網(wǎng)頁的人多,而需 寫入的人少。等到用戶數(shù)和訪問量增加了,就再加裝硬盤。
后來數(shù)據(jù)庫服務(wù)器的 I/O 成了瓶頸,就按照垂直分割模式設(shè)計,把網(wǎng)站里的不同功能,如:登錄、用戶資料和博客,搬移到不同的數(shù)據(jù)庫服務(wù)器中,以分擔(dān)訪問壓力;若 增加新功能,就再投入新的數(shù)據(jù)庫服務(wù)器。
當(dāng)注冊用戶達(dá)到 200 萬后,還從存儲設(shè)備與數(shù)據(jù)庫服務(wù)器直接交互的方式,切換到 SAN (存儲區(qū)域網(wǎng)絡(luò)),一種高帶寬、專門設(shè)計的網(wǎng)絡(luò)系統(tǒng),可將大量磁盤存儲設(shè)備連接在一起。MySpace 讓數(shù)據(jù)庫連接到 SAN。但是當(dāng)用戶增加到 300 萬人后,垂直分割策略也變得難以維持下去,后來架構(gòu)師后來將主機升級成 34 個 CPU 的昂貴服務(wù)器,卻也無法負(fù)荷。
* 第三代架構(gòu) - 轉(zhuǎn)到分布式計算架構(gòu)
架構(gòu)師將 MySpace 移到分布式計算架構(gòu),它在物理上分布的眾多服務(wù)器,整體必須邏輯上等同于單臺機器。拿數(shù)據(jù)庫來說,就不能再像過去那樣將應(yīng)用拆分,再以不同數(shù)據(jù)庫分別支持,而必須將整個站點看作一個應(yīng)用。這次,不再按站點功能和應(yīng)用分割數(shù)據(jù)庫,MySpace 開始將它的用戶按每 100 萬一組分割,然后將各組的全部數(shù)據(jù)分別存入獨立的 SQL Server 實例。后來 MySpace 的每臺數(shù)據(jù)庫服務(wù)器實際運行兩個 SQL Server 實例,也就是說每臺服務(wù)器會服務(wù)大約 200 萬用戶。
* 第四代架構(gòu) - 增加數(shù)據(jù)緩存層
當(dāng)用戶達(dá)到 900-1000 萬時,MySpace再次遭遇存儲瓶頸問題,后來引用了新的 SAN 產(chǎn)品,但站點目前的 求,已經(jīng)超越 SAN 的 I/O 磁盤存儲系統(tǒng)、及其讀寫數(shù)據(jù)的極限速度。
當(dāng)用戶達(dá)到 1700 萬時,增加了一個數(shù)據(jù)緩存層,其位于 Web 服務(wù)器和數(shù)據(jù)庫服務(wù)器之間,其唯一職能是在內(nèi)存中建立被頻繁請求數(shù)據(jù)對象的副本。以前每一位用戶查詢一個信息,就請求一次數(shù)據(jù)庫;現(xiàn)在當(dāng)任一個用戶請求數(shù)據(jù)庫后,緩存層就會保留一個副本,當(dāng)其他用戶再訪問時就不需 再請求數(shù)據(jù)庫了,如此一來,不訪問數(shù)據(jù)庫也可以供給數(shù)據(jù)。
* 第五代架構(gòu) - 轉(zhuǎn)到支持 64 位處理器的操作系統(tǒng)和數(shù)據(jù)庫軟件
當(dāng)用戶數(shù)達(dá)到 2600 萬時,轉(zhuǎn)到了還處于 Beta 版、但支持 64 位處理器的 SQL Server 2005。在升級到 64 位的 SQL Server 2005 和 Windows Server 2003 后,MySpace 每臺服務(wù)器配備了 32 GB 內(nèi)存,后來又提升到了 64 GB。
從 MySpace 數(shù)據(jù)庫看分布式系統(tǒng)數(shù)據(jù)結(jié)構(gòu)變遷:
http://www.cnblogs.com/cxccbv/archive/2009/07/15/1524387.html
http://www.javaeye.com/topic/152766
http://smb.pconline.com.cn/database/0808/1403100.html
http://idai.blogbus.com/logs/14736411.html