Load Testing

This page describes the details of performing a load test on a database instance.

Prerequisites

The load testing utilizes Locust which needs to be installed on the host generating the load.

The VM processing the load needs to be prepared with additional sample data as follows:

make sample-data ; sudo -u www-cde -g www-data bin/insert_huge_data.py -f 200 -v

Note

This step will take a considerable amount of time (think an hour).

Running

To do an interactive load test run Locust as follows:

locust -f bin/load-test/load_test_<variant>.py

Then point a browser at http://localhost:8089 to view the Locust frontend.

To run Locust from the command line something like the following is a sensible command:

locust -f bin/load-test/load_test_<variant>.py -H https://localhost:10443/ -u 30 -r 10 -t 300s --headless --csv /tmp/locust-output

Interpretation

Please note that benchmarking is a kind of black magic and the resulting numbers need careful interpretation to yield sensible information. The most reliable component is the relative performance between different configuration options.