I have an web application. I want to do the load testing. It shows a real time status of some services. So the status page(http://server/currentstatus) would be visited by most users. It'll be refreshing automatically every 5, 10, 15 .. (on users choice). I am very new on load/performance testing. So I need to know how do calculate how much load my app can take?
The question may not be clear. I am using jmeter for testing load. When I run it using 500 threads, Ramp up period 5 sec and loop 5 I see my jmeter stops responding after sometime. If I put ramp up to 1 sec and loop to 1 I see it successfully finishes. I run this config (threads=500, rampup=1s, loop=1) many times. But I see the average response time varies a lot. I see all the values varies a lot. If these values varies this much how do I check performance improvement? If it was accepting 500 users and I do some performance improvement which lead it accepting 5000开发者_JAVA百科 users. In this case, how does it reflect the result of jmeter?
So I need to know how do calculate how much load my app can take?
Not really. Decide on what is an acceptable average response, and from your webserver configuration you should know how many concurrent connections the webserver will support - then track response times from your log files and concurrent connections from the number of running threads.
There is a case for capacity/stress testing - but its very difficult to do it properly.
JMeter is starting a thread for each thread in the test plan. Dont expect that a JMeter instance will show you anything accurate with using 500 threads. For such a load you should use master-slave feature of jmeter and run multiple instances of it on multiple mashines. In my experience one instance can hold 100 threads and this case the result is not corrupted by the testing client performance. See http://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.pdf for distributed testing startup.
Things you can avoid crashes with is to save only errors and not all results, save results in csv and not in xml and so on. The biggest mistake in Jmeter is that it is not prepared to work with large set of data, so it wants to hold everything in memory.
Check best practices at http://jmeter.apache.org/usermanual/best-practices.html for further details.
精彩评论