Hi, On Mon, Apr 16, 2012 at 17:55, Ugo Matrangolo <[email protected]> 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 _______________________________________________ jetty-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/jetty-users
