【游戏】服务器性能测试(七)哪些业务需压测?

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 首先决定服务器性能的主要指标有:CPU、内存、网络,其实还有一个隐形的指标就是数据稳定,即不可产生数据丢失、数据异常。CPU主要消耗在逻辑运算上,几乎所有的业务都需要消耗CPU;内存主要指加载进内存后生成的对象所占用的内存,除了防止业务产生内存泄漏外,还需要避免整体内存占用过高;网络主要产生在服务器与客户端或其他网元节点数据交互上,占用较高网络带宽不仅产生流量费用,而且会引起游戏体验的卡顿。

【游戏】服务器性能测试(七)哪些业务需压测?


一、前言


   在进行服务器性能测试的时候,经常需要对业务进行筛选和排优先级,有些业务是需要优先进行,而有些则可以放缓,那么到底如何对业务进行划分呢?本篇接下来就对业务的选择划分做下简单的介绍。(注:本文的全部图片均来自网络)


二、测试业务的选择


   首先决定服务器性能的主要指标有:CPU、内存、网络,其实还有一个隐形的指标就是数据稳定,即不可产生数据丢失、数据异常。CPU主要消耗在逻辑运算上,几乎所有的业务都需要消耗CPU;内存主要指加载进内存后生成的对象所占用的内存,除了防止业务产生内存泄漏外,还需要避免整体内存占用过高;网络主要产生在服务器与客户端或其他网元节点数据交互上,占用较高网络带宽不仅产生流量费用,而且会引起游戏体验的卡顿。


    1. 数据读取、存储相关的业务。


       “网络游戏其实就是一堆数据而已”,此语已道破真相。就像单机游戏的存档一样,删除存档就只能重新开始,有了别人的存档数据就可以按照他的进度继续下去。网络游戏所有玩家的数据都存储在服务器上,一旦产生数据丢失后果就会非常严重,因此做好数据的存储和读取相关业务的性能测试是重中之重。很多业务都涉及数据的读取和存储,以下列举了两个比较重要的业务场景。


       1) 注册业务:新玩家进入游戏,由于服务器上没有这个玩家的数据,因此需要单独创建与这个新玩家相关的所有数据。


       2) 重复登录:在离线的情况下,玩家登录时需要将玩家数据从数据库重新加载回内存,玩家下线后需要将玩家数据保存回数据库。


微信图片_20220424103629.png

图片源自网络


   2. 个人业务。


       玩家的单个操作产生一条数据变动,并且这条数据只会与这个玩家有关,不会影响到其他的玩家数据或者服务器全局数据。针对这样的业务就可以归类为个人业务,以下简单列举几个这样的业务场景。


       1) 玩家打开宝箱获得了一件物品(可能是稀有物品),玩家的物品数据会相应的改变。


       2) 玩家升级某个技能、宠物、坐骑等,仅这个玩家的相关数据发生变化。

   3. 多人交互性业务。


       玩家的单个操作会与其他玩家的数据产生交互,最终导致多个玩家的数据发生变化;或者玩家与他人的交互涉及到服务器多网元之间的数据传输和状态改变。这些业务都可以归为多人交互业务。


       1) 玩家组队,比较常见的多人交互业务,这通常是多玩家数据在多网元节点间传输,以及状态的改变。具体可以去了解组队业务的流程图、时序图等。


       2) 玩家交易,这也是比较常见的交互业务,而且会涉及多玩家的数据发生变更。


微信图片_20220424103700.png

图片源自网络


   4. 广播性业务。


       玩家的操作需要广播通知给周围的、全部在线的玩家,甚至是离线玩家。这样的业务主要涉及网络数据的广播传输。会随着广播范围的增大而产生成倍的网络流量消耗。


       1) 聊天业务,世界聊天,联盟聊天等等都是会涉及消息的广播。


       2) 玩家更换时装,装备特殊效果武器,场景内行走、战斗等也是会产生广播数据到周围玩家。


   5. 活动业务(本服及跨服玩法)。


       我想现在已经没有哪个网络游戏会没有活动玩法,活动玩法是留住玩家,提高在线,增加收入的手段,同样活动玩法往往涉及多人交互,网络消息广播,活动数据、排行榜数据存储等。例如公会战、BOSS战、跨服玩法等。


微信图片_20220424103708.png

图片源自网络



三、总结


   在性能测试进行业务选择时,优先需要考虑数据的读取和存储相关业务,然后就是大型活动和多人交互玩法,再者就是涉及广播相关的业务,最后是那些个人的业务。还有一个比较重要的点就是必须了解所有业务在服务器中的数据、消息处理流向(例如时序图),在做性能测试的时候往往也需要优先对多网元节点交互的业务进行测试,因为涉及异步交互的业务出问题的可能性非常大。


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

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
21天前
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
1月前
|
测试技术 C# 图形学
掌握Unity调试与测试的终极指南:从内置调试工具到自动化测试框架,全方位保障游戏品质不踩坑,打造流畅游戏体验的必备技能大揭秘!
【9月更文挑战第1天】在开发游戏时,Unity 引擎让创意变为现实。但软件开发中难免遇到 Bug,若不解决,将严重影响用户体验。调试与测试成为确保游戏质量的最后一道防线。本文介绍如何利用 Unity 的调试工具高效排查问题,并通过 Profiler 分析性能瓶颈。此外,Unity Test Framework 支持自动化测试,提高开发效率。结合单元测试与集成测试,确保游戏逻辑正确无误。对于在线游戏,还需进行压力测试以验证服务器稳定性。总之,调试与测试贯穿游戏开发全流程,确保最终作品既好玩又稳定。
47 4
|
2月前
|
消息中间件 Kafka 测试技术
【Azure 事件中心】使用Kafka的性能测试工具(kafka-producer-perf-test)测试生产者发送消息到Azure Event Hub的性能
【Azure 事件中心】使用Kafka的性能测试工具(kafka-producer-perf-test)测试生产者发送消息到Azure Event Hub的性能
|
3月前
|
弹性计算 运维 云计算
云服务器 ECS产品使用问题之如何把本地的游戏存档上传到在线游戏服务器
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
3月前
|
弹性计算 缓存 Linux
云服务器 ECS产品使用问题之如何修改游戏参数
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
2月前
|
Java Spring UED
Spring框架的异常处理秘籍:打造不败之身的应用!
【8月更文挑战第31天】在软件开发中,异常处理对应用的稳定性和健壮性至关重要。Spring框架提供了一套完善的异常处理机制,包括使用`@ExceptionHandler`注解和配置`@ControllerAdvice`。本文将详细介绍这两种方式,并通过示例代码展示其具体应用。`@ExceptionHandler`可用于控制器类中的方法,处理特定异常;而`@ControllerAdvice`则允许定义全局异常处理器,捕获多个控制器中的异常。
38 0
|
3月前
|
弹性计算 Prometheus Cloud Native
SLS Prometheus存储问题之Union MetricStore在性能测试中是如何设置测试环境的
SLS Prometheus存储问题之Union MetricStore在性能测试中是如何设置测试环境的
|
3月前
|
弹性计算 Linux 云计算
云服务器 ECS产品使用问题之如何访问游戏路径
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
2月前
|
测试技术 索引 CDN
hyengine wasm业务性能测试问题之测试设备如何解决
hyengine wasm业务性能测试问题之测试设备如何解决
|
3月前
|
弹性计算 Linux 数据安全/隐私保护
云服务器 ECS产品使用问题之如何迁移游戏数据
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
下一篇
无影云桌面