What about a wiki page With a report of these tests you did both sebb and milamber with attached test plan ?
This would be useful for further tests and comparisons and would also be useful for our change notes for this release. Regards Philippe On Tuesday, August 14, 2012, sebb wrote: > On 14 August 2012 11:32, sebb <[email protected] <javascript:;>> wrote: > > On 14 August 2012 10:51, Milamber <[email protected] <javascript:;>> > wrote: > >> > >> > >> Le 13/08/2012 18:58, sebb a ecrit : > >> > >>> On 13 August 2012 17:07, sebb<[email protected] <javascript:;>> wrote: > >>>> > >>>> I've made the changes to merge the OnDemand code back into the > >>>> standard ThreadGroup. > >>>> > >>>> This means it's now trivial for users to switch between the different > >>>> startup types. > >>>> > >>>> I hope I've not broken anything ... > >>> > >>> Seems to work OK with a simple test plan of a single Java sampler, 10 > >>> loops. > >>> Setting the ramp-up to the same as the thread count gives me a max of > >>> 3 threads concurrently. > >>> > >>> This runs out of memory when run without delayed start and 10000 > threads. > >>> The same test starts fine and runs for a while with delayed start. > >> > >> > >> I've run a simple test of 2 Java sampler (with 1s sleep time), 10 loops, > >> with 120000 threads and ramp-up 6000s with jmeter-trunk (on Linux 64 > bits > >> server with 48 cores, sun jdk 6 64bits) > >> > >> === > >> With delayed start, test works fine. > >> 2400004 of sampler results > >> > >> Max heap size during tests: ~2.6 GB > >> (jmeter java opts : HEAP="-Xms8g -Xmx8g -XX:+UseConcMarkSweepGC > >> -Xloggc:/tmp/gclog_`date '+20%y%m%d%H%M%S'`.txt") > >> > >> Average number of LWP (Light-weight process): ~500 (~threads inside the > >> java process via the linux command 'ps') > >> > >> === > >> Without delayed start: OutOfMemoryError: unable to create new native > thread. > >> 45176 of sampler results (test not ended, kill by me after the OOME > >> notification) > >> > >> Max heap size during tests: ~2.3 GB > >> (jmeter java opts : HEAP="-Xms8g -Xmx8g -XX:+UseConcMarkSweepGC > >> -Xloggc:/tmp/gclog_`date '+20%y%m%d%H%M%S'`.txt") > >> > >> Max number of LWP (Light-weight process): 30396 (~threads inside the > java > >> process) > >> > >> === > >> > >> Conclusion IMHO: A great behavior for JMeter and tests with a huge > number of > >> threads (users) with small number of individual loops per user, like > >> webservice's test > > > > Thanks! > > > > I'm currently working on delaying the creation of JMeterThread instances. > > These take quite a bit of memory, and they aren't needed until just > > before the thread starts. > > > > This means moving code from StandardJMeterEngine to ThreadGroup. > > Quite a lot of changes, but it's looking very promising - many more > > threads can be started, as memory is then only taken for active > > threads. > > > > I should be able to commit the code later today or tomorrow. > > Committed. Seems to be working OK, though I've not tested multiple > thread groups yet. > > When using delayed start, the thread count should now be limited only > by the number of concurrent threads. > I was able to start a test with 10 million threads (though I did not > let it run for very long). > > Assuming that the thread-related data is properly released when the > thread finishes, there's no reason why such a test should not > complete. > > >> Milamber > >> > >> > >>> It's much quicker to stop the test as well. > >>> > >>> I was able to start a test with 50000 threads, but after that memory > >>> was a problem. > >>> Also, the test takes quite a long time to start up, presumably because > >>> of the array of JMeterThread instances. > >>> > >>>> There's probably still some tidying up that could be done. > >>>> > >>>> For example, StandardJMeterEngine still creates the JMeterThread > >>>> instances at the start. It might be better to make the thread group > >>>> class responsible for handling these, so the additional objects are > >>>> not created until needed. > >>> > >>> I think that's what broke my tests with more than about 60000 threads. > >>> > >>> As well as deferring creation of these objects,they need to be > >>> released once the thread has completed. > >>> > >>>> BTW, my French is not up to translating the delayed_start property > >>>> entry - please can someone else fix that so the tests no longer fail? > >>>> Thanks! > >> > >> > -- Cordialement. Philippe Mouawad.
