Running Locust distributed

Once a single machine isn’t enough to simulate the number of users that you need, Locust supports running load tests distributed across multiple machines.

To do this, you start one instance of Locust in master mode using the --master flag. This is the instance that will be running Locust’s web interface where you start the test and see live statistics. The master node doesn’t simulate any users itself. Instead you have to start one or —most likely—multiple worker Locust nodes using the --worker flag, together with the --master-host (to specify the IP/hostname of the master node).

A common set up is to run a single master on one machine, and then run one worker instance per processor core on the worker machines.


Both the master and each worker machine, must have a copy of the locust test scripts when running Locust distributed.


It’s recommended that you start a number of simulated users that are greater than number of user classes * number of workers when running Locust distributed.

Otherwise - due to the current implementation - you might end up with a distribution of the User classes that doesn’t correspond to the User classes’ weight attribute. And if the hatch rate is lower than the number of worker nodes, the hatching would occur in “bursts” where all worker node would hatch a single user and then sleep for multiple seconds, hatch another user, sleep and repeat.


To start locust in master mode:

locust -f --master

And then on each worker (replace with IP of the master machine):

locust -f --worker --master-host=



Sets locust in master mode. The web interface will run on this node.


Sets locust in worker mode.


Optionally used together with --worker to set the hostname/IP of the master node (defaults to


Optionally used together with --worker to set the port number of the master node (defaults to 5557).


Optionally used together with --master. Determines what network interface that the master node will bind to. Defaults to * (all available interfaces).


Optionally used together with --master. Determines what network ports that the master node will listen to. Defaults to 5557.


Used when starting the master node with --headless. The master node will then wait until X worker nodes has connected before the test is started.

Running distributed with Docker

See Running Locust with Docker

Running Locust distributed without the web UI

See Running Locust distributed without the web UI

Running Locust distributed in Step Load mode

See Running Locust in Step Load Mode

Increase Locust’s performance

If you’re planning to run large-scale load tests you might be interested to use the alternative HTTP client that’s shipped with Locust. You can read more about it here: Increase Locust’s performance with a faster HTTP client