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