Skip to content

Instantly share code, notes, and snippets.

@oc
Last active February 3, 2020 13:49
Show Gist options
  • Save oc/1c2c1d2ecb3cf566798fb5e828589bf7 to your computer and use it in GitHub Desktop.
Save oc/1c2c1d2ecb3cf566798fb5e828589bf7 to your computer and use it in GitHub Desktop.
##
#
# in one window track vmstat wait time
#
# iostat -o JSON -x $(df /home/oracle | tail -n 1 | awk '{print $1}') 1 > /tmp/bench-iostat.json
#
# Or:
# vmstat 1 > /tmp/bench-vmstat.log
#
# in another run the benchmark:
# sh simple-dd.sh >/tmp/benchmark.log 2>&1
#
TMPDIR=$(mktemp -d)
echo ">>> WRITE baseline (64M)"
time dd if=/dev/zero of=$TMPDIR/64M.zero bs=64M count=1 oflag=dsync
echo "<<< READ baseline (128 blocks)"
time dd if=$TMPDIR/64M.zero of=/dev/null bs=128
echo "<<< READ baseline (2k blocks)"
time dd if=$TMPDIR/64M.zero of=/dev/null bs=2k
echo "<<< READ baseline (4k blocks)"
time dd if=$TMPDIR/64M.zero of=/dev/null bs=4k
echo "<<< READ baseline (8k blocks)"
time dd if=$TMPDIR/64M.zero of=/dev/null bs=8k
##
echo ">>> WRITE (256M)"
dd if=/dev/zero of=$TMPDIR/256M.zero bs=1M count=256 conv=fdatasync
echo "<<< Read speed 256M file (128 units)"
flush
echo 3 | sudo tee /proc/sys/vm/drop_caches
time dd if=$TMPDIR/256M.zero of=/dev/null bs=128
##
echo ">>> WRITE (1G)"
time dd if=/dev/zero of=$TMPDIR/1G.zero bs=1G count=1 oflag=dsync
echo "<<< Read speed 1G file (2k units)"
flush
echo 3 | sudo tee /proc/sys/vm/drop_caches
time dd if=$TMPDIR/1G.zero of=/dev/null bs=2k
##
echo ">>> WRITE: Create BIG file (4096m) from chunks"
time dd if=/dev/urandom of=$TMPDIR/BIG.zero bs=32M count=128 iflag=fullblock
echo "<<< Read speed BIG file (8k units)"
flush
echo 3 | sudo tee /proc/sys/vm/drop_caches
time dd if=$TMPDIR/BIG.zero of=/dev/null bs=8k
##
echo "*********************************************************"
echo "*********************************************************"
echo "*********************************************************"
echo ">>> WRITE latency (small writes - 512)"
time dd if=/dev/zero of=$TMPDIR/512_10k.zero bs=512 count=10k oflag=dsync
echo ">>> WRITE latency (tiny writes - 32)"
time dd if=/dev/zero of=$TMPDIR/32_10k.zero bs=32 count=10k oflag=dsync
# Cleanup
rm -fr $TMPDIR
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment