关于压力测试工具的问题

2017-07-20 02:43:15 +08:00
 jarlyyn

这两天在折腾内网统一登录工具,做了个模拟接口,为了看自己做的 session/token 部分是否有坑,跑了个 ab 测试。 2014 rmbp Intel(R) Core(TM) i5-4278U CPU @ 2.60GHz ab -c 1000 -n 50000 基本上的数据是 不带 session/token 纯静态 JSON 数据的接口是 25k rps 带 session/token 纯静态 JSON 数据的接口是 18k rps 基本还算正常。

接着想到前几个月升级的游戏电脑上跑一下看看数字让自己爽一下。 本想 8 核桌面 U 总比双核低电压 U 要翻个几倍吧,结果反而郁闷了一把。 ryzen 7 1700 oc 3.6 ghz ab -c 1000 -n 50000

不带 session/token 纯静态 JSON 数据的接口是 35k rps 带 session/token 纯静态 JSON 数据的接口是 32k rps

第一时间反映觉得自己果然是个坑货,写出来的代码里肯定都是坑。

但转念又一想,又觉得不靠谱。在我的笔记本上跑测试的时候,基本上是服务占用 280%左右的 cpu,ab 占用 90%左右的 cpu。也就说,如果不跑 ab,裸跑服务的话,我的低压 I5 能超过超频过的 ryzen 7?这样的话,AMD 这哪是 360 度翻身啊,这至少是 720 度翻身了。

再仔细一看 top 数据。服务只有跑了 400%多的 cpu,也就之跑了两个多核的性能,而 ab 倒是 99%了。

所以

附:

图一:不带 session 的测试结果

ab -c 1000 -n 100000 http://127.0.0.1:8000/usercenter/api.v1/frontend/systeminfo

https://wx4.sinaimg.cn/large/63fa5d6fgy1fhprciou7bj20hl07pwet.jpg

图二:带 session 的测试结果

ab -H "Token: admin1-yJAb9MwUTKow39ykbUdLn9iVxDkXCvG1ZVxMqz7W5IxV1upllIucX58vhU8bSwUTFZGvgjBPPL8PeVSKaiqzfIDK1l3alTDGytxCjXmXHzhS3raXc1Dgi1PHBFbC45GMfqSPyJB0aepiyHAahYsVc2nv5zNzOncTjF55hAhqwKZBs546JiCot8jVXqHuJYaO9Q4wwGA20okVbU43n2pLd3rQhEKGj4BHwvfJbbEaQUiukMSofmMPeONPvswdKTn5" -c 1000 -n 100000 http://127.0.0.1:8000/usercenter/api.v1/rest/user

https://wx2.sinaimg.cn/mw690/63fa5d6fgy1fhprcis41sj20g5077t90.jpg

图三:测试时的 cpu 占用状况

https://wx1.sinaimg.cn/mw690/63fa5d6fgy1fhprcionkfj20h803maac.jpg

图四:测时事的 CPU 实时占用与曲线

https://wx1.sinaimg.cn/mw690/63fa5d6fgy1fhprciqwj6j20xt05l0v7.jpg

2907 次点击
所在节点    问与答
4 条回复
jarlyyn
2017-07-20 03:10:55 +08:00
找了个 go 语言开发的压力测试工具 go-wrk,可以跑满 cpu。

基本确定了是 ab 的问题。

这工具在跑不带 session 的情况下 cpu 占用完全压制了我的服务……跑出来的数字大概是 100k rps 左右

带 session 的时候我的坑爹代码终于发挥了实力占用了更多的 cpu,跑出来大概是 66k rps 左右。

我的代码真是不负我所望的坑啊……

那么现在的问题是是否有 cpu 占用更小效率更好的测试工具么?

这样能更好的体现出自己代码的效率问题,同时也便于我看数字自 high ……
msg7086
2017-07-20 03:33:23 +08:00
多开 ab ?万兆局域网另外跑一台做客户端?
jarlyyn
2017-07-20 10:11:10 +08:00
@msg7086

多开的话肯定数据难以精确啊……不太可能同时开始和结束……

估计只有另开电脑了,而且从我这测试看请求的机器配置还不太能比跑服务的机器低。
jarlyyn
2017-07-20 18:33:20 +08:00
这段坑爹程序跑坏了一块 i7

https://www.v2ex.com/t/223402#reply81

升维攻击啊这是

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/376558

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX