Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-users] Bottleneck while perf testing on Jetty

Hi,

On Mon, Apr 16, 2012 at 17:55, Ugo Matrangolo <ugo.matrangolo@xxxxxxxxx> wrote:
> Hi,
>
> I came across in some performance problems while load testing one of my web
> services.
>
> This service has an API that gives back JSON documents keyed by their ids.
> Sometime these JSON documents are really big (~20MB) and takes a while to
> load them.
>
> We setup a load test to see what would happen in a situation where *all* the
> requests are for these large JSON documents and we noticed that the service
> gets slower and slower.
>
> Looking at a thread dump we saw that 80% of our threads are blocked here:
>
> "qtp-84" prio=5 tid=112044000 nid=0x11b6e2000 in Object.wait() [11b6e0000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         at
> org.eclipse.jetty.io.nio.SelectChannelEndPoint.blockWritable(SelectChannelEndPoint.java:436)
>
> I think that this test is quite unrealistic but I'm curious about this
> bottleneck. Does anyone ran into this problems before??
>
> Any insight ??

You have filled your network bandwidth.
Jetty is waiting to write onto a socket (in blockWritable()) until the
NIO subsystem (OS and JVM) tells that the congestion on the socket(s)
has decreased and that it is possible to write again.

It's not a Jetty bottleneck.

Simon
-- 
http://cometd.org
http://intalio.com
http://bordet.blogspot.com
----
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Back to the top