org.glassfish.jersey.servletServletContainer.service()挂了太长时间

时间:2018-11-21 18:20:02

标签: java jersey jetty jersey-2.0 dynatrace

我当时正在用Dynatrace分析一些缓慢的API请求。我看到这花了623毫秒,引起了我的注意。我能够看到请求的PurePath,发生的第一件事是org.glassfish.jersey.servletServletContainer.service()在调用下一个方法之前花费了590毫秒,如下所示: enter image description here

测试场景如下:

具有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的连接时间短,响应时间比正常时间长。在每个请求上打开新连接似乎都不是问题。

0 个答案:

没有答案