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
