Just wanted to follow-up to see if someone can throw some light on this? Is
it happening due to usage to Async Servlets?

Thanks,
Gaurav


On Thu, Oct 31, 2013 at 7:10 PM, Gaurav Kumar <[email protected]>wrote:

> TL;DR - Running embedded Jetty with queuedThreadPool , new threads are
> not being created
> ---
>
> I am using Jetty version 9.0.6.v20130930 in embedded form by starting it
> as-
> http://pastebin.com/bztAwEMD
>
> OS is 64 Bit Windows7 and JRE version is  1.7.0_13-b20 (also tested on
> Linux JRE version 7u25-2.3.10-1ubuntu0.12.04.2 - same behavior is observed)
>
> As you can see, I've set max # of threads to 100 and min to 10.
>
> I've a monitor thread which prints threadpool status every 1 second. This
> thread is started just after server.start() method. Here is what I am
> observing (as soon as server is started and no request has been received by
> Jetty yet)
>
> *queuedThreadPool.getIdleThreads()* shows "6" and 
> queuedThreadPool.getThreads()
> shows "10"
>
> Is this expected? Does it mean that out of 10 threads, 4 threads (10-6)
> are ready for accepting connection? I think so because thread dump shows 4
> threads in *Runnable *state.
>
> To process requests, I am using AsyncServlets. My ThreadPoolExecutor for
> async processing looks like this -
> http://pastebin.com/mM0Vq8LN (core threads -10, max threads -  100)
>
> When I send requests using apache ab tool, I am setting # of concurrent
> requests to 100, and total # of requests to 1000.
>
> Monitor thread of AsyncServlet shows expected result- I can see more
> threads being created and when all of the requests are finished, threadpool
> size reducing to core size however, when ab tool is running, I do NOT see
> ANY change in Jetty thread pool- it still says there are 6 idle threads-
> looking at JMX info through JConsole confirms same. Here is stacktrace of
> one of the theads of QTP-
>
> *Name: JettyQTP-36*
> *State: TIMED_WAITING on
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@18dbe927*
> *Total blocked: 2  Total waited: 49,244*
> *Stack trace: *
> *sun.misc.Unsafe.park(Native Method)*
> *java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)*
>
> *java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2082)*
>
> *org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:390)*
>
> *org.eclipse.jetty.util.thread.QueuedThreadPool.idleJobPoll(QueuedThreadPool.java:509)*
>
> *org.eclipse.jetty.util.thread.QueuedThreadPool.access$700(QueuedThreadPool.java:48)*
>
> *org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:563)*
> *java.lang.Thread.run(Thread.java:724)*
>
> So the question is - why is Jetty not creating more threads?
>
> Cheers,
> Gaurav
>
>
>
>
>
>
>
_______________________________________________
jetty-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/jetty-users

Reply via email to