Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Amazon EC2 Load Testing

I am designing a AWS deployment solution for a new dynamic website project. I have acquired an EC2 instance for testing the environment. Need some help on how do I do a load testing on an Ec2 instance to determine how many HTTP requests it can safely handle... P.S. I am new to the AWS platform.

Thanks...

like image 762
Vikram Chakrabarty Avatar asked Jul 22 '13 10:07

Vikram Chakrabarty


People also ask

Can we do load testing with AWS?

Distributed Load Testing on AWS is a solution that automates software applications testing at scale and at load to help you identify potential performance issues before their release.

How does Amazon do performance testing?

Continuous Feedback Meets Annual Stack Ranking. From what we were able to garner from a limited amount of public info, Amazon uses a "stack ranking" (a.k.a. "rank and yank") performance management process, in which employees are rated against each other in an annual review.


3 Answers

RedLine offers an EC2 Load Testing solution that will automate the distribution of load tests on your own EC2 instances.

like image 92
Bob Bickel Avatar answered Oct 20 '22 09:10

Bob Bickel


Late to the party but could help someone in the future:

A possible tool for load tests, stress tests, whatever you may call them, is Apache JMeter, but there are plenty of alternatives.

A simple starting setup, further explained in this excellent tutorial on DigitalOcean, can exist of a Thread Group containing an HTTP Request Sampler and a View Results in Table Listener. The Thread Group can be used to configure the amount of "clients" you want to simulate. The Request Sampler will be used to configure the server's properties (hostname, path, etc). The Table View Listener outputs a handy CSV file that can be used to calculate means, compare different types of EC2 instances,...

JMeter is a beautiful program with a GUI that can be run on your local workstation, producing an XML file that can be executed on another EC2 instance, for instance. You can even do simple manual edits to the XML file on your server afterward, if necessary.

Take a look at Amazon's testing policy to make sure you're not doing anything illegal.

like image 36
delucasvb Avatar answered Oct 20 '22 09:10

delucasvb


A couple of quick points;

  • Set the environment up exactly like it's supposed to run. If there's a database involved, you'll want to involve that in the testing too. Synthetic <?php echo "ok"; CPU based benchmarks won't help you much since normally very little of the time spent replying to HTTP requests is actual CPU time.

  • A recommendation is to use a service for the benchmarking. Setting load testing up is not without its complexities, and unless you consider benchmarking your core business, you're probably better off using something like Neustar to load and measure your site (there are many services, they're not necessarily what fits you best, just pulled one out of memory)

Of course you can set a load test up yourself, but getting that done right is not anything that can be described in a few sentences. There are very well paid people that only do that for a living :)

like image 25
Joachim Isaksson Avatar answered Oct 20 '22 10:10

Joachim Isaksson