If you have tuned java application servers you know how difficult it is getting Thread pool sizing and other archaic java parameters correct - also consider the audience expected to use JMeter.
True if you have timers you probably would be able to achieve the same kind of throughput with a smaller thread count and pooled threads - However OS level thread pooling is far superior to any java capability so it isn't a fair comparison. I guess it comes down to I believe scaling by adding machines is far simpler to achieve than the complexity added by pooling threads. On Thu, Jul 29, 2010 at 11:53 PM, nicolas de loof <[email protected]>wrote: > This would be true with > N cores available, but the Threads allready have > to share the available ones using OS multi-threading "core-pool". There is > ALLREADY a backlog queue at OS level for our Threads to execute on limited > ressources. Using on Thread per User don't ensure concurrent requests, you > will never have more concurrenct that physical core count. Considering > "loose" concurency (i.e. active threads during a small time window), a > Thread pool would be more efficient that dedicated Threads as less context > switches would be necessary. > > On a realistic scenario we put many Timers, so our thread are moslty doing > few stufs and then call Thread.sleep. This generates many Thread context > switches with few computation. A Thread-pool would avoid (limit) the ratio > between context switches and usefull computation time. There is no way > today > to create a load with tousand threads, even if the scenario has long sleep > time (and then few computation requirements) > > I agree a Thread-pool requires tunning to set the optimal pool size. This > could be a global parameter, and set by default to physicalCoreCount * X. > > Nicolas > > 2010/7/29 Deepak Shetty <[email protected]> > > > If you want N concurrent requests , you need N threads. Any kind of > thread > > pool / execute - backlog queue mechanism would only give you an > > approximation and in addition would need you to tune the pools based on > > your > > requirements - which is probably a much harder task. > > > > > > > > > > > > On Thu, Jul 29, 2010 at 4:57 AM, nicolas de loof > > <[email protected]>wrote: > > > > > Hi, > > > > > > There's many threads on this list about simulating high number of users > > > with > > > jMeter. The main limitation seems to be the number of threads. I wonder > > why > > > jMeter uses the "1 dedicated Thread per (Virtual) User" strategy : > > > > > > - each Thread uses native memory, large number of threads requires > much > > > memory > > > - Thread context switch consumes CPU time. Switching hundred of > threads > > > on few cores over-consumes ressources. > > > > > > So, my question is : is there any plan, or any previous attempt, to use > > > thread pools in jMeter ? Typically, beeing based on Java 5, > > > java.util.concurrent provides the adequate thread pooling tools. > > > > > > Cheers, > > > Nicolas > > > > > >

