压测一些接口的时候,为什么接口方法耗时和响应时间相差那么远?

2018-10-22 10:44:32 +08:00
 337136897

最近除了开发上的工作外还要做压力测试,一方面用 jmeter 做压测,另外用 AOP 记录了进入方法和出去的消耗时间。然后我发现这两者间相差太远了。如图所示: 这个是 jmeter 测试的响应时间,几乎都在 8 秒以上。 这个是在 AOP 记录的时间,绝大多数都是 50 毫秒以下吧,也有相当一部分是五六百毫秒的。 服务器是本地的服务器,32G 8 核心 16 线程, 网络是 WIFI,延迟应该相当低才对。 两个时间相减,那么有大部分的时间都去哪里了?

3393 次点击
所在节点    程序员
9 条回复
337136897
2018-10-22 11:16:22 +08:00
为啥没人 QAQ
luoway
2018-10-22 11:41:17 +08:00
> 另外用 AOP 记录了进入方法和出去的消耗时间
排队时间呗
337136897
2018-10-22 11:46:59 +08:00
@luoway ?出门要排队的?
luoway
2018-10-22 11:49:46 +08:00
@337136897 #3
进入方法和出去的消耗时间 = 方法执行时间
这么理解没错吧?
没错的话,进入方法的时刻不应是起点
fcten
2018-10-22 11:53:45 +08:00
进入方法是已经分配到资源了,事实上压力测试的时候如果没有做降级和熔断,会有大量的请求阻塞在等待资源的状态。这部分时间你没有统计到。
337136897
2018-10-22 12:51:29 +08:00
@luoway 啊对。
337136897
2018-10-22 12:52:05 +08:00
@fcten 降级和熔断是什么意思?在哪里设置啥的?海蜇请求阻塞等待资源的状态的时间怎么统计?大神啊
cyssxt
2018-10-22 13:11:14 +08:00
不是所有请求一来就会被执行的!服务器资源是有限的,比如一个服务器的美妙并发是 500,那么如果超过 500 的请求怎么办?就是需要熔断降级 ,进行过载保护!我觉得这个 jmeter 测试并没有问题 压测主要目的是测试服务器瓶颈,这就需要你通过调整 jmeter 并发数来找到服务器瓶颈。
337136897
2018-10-22 14:19:37 +08:00
@cyssxt 大哥,问个问题啊,我这儿生产环境并发数达到了 450 就上不去了,可是 CPU 占用才 20%啊?怎么搞? tomcat 已经弄过 apr 了

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

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

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

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

© 2021 V2EX