《魔兽世界》服务器宕机的案例分析
作者:宋家雨 来源:网界网 添加时间:2006-5-26 14:23:33没有什么比服务器宕机更让网络游戏玩家感到沮丧,可是这样的事情就让《魔兽世界》的玩家赶上了。
事件起因
据报道,2月28日,《魔兽世界》全国上千名玩家在进行一个名字叫“安其拉开门”的任务,在即将胜利时集体掉线。
在接到投诉之后,《魔兽世界》在中国的运营商—第九城市计算机技术咨询(上海)有限公司对事件做出了回应,除表示联系游戏开发商—暴雪娱乐对事件进行调查,研究补偿之外,也解释了造成玩家断线的原因。第九城市称,“安其拉开门”是《魔兽世界》游戏中最重要的历史事件,因而吸引了数以万计的中国玩家,不可避免地出现了过多的玩家涌向同一地区,超出了相应服务器的系统容量,致使玩家断线。
据记者查询国外相关游戏网站,类似的断线故障在国外的《魔兽世界》玩家中也时有发生,断线时间有的会超过5分钟。暴雪娱乐方面表示,造成断线最主要的原因是大量“看热闹”的玩家涌入所致。但是,国内的玩家似乎不这么看,一个名为灵魂毁灭者的玩家在论坛上发帖指出,游戏本身没有问题,但是服务器频繁出问题令人扫兴。更有专业游戏网站指出,解决玩家过剩的问题,增加新服务器是必然趋势。那么,这些说法是否正确?
底层结构分析
让我们首先了解一下网络游戏的底层运营平台。我们常听说某网络游戏有百万人在线,实际上,在后台的运行平台上,这100万人并不是运行在一台服务器上,而是散落在不同地区不同的服务器组上。
一组服务器是由多台服务器构成的,通常会有12台。每组服务器支持的用户数将会受到服务器类型、内存以及网络带宽等因素的制约。以目前通常采用的1U双路至强机架式服务器为例,大约1250人就已经达到了一台服务器容量支撑的上限。通常一组服务器所支持的玩家数量大约在6000人左右。这只是一个经验上的数字,在实际的运营中,游戏运营商还要对服务器进行压力测试,通常会经过试验室测试以及公开测试两个阶段。
为“魔兽”把脉
《魔兽世界》是否采用了相同的底层运行平台?分为几个大区,分别托管在哪个数据中心?当宕机事件发生之后,作为网络游戏的运营商,第九城市是如何处理的?宕机原因是否是服务器的容量设计不合理?如何考虑负载均衡的问题?通过增加服务器的数量是否可以解决问题?
带着种种疑问,记者与第九城市的工作人员进行了多次沟通,也得到了一定的答复,他们表示,“安其拉开门”是有一定的触发条件的,不是随时“开门”的,各区的进度并不相同,因此,服务器的宕机事件也仅仅是个别服务器的问题,并不是一个普遍的问题。具体到服务器的底层运营平台,有关工作人员表示,涉及到技术秘密,目前并不方便透露更多的细节问题。
这个问题在去年7月也同样被问到过。当时,第九城市与国外某知名服务器厂商曾就游戏部署服务器举行了新闻发布会。据介绍,《魔兽世界》共采用了2200多台ProLiant刀片服务器,处理器总数超过了4000颗,这也是目前国内首款采用刀片服务器的网络游戏。关于其底层结构,有关人员表示,由于该项目在美国签订,国内对于底层结构并不了解。
那么此次《魔兽世界》宕机事件是否与其所采用的刀片服务器有关呢?就像有些玩家说的,游戏本身没问题,是服务器的质量问题。对此,厂商的技术人员表示:“目前刀片服务器技术已经十分完善,质量已经达到了一个非常高的水平,肯定不会因为刀片服务器的质量影响到游戏的运行” 。
据记者了解,目前有些网络游戏运营商确实在考虑采用刀片服务器,有运营商表示,刀片服务器很有吸引力,其性能和质量没有太多问题,关键还在于性价比。如果排除刀片服务器质量问题,那么增加服务器的数量能否解决宕机的问题呢?
我们知道,在银行等领域,服务器宕机事件也有发生,主要的原因就是容量的设计不合理,那么《魔兽世界》宕机事件是否也与此有关呢?
解决“过载”的处方
由于无法从第九城市方面了解更多的技术细节,这里只是以惯常的技术手段进行推断。我们知道,一组服务器承载的玩家数量是有限制的,例如6000人,那么超过6000人上来会怎么样?
“即便这种情况发生,也不会导致服务器宕机。” 目标软件的副总裁寇宇杰先生表示,“在这种情况下,就会显示服务器忙,请稍候登录,实际上,玩家是无法登录服务器的。”据了解,在实际的运营中,当玩家的数量达到负载的80%的时候,就会考虑重新开一组新的服务器,而不会等到极端情况发生。
按照这种方法进行推论,增加服务器显然并不能够解决《魔兽世界》宕机的问题。那么,问题究竟出在哪里呢?据推测还是与网络游戏的设计有关,假设一组服务器的承载用户数是6000人,实际上这6000人是均匀分布在游戏的各个场景之中的,如果把这6000人集中在一个场景之中,就像银行系统中,把所有银行储户都集中到一个储蓄所集中办理业务,无论如何都无法应对这种局面。这种单点故障,在系统设计的过程中是一定要注意避免的,否则再好的系统也无法应对这种单点的压力,宕机也就无法避免了。
据寇宇杰介绍,在网络游戏的运营过程中,对于各个服务器的运营状况和负载能力,运营商都有很好的远程监控,都可以及时发现硬件的故障,及时予以排除,但是对于这种由于软件设计不平衡导致的问题,管理人员将无能为力。
如此看来,在网络游戏的设计上应该充分考虑到游戏的平衡,避免游戏玩家过于集中,很难想象几千个玩家集中到一个有限场景之中,即便是旁观也会导致消息量的指数级增长,导致服务器系统的宕机。当然这只是一个推论。
可以设想,如果仅仅是增加服务器数量就可以解决问题,而作为国内最具有人气的网络游戏的运营商—第九城市是不会为区区几台服务器的成本,造成如此恶劣的影响。所以,宕机这件事情还是要从游戏设计方面寻找原因,否则服务器的厂商也要为此而背“黑锅”,那可真是冤枉了!
《魔兽世界》宕机案例分析
■ 现象
服务器宕机,导致几千玩家集体掉线。
■ 官方的声明
过多玩家涌向了同一地区,超出了相应服务器的系统容量,致使玩家断线
■ 玩家观点
1.游戏没问题,服务器频繁出问题令人扫兴;
2.解决玩家过剩,增加新服务器是必然趋势
■ 专家推论
增加服务器不能解决问题,修改游戏设计,保持游戏平衡才是解决问题的方法。