我正在使用 Dynatrace 分析一些缓慢的 API 请求。我看到了这个耗时 623 毫秒的,它引起了我的注意。我能够看到请求的 PurePath 并且发生的第一件事是org.glassfish.jersey.servletServletContainer.service()
在调用下一个方法之前花费 590 毫秒,如下所示:
测试的场景是这样的:
具有 1 个线程的 Apache JMeter 每次都执行相同的请求。在前 100 秒左右,平均响应时间约为 5 毫秒,然后响应时间突然增加并保持高位,直到测试结束。响应时间增加后,所有请求看起来都像图像中的 on。有很长的挂起时间(显然来自泽西岛)。
我正在使用以下 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 的连接时间低,响应时间高于正常。在每个请求上打开新连接似乎不是问题。