View a markdown version of this page

GAMEPERF05-BP01 在多种计算类型中对游戏性能进行基准测试 - 游戏行业镜头

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

GAMEPERF05-BP01 在多种计算类型中对游戏性能进行基准测试

对于游戏服务器工作负载,没有单一的方法可以确定托管游戏服务器的最佳计算解决方案。对游戏服务器进行基准测试的常用策略是从计算优化的 EC2 'c' 实例开始,因为该实例系列为计算密集型工作负载提供高性能。或者,如果您的游戏需要大量内存来实现特定功能,则内存优化实例可能是最合适的。

在未建立这种最佳实践的情况下暴露的风险等级:高

实施指导

如果您的工作负载占用大量网络资源,请考虑实施经过网络优化的实例(通常在实例名称中使用 “n” 表示),避免使用可突发实例类型 “t”,因为积分用尽后性能会降低。游戏对延迟和丢包很敏感,因此建议使用 EC2 增强联网来帮助提高游戏服务器的网络性能。增强联网使用单根 I/O 虚拟化 (SR-IOV) 为支持的实例类型提供高性能联网功能。 SR-IOV 是一种设备虚拟化方法,与传统的虚拟化网络接口相比,它可提供更高的 I/O 性能和更低的 CPU 利用率。增强联网可以提高带宽,提高每秒数据包数 (PPS) 性能,并不断降低实例间的延迟。使用弹性网络适配器增强联网适用于最新的 EC2 实例类型,定期更新非常重要,这样才能从新实例的性能增强和 AWS Nitro 虚拟机管理程序的改进中获益。

如果您的游戏在多个 EC2 实例类型上的表现相似,则应考虑使用多种实例类型来托管游戏服务器。监控一段时间内的性能,并在主持了足够的制作游戏会话以确定性能趋势后进行进一步优化。请记住,当您在游戏中添加需要不同资源分配的新功能时,您的计算要求可能会发生变化。您可以将 EC2 Auto Scaling 组配置为使用多种实例类型,也可以使用单独的 Auto Scaling 组来托管运行不同实例类型的游戏服务器实例,这样可以更轻松地管理指标的关联和聚合。 

评估您的游戏在不同类型的处理器(例如 Intel-based 实例、 AMD-based 实例和 ARM-based Graviton 实例)上的表现。虚幻引擎 5.1.1 或更新版本可以为 Graviton 编译游戏服务器,并且可以提高游戏的性价比。在每个系列中执行不同规模的扫描和饱和度测试,以确定利用率和性能保持一致的最佳位置。

您还应该对使用容器和 Lambda 函数托管游戏性能的影响进行基准测试。对于不需要长时间游戏服务器进程的用例,例如异步游戏和游戏后端服务,可以考虑使用带有 Lambda 的无服务器架构,这可以简化游戏运营团队的管理和运营,并允许您更快地在全球范围内向多个团队部署游戏。 AWS 区域有关无服务器最佳实践,请参阅无服务器应用程序镜头- Well-Architected 框架。

实施步骤

  • 在 CPU 密集型工作负载的计算优化的 “c” 实例上对游戏服务器进行基准测试,对内存密集型任务进行内存优化实例,在网络优化的 “n” 实例上对游戏服务器进行基准测试,以实现高网络吞吐量。

  • 在支持的实例上使用带有弹性网络适配器 (ENA) 的增强联网来提高网络性能、减少延迟并提高数据包处理速率。

  • 评估和测试多种实例类型、处理器(英特尔、AMD、Graviton)以及容器或 Lambda 托管选项,随着游戏功能的发展调整计算解决方案。

有关更多信息,请参阅为您的全球游戏服务器选择正确的计算策略。