Linux Bare Metal
base="/tmp/storage-bench-file"
clearcache="sync && echo 3 > /proc/sys/vm/drop_caches"
for i in `seq 1 3`; do eval $clearcache && dd if=$base of=$base-w count=512 bs=1024k; rm -f $base-w; done
for i in `seq 1 3`; do eval $clearcache && dd if=$base of=/dev/null bs=4096k; done
rm -f $base
Linux Container
docker run --privileged -it ubuntu bash
base="/tmp/storage-bench-file"
clearcache="sync && echo 3 > /proc/sys/vm/drop_caches"
for i in `seq 1 3`; do eval $clearcache && dd if=$base of=$base-w count=512 bs=1024k; rm -f $base-w; done
for i in `seq 1 3`; do eval $clearcache && dd if=$base of=/dev/null bs=4096k; done
rm -f $base
OSX Bare Metal
base="/tmp/storage-bench-file"
clearcache="sudo purge"
for i in `seq 1 3`; do eval $clearcache && dd if=$base of=$base-w count=512 bs=1024k; rm -f $base-w; done
for i in `seq 1 3`; do eval $clearcache && dd if=$base of=/dev/null bs=4096k; done
rm -f $base
Guest Container (using Vagrant)
docker run --privileged -v /vagrant:/vagrant -it ubuntu bash
base="/tmp/storage-bench-file"
shared="/vagrant/storage-bench-file"
clearcache="sync && echo 3 > /proc/sys/vm/drop_caches"
dd if=/dev/urandom of=$base count=512 bs=1024k
for i in `seq 1 3`; do eval $clearcache && dd if=$base of=$base-w count=512 bs=1024k; rm -f $base-w; done
for i in `seq 1 3`; do eval $clearcache && dd if=$base of=/dev/null bs=4096k; done
for i in `seq 1 3`; do eval $clearcache && dd if=$base of=$shared count=512 bs=1024k; done
for i in `seq 1 3`; do eval $clearcache && dd if=$shared of=/dev/null bs=4096k; done
rm -f $base $shared