Re: [討論] 請問如何建立大型伺服器(2)

作者: softpak (喔喔喔)   2014-05-16 00:43:50
硬體篇
這篇多少會提到一些軟體的東西
像是作業系統
不過本篇還是以硬體為主
測試環境:Linux+SPIGOT(#1472)
先說一下Minecraft的軟體設計機制
他是SMP(Symmetric multiprocessing)架構
(其他架構如MPP、NUMA、CCS,在此就不贅述,有興趣請自行GOOGLE)
例如AI一個執行緒、水流一個執行緒
並非硬體上的平行處理的架構
由於執行緒並無跨處理器的特性
因此只要單一物件讓處理器達到100%負載
就會產生LAG(系統會切換CPU沒錯,但是完全無法解決問題)
因此硬體的選購是很重要的
以下我就電腦的每個零組件作重點說明:
1.中央處理器:
運算能力比核心數量重要
需選購浮點運算較強的電腦
我以INTEL官方提供的數據來作列舉
這是實體核心數量的總運算能力(線上人數極限是訪問了部分開服者所得到的結果)
可以除以核心數之後獲得單核心的計算能力
(1)I7-3770:108.8GFlops(27.2),線上人數極限是30~100人。
(2)I7-3930:153.6GFlops(25.6),線上人數極限是40~150人。
(3)I3-2120:52.8GFlops(26.4),線上人數極限是10~50人。
(4)I5-3470:102.4GFlops(25.6),線上人數極限是20~90人。
(5)E3-1230V2:105.6GFlops(26.4),線上人數極限是20~90人。
(6)E5-2620:96.0GFlops(16.0),線上人數極限是30~110人。
(7)E5-2640:120.0GFlops(20.0),線上人數極限是40~200人。
(8)I7-2600:108.8GFlops(27.2),線上人數極限是20~80人。
(9)Q6600:38.4GFlops(9.6),線上人數極限是4~30人。
(10)E5-2670 v2:230.0GFlops(23.0),線上人數預估是150~300人。
(11)E5-2697 v3:319.7GFlops(22.8),線上人數預估是200~350人。
核心數量確實會有幫助
只是幫助有限
也需看系統的配置與設定
這也是為什麼大型伺服器一定是用多伺服器串連或者多重世界串連
單台電腦是無法負荷千人以上的運算需求的
就算是多處理器(多路)的系統也是一樣
因為使用SMP以外的架構需要重寫程式碼才能真正發揮作用
這又是另外一個主題了
在此不詳加討論
簡單的說
SMP因為共用系統記憶體與匯流排
因此會有RACE CONDITION的情形發生(有在寫程式的人應該會知道這個名詞)
2.記憶體:
記憶體的影響較小
16GB以上即可
3.硬碟:
不論是否有作磁碟陣列
一張含有CPU與記憶體的磁碟控制卡是最佳解
不過價錢當然是頗高
為什麼需要另外的IO卡呢
因為這樣能幫CPU分擔運算負擔
另外為了顧及資料安全
建議建置RAID5或以上的磁碟陣列(6、7)
備源硬碟(HS)也需多準備幾顆
這樣一來在其中幾顆硬碟故障時
系統還能繼續運作不至中斷
4.網路卡:
好的網路卡也是非常重要的
同樣的道理
網卡也必須盡量選購有NPU的產品
配置特殊的記憶體與處理器來輔助封包的解析
大幅降低CPU的使用率
建議是INTEL I350等級以上的晶片
若能買INTEL NE等級的晶片更好
配有獨立的記憶體
當然價錢會比較高
5.不斷電系統:
這是非常重要的設備
甚至可以配置穩壓器(AVR)
並注意電池容量
確保硬體安全
6.協同處理器:
這個部分國外已有玩家在進行研究
像是使用NV的CUDA處理器
或是去年INTEL發表的PHI
不過這些硬體的架構屬平行架構
既是像MPP但又不是MPP
不過同樣的是
要讓這些協同處理器發揮效用
一樣要重新編寫程式碼
這個部份我想等出了MOD API之後應該就會比較好開發了
7.網路頻寬:
視野9
每個玩家載入的chunck數為19*19=361
登入時消耗頻寬為160~200kB/s
移動時消耗的頻寬為20~60kB/s
約為官方伺服器的1/3
其他行為的頻寬消耗皆低於移動
因此就不列出了
因為spigot載入地圖的方式是以視野前方為優先
後方較晚載入
因此頻寬需求較少
以移動來當基準
100M/100M的網路頻寬(上下傳皆為12.5MB/s)
理論上可允許64人同時登入而不LAG
同時在線的玩家理論上可容納213個(以移動時最大頻寬消耗60kB/s計算)
以上內容僅供參考
因為架服的因素實在太多
若有些資料與實際不符
也歡迎指正
作者: lsslss (新玩具耶!這怎受得了(嘆)   2014-05-16 01:19:00
UPS買Online就不用AVR了
作者: jh961202 (阿電)   2014-05-16 02:49:00
太專業,只好推了原PO該不會是某遊戲公司的硬體工程師...(被拖走
作者: panda04056 (圓仔cross56)   2014-05-16 10:49:00
長知識 推!
作者: janice001 (真理)   2014-05-16 11:06:00
大推>////< 就是期待這種專業說明
作者: what7910   2014-05-16 13:58:00
它的SMP不會自己lock resource嘛?不然怎麼會RaceCond
作者: nick5487 (nick5487)   2014-05-16 15:49:00
無論是官方server還是CraftBukkit都是相同概念嗎?
作者: Comebuy (三分鐘熱度)   2014-05-17 02:44:00
先推不然人家以為我看不懂
作者: CP64 (( ̄▽ ̄#)﹏﹏)   2014-05-17 03:25:00
我看的懂但是我不知道要接啥 orz
作者: Siu (薈)   2014-05-17 20:16:00
P4伺服器推
作者: egguitar (暱稱)   2014-05-22 10:04:00
你需要的是Blade Server + SAN Storage

Links booklink

Contact Us: admin [ a t ] ucptt.com