Our city is having a very public event soon (data harvesting for public spots available in the city hall) which required our company to create a form application to submit curriculums and some personal data. About 5-10 thousands of users are expected to submit data the first week because of the publicity the event is receiving and previous experiences of our client.
I've had good experiences using Amazon EC2 for small applications so I'm planning to launch an instance specialized in input/output, expecting massive data inputs.
The application is either going to run on IIS + MySQL or Tomcat + MySQL under Windows server.
I would really appreciate some thoughts and suggestions for testing and configuring this web server for stress and concurring users to avoid experiencing downtime and lost connections. I have little experience handling this amount of users so I'm a beginner with this kind of tools.
PROGRESS:
- I've found a very good starting tutorial for Jmeter in Vimeo (http://vimeo.com/3453772)
- I've also found useful explanation on the results of the test in this blog
In my opinion these two resources make it easier to understand jmeter besides the official documentation.
Since you want to test this application across the full stack you probably want something that can fill out the forms and log-in etc. Jmeter is pretty extensive in this respect.
The most important thing is to make sure you stress test various aspects of the that will hit the full stack including the SQL backend. Also, it is generally good to make sure you are hitting a lot of different pages if you app is built that way so you are not just benchmarking the cache of the systems. Using a/b incorrectly to just load a static page over and over again is mostly a waste of time unless you only care about Apache best-case scenario performance.
The process is generally:
Preperation:
Execution:
As a final note, I have often found getting enough systems up to actually test the system is one of the difficult parts -- so your Amazon solution sounds like a good one to me.
ab from Apache is a very popular stress testing tool. I would take a look at that and see if it meets your needs.
Oreilly Answers: How to Stress Test using AB