Skip to content

Load Testing Blog

MySQL Master - Master

This blog post is the first part of a series of three tutorials dedicated to Rancher High-Availability. And the first step towards HA is to have a fault tolerant database.

By default Rancher comes with an embedded HSQLDB database. It's fine for testing purpose but not suited to a production environment.

So this tutorial explains:

New cloud provider

We have been listening to all your nice feedbacks this last year and decided it was time to implement a new cloud provider in our platform. That's why we are excited to announce that OctoPerf now supports Digital Ocean.

Cloud is not AWS only

Running large tests from AWS is quite easy and their platform is very powerful but:

  • Testing an application hosted in AWS from AWS machines is not entirely realistic because of dedicated connections between datacenters,
  • The AWS regions are nice but don't give a complete worldwide coverage,
  • Even AWS can be overloaded at certain peak periods.

In these cases, it is important to be able to run load from an external location so that the tests remain realistic.

Impl classes are evil

Like Martin Fowler said in TwoHardThings:

There are only two hard things in Computer Science: cache invalidation and naming things.

I've just seen too many times developers using Dependency Injection frameworks like Spring or Guice or Dagger the wrong way. Naming classes with Impl suffix is an Anti-pattern and i'm going to explain why.

Why Impl is Bad

ServiceImpl is a common practice

Many developers, including myself years ago, are using the Interface + Impl pattern to create services which are injected by their interface. This usually looks like this:

Impl pattern

Monitoring in action: Apache Httpd

This blog post is a step-by-step guide for monitoring Apache Httpd using OctoPerf. We use WordPress as a sample application.


Before monitoring an infrastructure we need:

  • to install WordPress using Docker,
  • to configure an on-premise Host,
  • and to create a virtual user that browse the different pages.

You can skip to the monitoring chapter if you are familiar with these steps or directly to the analysis to get the results.

OctoPerf built-in monitoring

At the root of the OctoPerf project is the will to provide realistic load testing. We continue to take steps to improve the JMeter experience and make it accessible. But there's a limit to what pure performance testing can achieve.

To push this limit it is vital to assess what happens on the hardware during the tests.

More realism

Of course, a realistic test must reproduce the users expected behavior, but that's not all. Once your test is running you need to know what is happening to your servers if you want to fix bottlenecks. This is something that always bothered us when launching only the load from OctoPerf.