V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
337136897
V2EX  ›  程序员

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

  •  
  •   337136897 · 2018-10-22 10:44:32 +08:00 · 3441 次点击
    这是一个创建于 2209 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    9 条回复    2018-10-22 14:19:37 +08:00
    337136897
        1
    337136897  
    OP
       2018-10-22 11:16:22 +08:00
    为啥没人 QAQ
    luoway
        2
    luoway  
       2018-10-22 11:41:17 +08:00
    > 另外用 AOP 记录了进入方法和出去的消耗时间
    排队时间呗
    337136897
        3
    337136897  
    OP
       2018-10-22 11:46:59 +08:00
    @luoway ?出门要排队的?
    luoway
        4
    luoway  
       2018-10-22 11:49:46 +08:00
    @337136897 #3
    进入方法和出去的消耗时间 = 方法执行时间
    这么理解没错吧?
    没错的话,进入方法的时刻不应是起点
    fcten
        5
    fcten  
       2018-10-22 11:53:45 +08:00
    进入方法是已经分配到资源了,事实上压力测试的时候如果没有做降级和熔断,会有大量的请求阻塞在等待资源的状态。这部分时间你没有统计到。
    337136897
        6
    337136897  
    OP
       2018-10-22 12:51:29 +08:00
    @luoway 啊对。
    337136897
        7
    337136897  
    OP
       2018-10-22 12:52:05 +08:00
    @fcten 降级和熔断是什么意思?在哪里设置啥的?海蜇请求阻塞等待资源的状态的时间怎么统计?大神啊
    cyssxt
        8
    cyssxt  
       2018-10-22 13:11:14 +08:00 via iPhone
    不是所有请求一来就会被执行的!服务器资源是有限的,比如一个服务器的美妙并发是 500,那么如果超过 500 的请求怎么办?就是需要熔断降级 ,进行过载保护!我觉得这个 jmeter 测试并没有问题 压测主要目的是测试服务器瓶颈,这就需要你通过调整 jmeter 并发数来找到服务器瓶颈。
    337136897
        9
    337136897  
    OP
       2018-10-22 14:19:37 +08:00
    @cyssxt 大哥,问个问题啊,我这儿生产环境并发数达到了 450 就上不去了,可是 CPU 占用才 20%啊?怎么搞? tomcat 已经弄过 apr 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   938 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:02 · PVG 05:02 · LAX 13:02 · JFK 16:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.