Skip to content

BretFisher/stress

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Easy CPU and Memory Stressing for Docker and SwarmKit

There's lots of images/repos using stress or stress-ng but I needed something that didn't need a custom ENTRYPOINT/CMD to work so it was easy to demo with docker service create, so here we go:

Simply running this image with various tags will get you pre-set cpu/memory stressing output.

Image:Tag Command
bretfisher/stress:latest stress --verbose --vm 1 --vm-bytes 256M
bretfisher/stress:256m stress --verbose --vm 1 --vm-bytes 256M
bretfisher/stress:512m stress --verbose --vm 1 --vm-bytes 512M
bretfisher/stress:1024m stress --verbose --vm 1 --vm-bytes 1024M
bretfisher/stress:2cpu256m stress --verbose --vm 2 --vm-bytes 256M
bretfisher/stress:2cpu512m stress --verbose --vm 2 --vm-bytes 512M
bretfisher/stress:2cpu1024m stress --verbose --vm 2 --vm-bytes 1024M

Example

Notice that the task will crash so quickly that it won't "finish" deployment.

docker service create --limit-memory 200M bretfisher/stress:512m
w5656w2kynqt4xip0b321d91y
overall progress: 0 out of 1 tasks
1/1: ready     [======================================>            ]
verify: Detected task failure
Operation continuing in background.
Use `docker service ps w5656w2kynqt4xip0b321d91y` to check progress.

If I looked at the replica list, you'll see Swarm shutting down out-of-memory tasks and starting new ones

docker service ps w5
ID                  NAME                       IMAGE                    NODE                    DESIRED STATE       CURRENT STATE               ERROR                       PORTS
zkvjxdl7o7ej        suspicious_lamport.1       bretfisher/stress:512m   linuxkit-025000000001   Shutdown            Failed about a minute ago   "task: non-zero exit (1)"
xtvjqeh190z2         \_ suspicious_lamport.1   bretfisher/stress:512m   linuxkit-025000000001   Shutdown            Failed 2 minutes ago        "task: non-zero exit (1)"
yv7eoc5c7n2z         \_ suspicious_lamport.1   bretfisher/stress:512m   linuxkit-025000000001   Shutdown            Failed 2 minutes ago        "task: non-zero exit (1)"
xyutkbaajjc1         \_ suspicious_lamport.1   bretfisher/stress:512m   linuxkit-025000000001   Shutdown            Failed 4 minutes ago        "task: non-zero exit (1)"

If I looked at service logs for just one of those tasks, you'd see it start, consume memory, then crash

docker service logs w5 2>&1 | grep yv7eoc5c7n2z
suspicious_lamport.1.yv7eoc5c7n2z@linuxkit-025000000001    | stress: info: [1] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
suspicious_lamport.1.yv7eoc5c7n2z@linuxkit-025000000001    | stress: dbug: [1] using backoff sleep of 3000us
suspicious_lamport.1.yv7eoc5c7n2z@linuxkit-025000000001    | stress: dbug: [1] --> hogvm worker 1 [7] forked
suspicious_lamport.1.yv7eoc5c7n2z@linuxkit-025000000001    | stress: dbug: [7] allocating 536870912 bytes ...
suspicious_lamport.1.yv7eoc5c7n2z@linuxkit-025000000001    | stress: dbug: [7] touching bytes in strides of 4096 bytes ...
suspicious_lamport.1.yv7eoc5c7n2z@linuxkit-025000000001    | stress: FAIL: [1] (415) <-- worker 7 got signal 9
suspicious_lamport.1.yv7eoc5c7n2z@linuxkit-025000000001    | stress: WARN: [1] (417) now reaping child worker processes
suspicious_lamport.1.yv7eoc5c7n2z@linuxkit-025000000001    | stress: FAIL: [1] (421) kill error: No such process
suspicious_lamport.1.yv7eoc5c7n2z@linuxkit-025000000001    | stress: FAIL: [1] (451) failed run completed in 1s

If I was watching docker events I'd see it create the container, start it, have a oom event, then die

  • ~ container create ~
  • ~ network create ~
  • ~ container start ~
  • ~ container oom ~
  • ~ container die ~
  • ~ network disconnect ~
  • ~ container destroy ~

About

Docker images for stressing cpu and memory

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project