SpringBoot--实战开发--压力测试(二十四)

SpringBoot--实战开发--压力测试(二十四),第1张

ab命令对发出负载的计算机要求很低,既不会占用很多CPU,也不会占用太多的内存,但却会给目标服务器造成巨大的负载,因此是某些DDOS攻击之必备良药,老少皆宜。自己使用也须谨慎。否则一次上太多的负载,造成目标服务器直接因内存耗光死机,而不得不硬重启,得不偿失。
在带宽不足的情况下,最好是本机进行测试,建议使用内网的另一台或者多台服务器通过内网进行测试,这样得出的数据,准确度会高很多。远程对web服务器进行压力测试,往往效果不理想(因为网络延时过大或带宽不足)。
>对于游戏后台性能,评测标准不只单单是TPS(每秒处理多少个XX请求),因为当你的游戏服务器上线后,不存在一群玩家只发XX请求的压力场景。所以,游戏后台受到的现网请求压力永远是多场景混合的,在这样的压力下,后台能支撑多少人同时在线,才是一个游戏压测者需要得到的有价值的测试结论。
要得到可支撑的"最大同时在线人数",主要做好2件事:
1、设计你的类现网压力模型
在现网真实压力里,不论压力大小如何变化,现网环境如何变化,一个游戏类型和玩法设计定型后,永远有2个压力宏观数据保持不变:a 各接口的压力比例不变, b玩家平均每分钟 *** 作频率不变。因此,压力测试目标就转变成了如何模拟符合ab数据的压力。
对于a,首先从同类型游戏或者本游戏内测阶段,日志插桩,收集各个接口的调用比例;然后,将接口比例转化为场景比例,如同时会有个2%完结登陆、15%玩家战斗、20%玩家拉取好友列表、10%玩家赌博(一个手游场景例子)。
对于b,同样在内测阶段收集玩家平均 *** 作频率。
此时有了a和b,就可以构造出一分钟内玩家同时在线的真实压力模型了。
2、用压测工具构造出符合压力模型的压力
这个可以自己写,也可以使用现成的压测工具。现在市面上的压测工具很多,但很多都是专注于TPS这个参数,不符合游戏行业压测的关注点,同时在线人数。

方法/步骤
1
比较常用的命令,如:
ab -n 请求数 -c 并发数 URL
2
跑了一个简单的Demo:
usertekiMacBook-Pro:~ zhaoxianlie$ ab -n 200 -c 10 >接触JMeter也有超过半年的时间,自我感觉要想测试C++做的服务器的性能是比较无力的。其实我也想知道如何去测试,但是有一点非常明确就是我们可以发送二进制数(可以自定义的结构体或者protobuf,我们都可以通过抓包的方式去把数据抓出来,通过JMeter发送出去)据给服务器,但是服务器回复二进制,JMeter对这个数据如何正确解析,由于我的无知确实目前还没有找到解决办法(另外服务端可能回复的消息不至一条,而且还有可能顺序都不确定,这个如何检测,如果处理?)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12744385.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存