users@glassfish.java.net

Re: Application benchmark

From: <glassfish_at_javadesktop.org>
Date: Sat, 24 Feb 2007 11:21:39 PST

Hi coder,

While I'm no jmeter expert, I have used it quite a bit and I have an idea of what *may* be going on.

Some questions about your setup:

1.) How many machines do you have generating the load, and what are the specs of those machines?

2.) How many threads and loops per machine are you sending, and what is the think time you've specified? (Note if you specify in the controller 100 threads, it doesn't split that between load generators, each generator will test with 100 threads.

3.) What is the ramp up time you provide for your tests, and do you warmup the vms first so you can exclude things like class initialization times etc?

4.) Have you tweaked your jmeter settings file at all?

Basically since Jmeter itself is a Java app, it too has to do garbage collection and manage memory. If you've under-spec'd the environment you're generating your load from, jmeter may be doing a lot of garbage collection and that has seemed to skew results for me in the past.

Check things like your min and max heap size, and your max survivor ratio. The highest volume tests we ever do are are about 100 / 150 threads, so I use two load generators that run on linux boxen and I give them about 400mb heap each. I also set the max survivor to about 50%.

Its very important to tune your load generating environments else you can get some very strange and very useless results. To tune for memory you can use tools like Sun's visualgc to see what your heap and non-heap spaces look like and tune accordingly.

I hope this helps :)

Andrew
[Message sent by forum member 'areplogle' (areplogle)]

http://forums.java.net/jive/thread.jspa?messageID=205115