暴雪嘉年华上公布《魔兽世界:无限》之后,玩家们都很兴奋,准备直接冲进 Beta,数千人排队进入艾泽拉斯,想看看里面有什么新惊喜。但和大多数 Beta 测试一样,问题不少,有预期内的也有意料之外的。那些意料之外的问题让很多玩家想弄清楚:为什么刚开的时候这么容易出 bug、这么卡、这么让人上火。
高级游戏制作人 Tom Ellis 在 X(推特)上发了一篇长帖,说明了《无限》Beta 上线时遇到的问题。魔兽直播问答结束之后,《无限》的服务器本该上线,但问题把上线推迟了。即使服务器开始启动了,很多玩家还是遇到掉线、排队时间长;好不容易进了游戏,还有拾取延迟等等。
![]()
以下是 Tom Ellis 帖子的内容:
好了,现在尘埃落定,你们正开心地玩着,那来说说我看到的最常见的那个问题。 1. 天呐,这游戏都 20 年了,你们怎么还是这么菜!?! a. 嘿,有道理。简短的回答是:这是我们 Beta / PTR 的环境,跟正式生产环境差得远,差了很长很长很长很长很长很长一截。魔兽的 Beta 通常不会带来太大的数据波动,所以这套环境本身就没那么强。这就导致了你们今天看到的第一个问题: 上线之后不久,你排完登录队列(那只是战网在保护自己,对登录做限流,很正常!),然后就被断开了连接。 呃,这么说不完全对。这个问题是今天花了最长时间才查清的(即便如此,大概也花了半小时?)。我们这个小 Beta 环境只用一个区域服务器。嗯,哪天我们应该做一场关于魔兽基础设施的座谈会,好让这些事能讲得通。总之…… 这确实是个问题,但花了一阵子才找到,因为我们所有服务的 CPU 和内存都正常得很,甚至可以说是闲得没事干。战网游戏服务团队去看我们一直在通信、而且一直超时的那几个服务时,它们也很闲。什么鬼。 最终工程师们发现,我们撞上的是 BGS 的计量系统——它是用来保护这些服务不在极端负载下崩掉的。我们那个小小的区域服务器只有两条连接,却试图让大量用户登录;明明 CPU 离打满还远得很,却完全把那个系统用的算法算歪了。我们把那个 2 扩到了 8,闸门立刻又开了。 我们都意识到,这系统触发时需要更多的日志和通知;但这是第一次有人在没有明显 CPU 问题伴随的情况下看到它触发。20 年了,总有新东西。 接下来呢……啊对,那之后不久,很多人遇到拾取时间很长、接任务很慢,等等——任何要跟数据库交互的操作。Beta 用的 PTR 数据库在响应查询时很慢。我们无畏的 Oracle 数据库工程师对所有表做了一次手动 analyze,还配了一些自动化作业定期来做——因为其中有些表是新的,而现有的表正承受大量插入和新的查询行为,所以在数据变化这么大的一段时间里,所有东西都得检查得更勤一些。这些一做完,数据库性能立刻就恢复了。写给数据库工程师看的:对,我们说 analyze,是因为我们老了,我们知道它叫 DBMS_STATS。 重启!我们把你们全都踢下线了。上线几个小时之后,我们注意到负责运行——嗯,你们玩的那个游戏模拟——的 WORLD 池,CPU 跑得滚烫,内存也快用光了。然后我们开始看到第一批虚拟机被 OOM killer 干掉——它们差点把整个虚拟机管理程序也带下去。怀旧服的工程师查明,是我们没有正确关闭空地图,于是 CPU 和内存就被慢慢地——嗯,也不算慢——吃光了。一个快速修复通过了 QA,但要重启才能生效。我们也借这个机会加了一些额外的 WORLD,以防万一;还给那个区域服务器配了个额外的"伙伴",也是以防万一。 再次标记上线,你们全都顺顺当当地涌了进来。现在,作为一个公开 Beta 的头几个小时,情况顺畅得不可思议。怀旧服团队在盯着,随时修任何冒出来的阻塞问题;除此之外我们今晚基本收工了,玩得开心!
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.