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