香港机房及海外机房服务器性能测试标准流程
众所周知,游戏体验对玩家来说至关重要,玩的爽、服务,就会被玩家认可,从而会带动身边以及熟悉的好友一起作伴参与,但当开发商没有应对大量玩家涌入服务器的准备,服务器卡死、宕机,闪退让玩家体验不好失望选择离开。
然而目前市场上还没有针对游戏的服务器性能检测工具,无论是开源还是商业软件都不能很好的满足游戏的专项测试需求,与此同时受限于开发周期短以及人力的问题,中小型CP往往采取编写模拟机器人进行简单的压测,测试的覆盖面窄,无法保证并发请求,造成潜伏的问题遗漏到线上。所以广东利联科技在选择香港机房的同时,会测试服务器以及一些紧急应对措施的方法,在介绍测试方法之前,先来了解一下关于服务器性能测试的一些指标
【吞吐量】 固定时间间隔内的处理完毕事务个数。通常是1秒内处理完毕的请求个数,单位:事务/秒(tps)。
【平均吞吐量】一段时间内吞吐量的平均值。无法体现吞吐量的瞬间变化。
【峰值吞吐量】一段时间内吞吐量的大值。是用来评估系统容量的重要指标之一。
一般开发商没有应对大量玩家涌入服务器的准备,服务器卡死、宕机,闪退让玩家失望选择离开。然而目前市场上还没有针对游戏的服务器性能检测工具,无论是开源还是商业软件都不能很好的满足游戏的专项测试需求,与此同时受限于开发周期短以及人力的问题,中小型CP往往采取编写模拟机器人进行简单的压测,测试的覆盖面窄,无法保证并发请求,造成潜伏的问题遗漏到线上。
【低吞吐量】一段时间内吞吐量的小值。如果小值接近0,说明系统有“卡”的现象。
【70%的吞吐量集中区间】通过统计15%和85%的吞吐量边界值,计算出70%的吞吐量集中区间。区间越集中,吞吐量越稳定。
【响应时间】一次事务的处理时间。通常指从一个请求发出,到服务器进行处理后返回,再到接收完毕应答数据的时间间隔,单位:毫秒。
【平均响应时间】 一段时间内响应时间的平均值。无法体现响应时间的波动情况。
【中间响应时间】一段时间内响应时间的中间值,50%响应时间,有一半的服务器响应时间低于该值而另一半高于该值。
【90%响应时间】一段时间内90%的事务响应时间比此数值要小。反应总体响应速度,和高于该值的10%超时率。是用来评估系统容量的重要指标之一。
【小响应时间】响应时间的小值。反映服务快处理能力。
【大响应时间】响应时间的大值。反映服务器慢处理能力。
【CPU占用率】1-CPU空闲率,表示CPU被使用情况,反映了系统资源利用情况。
一、现网数据预估
现网数据预估是根据压力测试过程中的部分数据,对未来大量用户访问的情况机型预估。途中的横轴代表现网吞吐量,纵轴代表CPU压力。
图中绿色的部分代表当前的服务器压力,当收集一段时间数据之后,可以模拟一条曲线。假设对服务器的上线成本预估是80%,可以通过曲线拟合的方式推测出现网的能力是多少,也从而推断出大上限是多少。
缺点:通常游戏服务器都是比较复杂的,这种方式只适合简单的服务器拟合,复杂服务器数据就不太准确。
二、真人压测
真人压测就是通过邀请一定数量的真实用户来玩游戏,从而对服务器达到一个测试效果。这种方式他大特点在于用户的行为相对是真实的,因为用户的使用完全不会受到限制,和线上一个真实用户一样。目前游戏上线过程中的“封测”,就可以被认为是一种真人压测,可以帮助开发者发现一些性能问题。
但是这种方式也存在着弊端。
1. 暴露出的性能问题有限
许多经过封测的游戏到上线还会产生问题,原因之一就是封测人数通常还是太少,虽然有几百或者几千用户在玩,但是并发并不够,不足以暴露服务端性能问题;
2. 不适合调优
服务器性能测试不光需要暴露服务器的问题,暴露问题之后还需要不断的回归调优,但是真人是无法完全重复这些行为方式的。
三、接口测试
服务器方面的接口测试与传统意义上的接口测试略有不同,当开发人员需要对一套服务器进行评估,但是又时间不足的情况下,我们可以考虑选择一些具有代表性的功能,以及一些高风险功能进行测试,通过以小见大的方式,来评估整套服务器性能。
当然这个方法的主要问题就是无法遍历整个服务器的接口,难以避免一些微小的问题。
四、录制回放
这里面包含两部分,“录制”就是通过抓取数据包的方式,来获取游戏时的协议,比如用户登录游戏时抓取登录包;“回放”即把这些捕获的协议重新发送给服务端,这样理论上就可以通过工具放大协议量级达到性能测试的目的,比如将之前录制的登入协议扩大1w倍给服务器,这样就模拟了1w人同时登入的情况。
这个方法存在的问题是,游戏的协议交互非常复杂,如果只是单纯的放大数据包,对于服务器是产生不了多大的压力的。这类方法比较适合固定输入输出服务类型的测试。
然而目前市场上还没有针对游戏的服务器性能检测工具,无论是开源还是商业软件都不能很好的满足游戏的专项测试需求,与此同时受限于开发周期短以及人力的问题,中小型CP往往采取编写模拟机器人进行简单的压测,测试的覆盖面窄,无法保证并发请求,造成潜伏的问题遗漏到线上。所以广东利联科技在选择香港机房的同时,会测试服务器以及一些紧急应对措施的方法,在介绍测试方法之前,先来了解一下关于服务器性能测试的一些指标
【吞吐量】 固定时间间隔内的处理完毕事务个数。通常是1秒内处理完毕的请求个数,单位:事务/秒(tps)。
【平均吞吐量】一段时间内吞吐量的平均值。无法体现吞吐量的瞬间变化。
【峰值吞吐量】一段时间内吞吐量的大值。是用来评估系统容量的重要指标之一。
一般开发商没有应对大量玩家涌入服务器的准备,服务器卡死、宕机,闪退让玩家失望选择离开。然而目前市场上还没有针对游戏的服务器性能检测工具,无论是开源还是商业软件都不能很好的满足游戏的专项测试需求,与此同时受限于开发周期短以及人力的问题,中小型CP往往采取编写模拟机器人进行简单的压测,测试的覆盖面窄,无法保证并发请求,造成潜伏的问题遗漏到线上。
【低吞吐量】一段时间内吞吐量的小值。如果小值接近0,说明系统有“卡”的现象。
【70%的吞吐量集中区间】通过统计15%和85%的吞吐量边界值,计算出70%的吞吐量集中区间。区间越集中,吞吐量越稳定。
【响应时间】一次事务的处理时间。通常指从一个请求发出,到服务器进行处理后返回,再到接收完毕应答数据的时间间隔,单位:毫秒。
【平均响应时间】 一段时间内响应时间的平均值。无法体现响应时间的波动情况。
【中间响应时间】一段时间内响应时间的中间值,50%响应时间,有一半的服务器响应时间低于该值而另一半高于该值。
【90%响应时间】一段时间内90%的事务响应时间比此数值要小。反应总体响应速度,和高于该值的10%超时率。是用来评估系统容量的重要指标之一。
【小响应时间】响应时间的小值。反映服务快处理能力。
【大响应时间】响应时间的大值。反映服务器慢处理能力。
【CPU占用率】1-CPU空闲率,表示CPU被使用情况,反映了系统资源利用情况。
一、现网数据预估
现网数据预估是根据压力测试过程中的部分数据,对未来大量用户访问的情况机型预估。途中的横轴代表现网吞吐量,纵轴代表CPU压力。
图中绿色的部分代表当前的服务器压力,当收集一段时间数据之后,可以模拟一条曲线。假设对服务器的上线成本预估是80%,可以通过曲线拟合的方式推测出现网的能力是多少,也从而推断出大上限是多少。
缺点:通常游戏服务器都是比较复杂的,这种方式只适合简单的服务器拟合,复杂服务器数据就不太准确。
二、真人压测
真人压测就是通过邀请一定数量的真实用户来玩游戏,从而对服务器达到一个测试效果。这种方式他大特点在于用户的行为相对是真实的,因为用户的使用完全不会受到限制,和线上一个真实用户一样。目前游戏上线过程中的“封测”,就可以被认为是一种真人压测,可以帮助开发者发现一些性能问题。
但是这种方式也存在着弊端。
1. 暴露出的性能问题有限
许多经过封测的游戏到上线还会产生问题,原因之一就是封测人数通常还是太少,虽然有几百或者几千用户在玩,但是并发并不够,不足以暴露服务端性能问题;
2. 不适合调优
服务器性能测试不光需要暴露服务器的问题,暴露问题之后还需要不断的回归调优,但是真人是无法完全重复这些行为方式的。
三、接口测试
服务器方面的接口测试与传统意义上的接口测试略有不同,当开发人员需要对一套服务器进行评估,但是又时间不足的情况下,我们可以考虑选择一些具有代表性的功能,以及一些高风险功能进行测试,通过以小见大的方式,来评估整套服务器性能。
当然这个方法的主要问题就是无法遍历整个服务器的接口,难以避免一些微小的问题。
四、录制回放
这里面包含两部分,“录制”就是通过抓取数据包的方式,来获取游戏时的协议,比如用户登录游戏时抓取登录包;“回放”即把这些捕获的协议重新发送给服务端,这样理论上就可以通过工具放大协议量级达到性能测试的目的,比如将之前录制的登入协议扩大1w倍给服务器,这样就模拟了1w人同时登入的情况。
这个方法存在的问题是,游戏的协议交互非常复杂,如果只是单纯的放大数据包,对于服务器是产生不了多大的压力的。这类方法比较适合固定输入输出服务类型的测试。