X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=microbench%2Frun.sh;fp=microbench%2Frun.sh;h=f1223702ac3f82bb7e831f0a1c49bd0d2af337db;hb=d5e3f485ae432ebe37299c2effca09173b9f74d0;hp=0000000000000000000000000000000000000000;hpb=e6ca13c07e0cb5dd05d48a12cd50a2cf6179ce1a;p=bluesky.git diff --git a/microbench/run.sh b/microbench/run.sh new file mode 100755 index 0000000..f122370 --- /dev/null +++ b/microbench/run.sh @@ -0,0 +1,65 @@ +#!/bin/bash +# +# Run a set of benchmarks on the NFS frontend and report performance. + +source "$HOME/bin/aws-keys" +BLUESKY="$HOME/local/bluesky.git" +NFSD="$BLUESKY/nfs3/nfsproxy" + +die() { + echo "FATAL ERROR: $@" + exit 1 +} + +run_setup() { + echo "Starting nfsproxy..." 1>&2 + $NFSD & + NFSPID=$! + sleep 0.5 + sudo mount -t nfs -o tcp,hard,intr localhost:/bluesky /mnt/bluesky || die "Mounting NFS" +} + +run_cleanup() { + echo "Stopping nfsproxy..." 1>&2 + sudo umount -f /mnt/bluesky + kill -TERM $NFSPID + wait $NFSPID +} + +benchmark_setup() { + echo "Checking for sudo access..." 1>&2 + sudo whoami + echo "Preparing for benchmark run..." 1>&2 + $HOME/docs/2009/fall/s3test/s3-cleanup.py mvrable-bluesky + run_setup + for i in {1..64}; do + dd if=/dev/urandom of=/mnt/bluesky/file-$i bs=32k count=1 + done + sleep 15 + run_cleanup +} + +benchmark_cleanup() { + echo "Cleaning up from benchmark runs..." 1>&2 +} + +run_test() { + run_setup + echo "Running test" 1>&2 + (cd /mnt/bluesky; $BLUESKY/microbench/readbench "$@") >results-t$1-s$BLUESKY_OPT_SYNC_FRONTENDS + run_cleanup +} + +benchmark_setup + +export BLUESKY_OPT_SYNC_FRONTENDS=0 +for t in 1 2 4 6 8 10 12 14 16 20 24 28 32 40 48 56 64; do + run_test $t +done + +export BLUESKY_OPT_SYNC_FRONTENDS=1 +for t in 1 2 4 6 8 10 12 14 16 20 24 28 32 40 48 56 64; do + run_test $t +done + +benchmark_cleanup