lightweight, container-based compute fabric
Latest commit 4c813ba Sep 17, 2018


Build Status


wget -O /usr/bin/treadmill && chmod +x /usr/bin/treadmill

This will put treadmill in your path.

Vagrant setup for development


vagrant plugin install vagrant-vbguest

Vagrant Setup

cd treadmill
git checkout standard_setup
vagrant up
vagrant ssh
  • Create the cgroup folders as root
sudo su -
cd /sys/fs/cgroup
for i in *; do mkdir -p $i/treadmill/apps $i/treadmill/core $i/system ; done
cd -
  • Start the zookeeper service
cd /home/centos && zookeeper-3.4.9/bin/ start
  • Make the mount private
sudo mount --make-rprivate /
  • Treadmill should now be available on the box
source /home/centos/env/bin/activate
treadmill --help

Treadmill cli cheatsheet

treadmill sproc scheduler /tmp
treadmill sproc service --root-dir /tmp/treadmill/ localdisk --reserve 20G --img-location /tmp/treadmill --default-read-bps 100M --default-write-bps 100M --default-read-iops 300 --default-write-iops 300
treadmill sproc service --root-dir /tmp/treadmill/ network
treadmill sproc service --root-dir /tmp/treadmill/ cgroup

# Zookeeper shell
create /scheduled/ {"memory":"100M","cpu":"10%","disk":"500M","proid":"centos","affinity":"","services":[{"name":"sleep","command":"/bin/top","restart":{"limit":5,"interval":60}}]}
create /servers/localhost.localdomain {"parent":"all:unknown","features":[],"traits":[],"label":null,"valid_until":1488573090.0}
create /cell/all:unknown {}
create /buckets/all:unknown {"parent":null,"traits":0}

# System shell
treadmill sproc init --approot /tmp/treadmill/
cd /tmp/treadmill/running && nohup /bin/s6-svscan > s6_svscan.out & && cd -
treadmill sproc eventdaemon
treadmill sproc appcfgmgr