游戏上线前服务器压力测试应该怎么做
对于游戏后台性能,评测标准不只单单是TPS(每秒处理多少个XX请求),因为当你的游戏服务器上线后,不存在一群玩家只发XX请求的压力场景。所以,游戏后台受到的现网请求压力永远是多场景混合的,在这样的压力下,后台能支撑多少人同时在线,才是一个游戏压测者需要得到的有价值的测试结论。
要得到可支撑的"最大同时在线人数",主要做好2件事:
1、设计你的类现网压力模型
在现网真实压力里,不论压力大小如何变化,现网环境如何变化,一个游戏类型和玩法设计定型后,永远有2个压力宏观数据保持不变:a 各接口的压力比例不变, b玩家平均每分钟操作频率不变。因此,压力测试目标就转变成了如何模拟符合ab数据的压力。
对于a,首先从同类型游戏或者本游戏内测阶段,日志插桩,收集各个接口的调用比例;然后,将接口比例转化为场景比例,如同时会有个2%完结登陆、15%玩家战斗、20%玩家拉取好友列表、10%玩家赌博(一个手游场景例子)。
对于b,同样在内测阶段收集玩家平均操作频率。
此时有了a和b,就可以构造出一分钟内玩家同时在线的真实压力模型了。
2、用压测工具构造出符合压力模型的压力
这个可以自己写,也可以使用现成的压测工具。现在市面上的压测工具很多,但很多都是专注于TPS这个参数,不符合游戏行业压测的关注点,同时在线人数。
1确定需要压测你网站的什么业务。
2根据业务录制测试脚本,选择web协议
3脚本录制完毕后,需要对脚本进行参数化,设置判断事务成功条件,设置集合点等
4脚本优化完毕后,打开controller进行压力测试,压测的时候开始用少量的并发并逐渐增大的方式。
5在压测的同时设置需要监控的服务器资源,数据库、英语服务器等资源情况
如何判断你服务器的最大承受能力?
当你在压测的过程中,比如当并发达到50后,发现系统资源不足,应立即停止压测,然后并发数减少到40,直到你监控到的所以资源都在正常范围,则此时的并发就是你需要的结果。
如果需要,可以帮你录制脚本。嘿嘿
网站服务器的压力测试我觉得主要有一些几点。
1协议这边基本上以http或者https为主了,如果使用其他协议需要分析其打解包的方法。
2要产生一定的压力,压力源这边一定要有保证。一般都是用机器人来模拟压力,关于机器人的逻辑可以根据具体业务来开发。
3需要观察在一定压力下,服务器的各项性能指标(cpu,内存,IO,网络流量)进行观察,比如内存是否有泄漏,cpu利用率过高的情况。
4压力测试应该是一个持续性的过程,在这个过程中需要统计服务器的性能数据,包括tps,以及机器的负载情况等。据此可以分析服务器的瓶颈在何处,后续可以针对优化。
5目前大部分的服务器都部署在Linux系统上,测试同学还需要掌握相关的Linux命令以便可以更好的测试。
如果你觉得前面的太麻烦,可以来WeTest服务器压力测试高并发,实时性能报表,专家级性能优化建议,目前我们正在做网站压测这一块,你要做的仅仅是填下被测的URL即可,压力源、数据统计这些琐碎的工作交给我们就行了。
1、把jmeter放到需要压测的服务器目录下,然后解压
2、修改服务器jmeter下bin目录中的jmeterproperties和jmeter-server相关配置
jmeterproperties文件修改启动端口,默认端口1099,也可设置为其他端口
修改前:
jmeter-server文件修改:修改为需要压测服务的ip,也就是jmeter所在服务器的ip
3、修改本地jmeter jmeter-properties的配置:远程主机地址修改为压测服务器ip地址,如果服务器端口设置不是1099的默认端口,则还需要加上端口,格式:xxxxxxxxxxxx:port,多个服务同时加压,需要配置多个ip地址,用逗号隔开
4、本地jmeter启动
jmeter50及以上启动时会报FileNotFoundException
解决办法:本地和部署在服务器上的jmeterproperties文件配置修改为:serverrmissldisable=true
修改后重启本地和服务器的jmeter
0条评论