4

I am analyzing a web application and want to predict the maximum users that application can support. Now i have the below numbers out of my load test execution 1. Response Time 2. Throughput 3. CPU

I have the application use case SLA Response Time - 4 Secs CPU - 65%

When i execute load test of 10 concurrent users (without Think Time) for a particular use case the average response time reaches 3.5 Seconds and CPU touches 50%. Next I execute load test of 20 concurrent users and response time reaches 6 seconds and CPU 70% thus surpassing the SLA.

The application server configuration is 4 core 7 GB RAM.

Going by the data does this suggests that the web application can support only 10 user at a time? Is there any formula or procedure which can suggest what is the maximum users the application can support.

TIA

2
  • Right now which tool you are using for performance testing? Commented May 12, 2015 at 11:10
  • 1
    Hmm, that sounds horrible, a 4 core server should be able to handle hundreds of users, unless you do very complex logic and analyses, but even then 10 users sounds very bad. I think there is something wrong. Commented May 12, 2015 at 11:45

3 Answers 3

2

without Think Time

This is critical to the question you are asking. Can I ask why you're performing a test without think time? In the real world, users cannot type in data and click submit at the rate an automated script can. If you do not insert timers and pauses into your automated script, you are not really measuring performance under 10 real world user load.

The same server setup will be able to support several times the user load you're measuring once you bring in think time. The multiplication factor can vary, depending on how long the user takes to submit pages (simple login page vs filling out a survey page for instance). It can possibly even be an order of magnitude higher.

There is value in running tests without think times, especially if you're looking to evaluate code efficiency on the server end. Or if your aim is only to compare two servers. But if your objective is to measure how many users your server can support, please simulate load as close to real user behavior as you possibly can! This includes think times, iteration packing, ramp-up, order of transactions etc

Going by the data does this suggests that the web application can support only 10 user at a time?

Well, from the data you posted, it actually suggests a number between 10 and 20 (think-time-less) users. You can find a more precise measurement by testing at 15 users and possibly at 11, 12, 13.. etc as well (think binary-search).

1

To answer your question simply, use this tool from WebPerformance.com. I agree with the other answers/comments that 10 is a pretty low number. The lowest I even consider a stress test would be 100 as that is the default connection pool size for SQL Server 2008 that I have actually seen on a production server.

The low hanging fruits for optimization will include; gzip compression, minification of js/css/html, lazy loading, and a caching mechanism (like memcached).

0

That sounds very underwhelming to be honest. But it is not a bad thing though because you might have spotted something bad.

I would actually let the load run for a while, check which processes are eating up the resources and actually do a bit of debugging to see what`s going on inside.

If that is the expected behavior of the app.(which i doubt) try using other tools to run the load tests.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.