I have a web service I'm trying to load test. I created a program that spawns threads to simulate multiple users connecting to the service and making a request. Each thread makes "some number" of requests before it dies. Each new request is made as soon as it is ready - there is little to no delay between getting a response and making the next request. The web service under test calls another web service on the same server.
This process seems to work fine up to 90 simulated users. Once I try 100 simulated users however, the programs hang after about 6 total processed requests. They don't seem to be doing anything. The simulated clients are hung waiting for responses and the web service is not receiving the requests. It takes a server restart to recover.
What's going on here? Is there a limit to the number of connections I can make to the server? Should I attempt to "ramp up" the load (right now I'm just firing them as fast as I can)?
The server I'm using us Java Caps 5.1.3 application server and the library I'm using to make the requests is HttpUnit 1.6.2.
Followup Question What's the benefit of the ramp up time? Why can't I just push all the load to the server at the start of the test?