我当时正在用Dynatrace分析一些缓慢的API请求。我看到这花了623毫秒,引起了我的注意。我能够看到请求的PurePath,发生的第一件事是org.glassfish.jersey.servletServletContainer.service()
在调用下一个方法之前花费了590毫秒,如下所示:
测试场景如下:
具有1个线程的Apache JMeter每次执行相同的请求。在最初的100秒左右,平均响应时间约为5毫秒,然后突然响应时间增加并保持较高水平,直到测试结束。响应时间增加之后,所有请求都看起来像图像中的。闲暇时间很长(显然是在泽西岛)。
我正在使用以下Jersey / Jersey REST版本:
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>9.2.3.v20140905</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>9.2.3.v20140905</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
<version>9.2.3.v20140905</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.22.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>2.22.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-jetty-http</artifactId>
<version>2.22.2</version>
</dependency>
这是有记录的问题吗?有没有人经历过?
编辑1 :
我能够用邮递员重现这一点。
JMeter正在请求标头上发送Connection: close
。 JMeter的连接时间短,响应时间比正常时间长。在每个请求上打开新连接似乎都不是问题。