The docker-stress
container is intended to for generating multiple workload
containers on a single machine.
The stress
tool is a simple
workload generator. This project dockerizes the tool while also allowing the
user to run n number of containers from a single docker run
command.
If you would like to see the help text for the stress
tool, you can invoke
the container thus:
docker run \
--env CONTAINER_COUNT=1 \
behemphi/stress \
--help
Gotcha: The environment variable is an artifact of the inception-like nature of the container. Pull requests welcome.
An example of using the tool to generate 10 seconds of stress with a single container:
docker run \
--detach \
--env CONTAINER_COUNT=1 \
behemphi/stress \
--cpu 1 --io 1 --vm 2 --vm-bytes 16M --timeout 10s
Notice that the CLI of stress
is preserved exactly.
An example of using the tool to generate 100 seconds of stress with 6 containers:
docker run \
--detach \
--env CONTAINER_COUNT=6 \
--privileged \
--volume /usr/local/bin/docker:/docker \
--volume /var/run/docker.sock:/var/run/docker.sock \
behemphi/stress \
--cpu 1 --io 1 --vm 2 --vm-bytes 8M --timeout 100s
In this case each of the 6 containers will run for 100 seconds with the settings passed in.
There is a reason this container is called stress
. Know what you are using
by reading up on the purpose of the tool. It is not recommended to use this
in production or other high-value environments.
The motivation for this was an evaluation of Google's
cAdvisor
. The goal was to generate
sustained, varied activity on a docker node and see what cAdvisor had to
say about it.
Other potential use cases are:
- Testing scheduling algorithms
- Stressing software applications in test environments by providing noisy neighbors
MIT