【游戏】服务器性能测试(二)容灾

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 一个好的服务器架构在设计时不仅需要根据游戏类型和业务需求来评估,还需要将容灾考虑进去,以下罗列了一些容灾相关的指标(非完全):节点不能存在单点故障,即某个节点宕机后不影响其他节点的正常运行,当宕机节点启动后,可以重新连接至其他节点并正常处理业务功能。节点需要支持可快速拉起,即某个节点宕机后可以快速被重新启动,并且业务功能和关联的节点能够正常接入而不受影响。服务的数据丢失不可超过5分钟,且核心数据(或关键数据)不可丢失必须及时入库,最好还可以支持通过日志或者其他形式的记录进行数据的快速恢复。

【游戏】服务器性能测试(二)容灾


一、前言


       我们在进行服务器性能测试的同时也需要关注服务器的架构和容灾需求,这样才可以保证服务器能够既满足性能需求的同时又保证服务器能够稳定运行和保障数据安全。本篇文章记录一下容灾测试相关的知识点。


二、容灾指标


       一个好的服务器架构在设计时不仅需要根据游戏类型和业务需求来评估,还需要将容灾考虑进去,以下罗列了一些容灾相关的指标(非完全):


  • 节点不能存在单点故障,即某个节点宕机后不影响其他节点的正常运行,当宕机节点启动后,可以重新连接至其他节点并正常处理业务功能。


  • 节点需要支持可快速拉起,即某个节点宕机后可以快速被重新启动,并且业务功能和关联的节点能够正常接入而不受影响。


  • 服务的数据丢失不可超过5分钟,且核心数据(或关键数据)不可丢失必须及时入库,最好还可以支持通过日志或者其他形式的记录进行数据的快速恢复。


  • 节点最好可以防单点风险,即少需要主从备份或者集群来规避单点风险,当这个节点宕机后,还有其他的节点可以来担任这个节点任务功能,而不会阻断整个业务。如果节点支持快速拉起也可以防单点风险。


  • 节点最好支持热更新,可以在用户无感知的情况下进行异常数据或者功能的修复更新。现在很多游戏都怕用户流失,也许一次停服更新就会有一批用户流失⊙﹏⊙b汗


三、架构与容灾


  • 集中式架构


微信截图_20220423230956.png


       服务器只有一个进程,所有的逻辑都在单个进程里面处理,这是早期的游戏服务器架构。一旦出现严重的Bug可能导致服务器崩溃或者数据丢失,那么将影响到全部的玩家,因此风险非常高。另外由于是单进程的,全部逻辑都在一个进程里处理,承载人数也不会太高


  • 分布式架构


微信截图_20220423231010.png


       分布式服务器架构将不同的业务放在不同的节点上面处理,这样就可以避免一个节点故障导致全部业务无法处理。分布式服务器架构的设计会根据不同的游戏类型选择不同的方式,但总的来说是会根据业务人数承载和容灾要求进行设计。因此上面这副图只是想表达一下分布式架构的节点情况,下面举例简单介绍一下,由于这块其实是公司的内部技术核心,因此我也是随便画的一些图,大家别介意!


       MMORPG类型的架构图:


微信截图_20220423231033.png


       客户端连接这个区的网关,由网关将数据转发给逻辑服(游戏服),逻辑服对场景中战斗和其他个人业务处理后同步给客户端。这里的逻辑服也可以是一个集群,客户端无需知道自己具体在哪个进程里面。但如果需要处理多玩家之间的交互业务时就需要用到公共服,例如组队、公会、聊天、匹配,因为玩家在不同的进程里面,逻辑服需要找到这些玩家具体在哪个进程以便处理业务。DB服则负责将每个逻辑服的数据读写到数据库。上图中单个逻辑服宕机,不会影响其他逻辑服的玩家体验游戏。其他服也是一样。当然这里说的比较简单,真正的逻辑其实非常复杂,而且很有可能还会引入更多的节点来确保整个架构能够协作完成任务。


       ARPG类型的架构图:


微信截图_20220423231045.png


       对比MMORPG的架构图发现这里多了战斗服集群,ARPG游戏会比较关注的战斗中的打击感,对战斗表现这块要求比较高,因此将战斗业务独立出去进行业务解耦,也可以提高整体的承载能力。另外一般ARPG游戏都是通过组队进入副本战斗,当玩家进行副本战斗时,其实只是跟战斗服进行交互,而不会对其他服产生影响。单个战斗服的宕机只会让这个进程的玩家退出战斗,其他战斗服的战斗则可以正常进行。另外如果战斗服是一个更大的集群,全部区都共用这些节点,那么可以很好的利用资源和跨服战斗的实现。


四、总结


      我们在性能测试的时候需要去理解服务器的架构,知道不同的节点承担的功能业务,这样在设计压测场景时才知道会对哪些节点产生性能压力,好进行性能评估。另外我们也需要考虑服务器是否满足容灾需求,这样才能更好的判断服务器是否能够上线完成使命。 服务器架构需要很深的学习和理解实践,我的能力也只能简单的进行表面的总结,希望对大家有帮助。


欢迎微信搜索"游戏测试开发"关注一起沟通交流。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
2月前
|
运维 Prometheus 监控
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
|
2月前
|
存储 算法 C语言
用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容
本文探讨了用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容,旨在为开发者提供全面的指导和灵感。
62 2
|
2月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
66 4
|
1月前
|
弹性计算 Linux 数据安全/隐私保护
阿里云上快速搭建幻兽帕鲁游戏联机服务器指南
对于热爱幻兽帕鲁游戏的玩家来说,搭建一台专属的联机服务器无疑能够大大提升游戏体验。阿里云作为领先的云计算服务商,为玩家提供了便捷、高效的服务器搭建方案。本文将为您详细介绍如何在阿里云上快速搭建幻兽帕鲁游戏联机服务器,让您轻松享受多人游戏的乐趣。
|
3月前
|
存储 监控 网络协议
服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
【10月更文挑战第11天】服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
189 32
|
3月前
|
缓存 监控 测试技术
服务器压力测试
【10月更文挑战第11天】服务器压力测试
121 31
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试中的人工智能:改变游戏规则的革新
在这篇技术性文章中,我们将深入探讨人工智能(AI)如何彻底改变了软件测试领域。从自动化测试到智能缺陷检测,AI不仅提高了测试的效率和准确性,还为软件开发团队提供了前所未有的洞察力。通过具体案例,本文揭示了AI在软件测试中应用的现状、挑战及未来趋势,强调了技术创新在提升软件质量与开发效率中的关键作用。
|
3月前
|
SQL 分布式计算 NoSQL
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
70 4
|
3月前
|
弹性计算 安全 测试技术
阿里云国际服务器与游戏出海业务结合,九河云助推企业快速运营
阿里云国际服务器与游戏出海业务结合,九河云助推企业快速运营
|
3月前
|
弹性计算 网络协议 Linux
云服务器评估迁移时间与测试传输速度
云服务器评估迁移时间与测试传输速度

热门文章

最新文章