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

本文涉及的产品
性能测试 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进行规格选择与性能压测。
相关文章
|
2月前
|
运维 Prometheus 监控
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
|
2月前
|
存储 算法 C语言
用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容
本文探讨了用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容,旨在为开发者提供全面的指导和灵感。
53 2
|
2月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
46 4
|
3月前
|
存储 监控 网络协议
服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
【10月更文挑战第11天】服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
164 32
|
3月前
|
缓存 监控 测试技术
服务器压力测试
【10月更文挑战第11天】服务器压力测试
110 31
|
2月前
|
数据采集 缓存 测试技术
性能测试中,除了迭代次数,还有哪些因素会影响测试结果?
性能测试中,除了迭代次数,还有哪些因素会影响测试结果?
41 2
|
2月前
|
缓存 监控 测试技术
全网最全压测指南!教你如何测试和优化系统极限性能
大家好,我是小米。本文将介绍如何在实际项目中进行性能压测和优化,包括单台服务器和集群压测、使用JMeter、监控CPU和内存使用率、优化Tomcat和数据库配置等方面的内容,帮助你在高并发场景下提升系统性能。希望这些实战经验能助你一臂之力!
103 3
|
2月前
|
缓存 监控 数据挖掘
C# 一分钟浅谈:性能测试与压力测试
【10月更文挑战第20天】本文介绍了性能测试和压力测试的基础概念、目的、方法及常见问题与解决策略。性能测试关注系统在正常条件下的响应时间和资源利用率,而压力测试则在超出正常条件的情况下测试系统的极限和潜在瓶颈。文章通过具体的C#代码示例,详细探讨了忽视预热阶段、不合理测试数据和缺乏详细监控等常见问题及其解决方案,并提供了如何避免这些问题的建议。
64 7
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试中的人工智能:改变游戏规则的革新
在这篇技术性文章中,我们将深入探讨人工智能(AI)如何彻底改变了软件测试领域。从自动化测试到智能缺陷检测,AI不仅提高了测试的效率和准确性,还为软件开发团队提供了前所未有的洞察力。通过具体案例,本文揭示了AI在软件测试中应用的现状、挑战及未来趋势,强调了技术创新在提升软件质量与开发效率中的关键作用。
|
3月前
|
弹性计算 网络协议 Linux
云服务器评估迁移时间与测试传输速度
云服务器评估迁移时间与测试传输速度