Testing the load of an Http web service

I have a web service that I am trying to download. I created a program that spawns threads to simulate multiple users connecting to a service and making a request. Each thread executes "a number" of requests before it dies. Each new request is created as soon as it is ready - there is no delay between receiving a response and the next request. Testing a web service calls another web service on the same server.

This process works great for up to 90 users. However, when I try to use 100 simulated users, the programs freeze after about 6 requests processed. They don't seem to be doing anything. Simulated clients hang waiting for responses and the web service does not receive requests. Recovery requires a server restart.

What's going on here? Is there a limit to the number of connections I can make to the server? Should I try to "increase" the load (right now I'm just shooting them as fast as I can)?

The server I am using Java Caps 5.1.3 Application Server and the library I am using to make requests is HttpUnit 1.6.2.


Follow-up question What is the use of rise time? Why can't I just load all the server load at the start of the test?

0


source to share


3 answers


See that there may be multiple reasons for this, you can try the approach below to figure out the reason. Hope they help:

1. Using Ramp-up

Use a decent overclock, say at least 1 second / 2 seconds or the like. If using Ramp-up solves your problem, then it is definitely a connection issue.

2. Code review

Check the entered boot code carefully, for inactive loops / threads in some cases.

You can also use a profiling utility like. JENSOR to find out which method is deadlocked and which server is not responding.




Also, check these settings on your web server and configure and check

  • MaxThreads
  • MaxProcesses
  • MaxSessionCount



Answer for follow-up question

Overclocking simulates a real-world scenario and at the same time gives space for breathing room on the web server. When performing load testing, the template must be similar to the real one in order to get accurate and scalable predictions.

The parameters that play the most important role in this:

  • Ramp-up
  • Think time
  • Incremental b / w iterations
  • Transaction Mix
  • Not. concurrent users
+2


source


The answer to the next question

Overclocking simulates a real-world scenario and at the same time gives space for breathing room on the web server. When performing load testing, the template must be similar to the real one in order to get accurate and scalable predictions.



The parameters that play the most important role in this:

  • Ramp-up
  • Think time
  • Incremental b / w iterations
  • Transaction Mix
  • Not. concurrent users
+2


source


I think you should try JMeter for load testing. It has all the build-up. This PPT presentation compares them so you can see which is better for you.

+1


source







All Articles