2022-11-146748次浏览
5评论
18收藏
11点赞
分享
游戏有什么性能问题?
通常我们会遇到一个问题就是卡:卡顿、不流畅。这是影响玩家体验最核心的要素。
第二个问题是挂:挂起、宕机等性能问题。
性能测试是每款手游上线绕不开的内容,为了避免玩家遇到卡、宕机、发烫等性能问题,我们需要对性能进行测试。移动游戏的性能测试是什么?如何做服务器性能测试?服务端性能测试手段有哪些?本次,网易游戏ChunL为大家带来分享。
以下为分享实录:
一、移动游戏性能
软件性能是软件的一种非功能特性,它关注的不是软件能否完成特定功能,而是在完成该功能时展示出来的及时性。我们主要考虑这两个方面,会不会卡顿,服务器会不会挂。
移动游戏的性能测试是什么?
首先讲一下性能测试的三要素。
第一个是被测对象:客户端和服务端。
第二个要素是测试工具和平台。
第三个是性能指标。
性能测试是通过自动化的测试工具,模拟多种正常、峰值以及异常负载条件,来对系统的各项性能指标进行测试。
以吃火锅为例,服务端和客户端的性能类似于餐厅的服务能力,客户端就类似于这个餐桌。
二、服务端性能测试
1.服务端到底在做什么事情?
当我们玩游戏时,客户端和服务端之间发生了什么?
我举个例子,ABC三个玩家各拿一台手机(客户端),A玩家释放了一个技能,这个技能会先反馈到服务端,判断能否释放这个技能。在释放技能的过程中,服务端会做一个交互,同时服务端也同步数据给各个客户端。
目前服务端的架构非常大,游戏里面有几个定义:
逻辑服:玩家看到的服务入口,比如一台物理服上开两个逻辑服,两个服的玩家互不干扰。一个逻辑服也可运行在一组物理服上。
物理服:一组服务器,可由一台或多台机器组成。
集群:整一个机房就是集群,这个集群可以开很多的逻辑服和物理服。
2.如何做服务器性能测试?
服务器的性能指标有CPU、内存、磁盘和网络。
我们在做服务器性能测试时,需要很多玩家参与满足服务器的性能上限,这里引入一个概念,设计机器人模拟玩家的数据。
3.服务端性能测试手段:
压测:压力测试,机器人集群模拟真实运行环境,测试会不会导致服务器挂和客户端卡。
如何做性能压测呢?
游戏研发会有很多阶段,DEMO,研发中早期,渠道测试,正式上线,运营期。
压力测试一般在渠道测试阶段进行,因为这个阶段玩家有一定规模,核心玩法成熟,运行时间较短。
之后是正式上线阶段,这个阶段有大规模的玩家,玩法和周边系统成熟,并有更高的稳定性要求。
在运营期也需要进行压测,玩法迭代引入压力,基础设施更改,新服验收。
压力点一般分三种:空间聚集、全服操作、数据库。
空间聚集:玩法设计导致的时间或者空间的大量玩家聚集,如活动开始时,全服玩家进行同一传送操作造成的服务器性能问题。
全服操作:同一时刻服务器对所有或者大量玩家进行某种操作,可能造成的性能问题。
数据库读取:由于数据库使用不当(如没有建立索引)、并发度不够导致的数据库性能瓶颈。玩家频繁登录,数据库读取出现性能问题,数据库负载过高,响应时间过长等。
4.如何构建一个合适的压测机器人呢?
机器人有三个结构:
第一层是机器人框架,包括机器人启动和停止、管理加密的操作;
第二个是通信协议,通信协议指的是模拟服务端和客户端的协议,登陆匹配的验证手段等;
第三个是测试用例的组织,通过机器人去满足各种测试需求。
5.压测结果分析
最后对压测结果进行分析,服务器各个进程之间的通信延迟,如果延迟越低,真实客户端服务端的延迟越低。
最终压测结果我们会看综合型数据的分析,对每秒登录数、玩法承载人数、单机承载人数、总承载人数等,进行分析。
6.简单的服务端性能优化的思路
首先是协议精简,客户端传给服务端太多信息,服务端需要去处理很多事务,会造成服务端突然挂了。做到精简协议的话,是可以优化服务端的性能。
另一个是减小压力,避免玩法聚集,避免单点压力。
除此之外还有优化引擎、弹性动态扩容等方法。
评论 (5)