EC2 Recommendations

Hi,

We are going to be running our Gatling simulations on EC2 (going to be trying for thousands of concurrent users for 24 hours). Does any have any recommendations on OS or Instance Type? Or better yet anyone have a Gatling AMI in the Community AMIs (I don’t see any for Gatling but I see 15 for JMeter)?

My preference would be Ubuntu Server 12.04.2 LTS, 64 bit, probably an M1 Medium and then I’d use the tuning mentioned here and on the wiki. But I am open to any OS and I realize I may need more than one server (when is it best to scale up the instance type versus scale out and add more instances?).

Thanks,
Jamie

As long as it’s not Windows… :slight_smile:

The amount of resources you need depends on your app and you scenario. You’d probably want to check on a short run that you don’t saturate the NIC, otherwise you’d need a larger instance, o or an additional one.
I think people at Gilt and MindCandy run Gatling from EC2. Anybody there willing to share?

A Gatling AMI is an excellent idea! Will do someday…

Cheers,

Stéphane

We run regular tests of the site using a double-digit number of m1.xlarge instances, which between them can generate enough load to allow us to spot deployments with load-sensitive regressions. You will need to write some housekeeping to start up instances, upload the test code to them, harvest the simulation logs and then generate the report and run assertions; unfotunately ours is a lot of bash scripts that are intimately tied to our infrastructure so I can’t share them.

The key thing about the m1.xlarge instance type is that it’s the cheapest with “high” network performance (http://aws.amazon.com/ec2/instance-types/) - you don’t want to end up measuring the network bandwidth of EC2 instead of the performance of your site.

Thanks for your feedback Andrew. “double-digit number of m1.xlarge instances”, wow, that’s a lot!

FYI, there’s a ruby gem for deploying Gatling on EC2, but I don’t know what it’s worth: http://rubygems.org/gems/simple_perf

Cheers,

Stéphane

You could also be interested in flood.io (ex GridInit): https://flood.io/features

That’s interesting - I can’t tell from the blurb if they gather and combine the results of a distributed Gatling run?

Also, I notice they also use m1.xlarge instances.

Hi Andrew, Tim from flood.io

Yes we aggregate the results from a grid of nodes. You can set up multiple nodes per grid and have multiple grids per region.

Each node runs Gatling (or JMeter) and writes the simulation log locally to disk, which is then picked up and processed by the Elasticsearch cluster of the grid that node belongs to.
In front of that is a restful API which further processes results into the graphs you see on flood.io

The m1.xlarge works well for us.

Regards,
Tim