• 请不要在回答技术问题时复制粘贴 AI 生成的内容
337136897
1.07D
V2EX  ›  程序员

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

  •  
  •   337136897 · Oct 22, 2018 · 3823 views
    This topic created in 2768 days ago, the information mentioned may be changed or developed.

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

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