本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
GAMEPERF01-BP01 评估游戏服务器资源要求和可扩展性需求
根据您的可扩展性需求评估服务器要求,以验证您选择的托管选项是否既符合您的要求又能提供最佳性能。
在未建立这种最佳实践的情况下暴露的风险等级:高
实施指导
在为游戏服务器选择适当的托管选项时,请考虑以下因素:
游戏服务器资源要求
评估游戏服务器进程的 CPU、内存、网络和存储需求,以确定游戏的消耗。不要忽视网络;每帧都需要 CPU 周期才能接收玩家动作、更新游戏状态并将其发送回玩家。卸载数据包处理可以腾出 CPU 用于核心游戏功能。网络是流畅和响应式游戏的基础,因此在流程的早期对其进行测试可以定义游戏的基准性能概况。
第一人称射击游戏的每秒动作可能很高,CPU需要快速将其转移到网络上,这可能有利于计算优化的C系列实例,而回合制策略游戏每回合可能花费更多的CPU周期进行处理,则可能需要增加R系列实例的内存以在服务器上本地存储和更新游戏状态,然后再将其发送回玩家。使用数据驱动的方法,例如利用率饱和度和误差 (USE) 方法
可扩展性和弹性
评估每个托管选项在不影响性能的情况下可以多快流畅地扩展以满足玩家需求。考虑游戏工作负载所需的自动化和灵活性水平,以便在高峰时段保持流畅的游戏体验。游戏服务器可以通过在同一实例上添加额外的游戏服务器进程来提高利用率来快速扩展,在这种情况下,根据活跃用户数量和正在玩的游戏的增加,游戏后端的扩展速度可能会变慢。您的舰队应根据需求进行扩展,以最大限度地降低成本,同时缩短玩家进入游戏的等待时间。查看 Amazon EC2 竞价型实例顾问,深入了解游戏服务器队列具有成本效益的可用容量。
实施步骤
-
评估游戏服务器对 CPU、内存、网络和存储的资源需求,以选择合适的实例类型,同时考虑游戏特定的性能需求,例如 FPS 游戏的高网络吞吐量或回合制策略游戏的内存优化。
-
通过使用 USE 方法等框架分析性能数据,比较不同的托管选项,例如容器、实例、裸机和托管服务。利用这些见解来对您的系统架构做出更好的决策。
-
设计队列以实现可扩展性和弹性,利用 EC2 Spot Instance Advisor 等工具优化成本,同时促进快速扩展,以满足高峰时段的玩家需求。