On 28 March 2011 02:57, Sonam Chauhan <son...@gmail.com> wrote:
> Hello JMeter users: Just wanted some feedback on a formula for max. active
> threads and some thoughts on errors when running tests with lots of threads.
>
>
>
> Someone recently asked a question about JMeter running out of memory when
> creating new threads (the “cannot create native thread” error).
>
>
>
> I came up with this formula for maximum active threads in a thread group
> with a simple ramp
>
>
>
> *maximum active threads* = average thread lifetime * total threads/ramp
> period
>
>
> Does this look right? The way I understand the formula is it finds the total
> threads created by the time the first threads start terminating. Since
> threads now terminate at the same rate they are being added by the ramp,
> this is a steady-state figure - the “high water mark” of active threads.
>

If some threads last longer than others, the maximum may be more.

>
> As for memory usage, each thread uses heap memory and stack memory. Total
> heap memory usage limits are defined in the JMeter run script by the ‘Xms’
> (min.) and ‘Xmx’ (max.) flags. Stack memory usage is a fixed memory
> allocation per thread -- it can be changed by the ‘Xss’ parameter (but its
> best left alone in my experience)
>
>
>
> A 32-bit JVM running on  a 32-bit OS can occupy 2 GB of RAM at most. As some
> RAM is taken up by the JVM runtime itself, a JMeter instance can really
> access only 1.5 -1.7 GB of RAM – the sum of both the heap and stack usage
> fit into this.  So we do need to be careful about allocating too much heap.
> Lets assume *Xms* is set to *1.5 GB *and the test has a high water mark of
> 500 active threads. The JVM will  probably run out of memory creating
> threads… even though there could be plenty of heap left unused, 500 threads
> require about 180 MB of stack (for a 32 bit JVM), and this will cause the
>  test to  probably generate a “cannot create native thread” error at some
> point.

The maximum number of thread depends very much on the test plan.

I just created a test with 2000 threads, rampup 200, loop forever.

Currently running at over 6500 samples per second.

This is on WinXP with 2GB memory, Intel Core 2 1.67GZ with Eclipse and
various other applications running.

But the test only contains a single Java Request sampler and a Summary Listener.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscr...@jakarta.apache.org
For additional commands, e-mail: jmeter-user-h...@jakarta.apache.org

Reply via email to