这两天在折腾内网统一登录工具,做了个模拟接口,为了看自己做的 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
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.