What tools are co-ops using to stress test their infrastructure?

So we’re working with a client who requires horizontal scaling of their infrastructure. We were just wondering if anyone had any recommendations for tools to test this scaling under stress?

We’ve been looking at Apache Benchmark so far.

1 Like

I haven’t done load testing for a while, but in the past had some success with https://www.flood.io/

It’s a cloud based solution that runs tests with JMeter (which is the old Java stand by for load testing) or Gatling (a Scala based solution - but as Scala makes it easy to write a DSL, you don’t need to learn Scala). I’ve used Benchmark too but these tools are better for more sophisicated scenarios.

Of JMeter and Gatling, I’d use Gatling. It’s easier and, wow, can it parallelise. There are some tools in Python as well but I’ve not used them. There was a reverse proxy thing in Gatling that allowed you to record a real browser and replay the session, which was very powerful indeed.

Of course, you can set up JMeter or Gatling yourself, but having a cloud based solution has advantages. You probably aren’t a fan of AWS or Azure, but for a start up I worked for that had US TV network call to actions on air, being able to hammer the infrastructure from all over the world made one pretty confident it was going to hold up under spiky load. Flood.io also supports using Selenium, i.e. real browsers, which can show you up if your simulation isn’t very good.

Pro-tip you probably know already: database may start failing even if you horizontally scale out of there. Horizontal scale soaks up load on the web tier, but your database is going to cope with the same amount of connections. And sometimes databases don’t like so many pools being opened all at once. Seen this is the wild, not fun!

2 Likes

I’ve used ab in the past (many, many years ago!), I was discussing this with @stephen the other day, he might be able to share what he has been using.

1 Like

I used GitHub - wg/wrk: Modern HTTP benchmarking tool before (as a cooler apache bench alternative).

And aaaaaaaaaages ago used jMeter (os it JMeter, jmEtEr…)… which had a proxy mode, so you can point your browser at it, record a “realistic” session, then play loads of them (and parametrize the user/pass logins from a list of accounts).

I’m pretty sceptical it was actually of any use though. Like it was some kind of business planning demand that they can tell someone “we can scale xxblahblahblhabhlabhla” :face_vomiting:. Personally, I would just “cowboy it” … run the thing, if metaphorical steam starts coming out everywhere deal with it then. ymmv… (seems useful for @alex 's TV use case)… but anyhow if a client wants it…

2 Likes

haven’t done much loadtesting lately, and used to use apachebenchmark in the agency that i used to work in that was trying to loadtest more. On a recent project I participate in, someone reached for locust CLI tool: https://locust.io/

Project in question: GitHub - joshsmith2/polis-loadtesting: A series of Locust test to meaningfully load-test Pol.is instances

2 Likes

Thanks all! This is really helpful and it’s great to have so many different perspectives.

I’ve been using Locust to load test websites. A great improvement to Jmeter and easy to setup remote workers if you have infrastructure for running Docker containers across hosts (using Kubernetes or such like).

1 Like