1

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:

In my opinion these two resources make it easier to understand jmeter besides the official documentation.

bbonamin
  • 167
  • 8

2 Answers2

3

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:

  • Make sure stress testing is worth the time investment
  • Develop an extensive stress test that will test the full stack (i.e. Jmeter). If time is limited and you can't to this then use your cross-functional team (devs, dba, sysadmins, etc) best guess as to where the bottle neck is
  • Make sure you have a process in place that will monitor all relevant system resources during the tests

Execution:

  • Run stress test
  • Analyze results for the bottleneck
  • Fix the bottleneck
  • Repeat

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.

Kyle Brandt
  • 83,619
  • 74
  • 305
  • 448
  • Thank you very much, I'll look into Jmeter. I'm really interested because I've read some articles about it but didn't know it could fill forms. – bbonamin Jan 19 '11 at 15:28
  • it doesn't render html (as the documentation says) and so you fill forms by using url parameters in GET or POST requests, right? – djangofan Jan 31 '11 at 19:52
1

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

SLY
  • 1,286
  • 1
  • 13
  • 28