《堡垒之夜》并发玩家数超过 340 万,Epic Games 解释了停机问题

尽管长时间的停机, 这堡垒之夜玩家数量持续上升,上周六同时在线玩家人数达到了超过 340 万的新里程碑。 (是的,就在那个周末,游戏遇到了问题!)

上周日,《堡垒之夜》的同时在线玩家数达到了 340 万的新峰值……这并不是没有问题的!这篇博文旨在分享有关快速扩展游戏及其在线服务所面临挑战的技术细节,远远超出我们最疯狂的增长预期。

Epic Games 在一篇新博客文章中分享了这一有趣的新统计数据。除了吹嘘这款游戏有多成功之外,开发商还提供了周六和周日停运的“事后分析”。

关于到底出了什么问题的报告非常详细。如果您想阅读全文,可以这样做这里。然而,在本文中,我将仅提供重点内容和计划的修复。

周六和周日期间,极端负载导致了 6 起不同的事件,其中包括《堡垒之夜》的部分和全部服务中断。

后续步骤和更新

我们现在的首要任务是确保服务可用性。我们接下来的步骤如下:

  • 确定并解决数据库性能问题的根本原因。我们派了 Mongo 专家到现场分析我们的数据库和使用情况,并在周末高负载期间提供实时支持。
  • 优化、减少和消除客户端或服务器对后端的所有不必要的调用。一些示例是定期验证用户权利,而这种情况已经在每次游戏服务调用中隐式发生。当可以更有效地批量完成这些调用时,在游戏会话中注册和取消注册单个玩家,推迟 XMPP 连接以避免在登录/注销场景期间发生抖动。社交功能可从 ELB 或其他连接问题中快速恢复。当 340 万个客户端同时连接时,这些低效率问题会迅速增加。
  • 优化我们在数据库中存储匹配会话数据的方式。即使没有当前写入队列问题的根本原因,我们也可以通过更改存储这些临时数据的方式来提高性能。我们正在制作可能更适合此用例的内存数据库解决方案原型,并研究如何重组当前数据以使其能够正确分片。
  • 提高我们的内部运营卓越性,重点关注我们的生产和开发过程。这包括构建新工具来比较构建之间的 API 调用模式、设置每周集中的性能审查、扩展我们的监控和警报系统,以及不断改进我们的事后分析流程。
  • 改进我们对已知云提供商限制以及子网 IP 利用率的警报和监控。
  • 减少事故发生时的爆炸半径。我们的许多核心服务对全球所有参与者都有影响。虽然我们在世界各地运营游戏服务器,但扩展到其他云提供商并在多个地理位置支持核心服务将有助于减少服务失败时对玩家的影响。扩大我们的足迹也增加了我们的运营开销和复杂性。如果您有运行大型全球多云服务和/或基础设施的经验,我们很乐意听取您的意见。
  • 重新构建我们的核心消息传递堆栈。我们的堆栈的架构无法应对这种规模,我们需要在架构中进行更大的更改以支持我们的增长。
  • 深入挖掘我们的数据和数据库存储。随着我们的服务不断增长,我们的数据集和使用模式每天都变得越来越大,我们遇到了新的、有趣的限制。我们正在寻找经验丰富的 DBA 加入我们的团队,帮助我们解决游戏发展过程中遇到的一些扩展瓶颈。
  • 扩展我们的内部基础设施。当我们的游戏服务规模不断扩大时,我们的内部监控、指标和日志记录以及其他内部需求也会随之扩大。随着我们的足迹不断扩大,我们对更高级部署、配置工具和基础设施的需求也随之增加。如果您有扩展和改进内部系统的经验,并且对 Epic 发生的事情感兴趣,让我们聊聊。
  • 规模化表现。除了提到的许多事情之外,即使 N 个节点上的微小性能变化也会对我们的服务和玩家体验产生巨大影响。如果您有大规模性能调整的经验,并希望做出直接影响玩家的改进,请联系我们。
  • MCP 重新架构 – 将特定功能从 MCP 移至微服务 – 用户数据的事件源数据模型 – 基于参与者的用户会话建模

希望这个周末能过得更顺利一些!

在其他方面堡垒之夜消息称,Epic Games 正在放慢速度发展模范专注于堡垒之夜,这是最新的社区统计展示,并查看游戏的未来更新

来源:史诗游戏