From 611c10480ccfce1545998554503392a69f9d72b3 Mon Sep 17 00:00:00 2001 From: Michael Vrable Date: Thu, 17 Mar 2011 11:32:22 -0700 Subject: [PATCH] Set up synthetic write benchmark. --- microbench/run-common.sh | 2 +- microbench/run-synwrite.sh | 32 ++++++++++++++++++++++++++++++++ microbench/setup/run-synwrite | 16 ++++++++++++++++ microbench/writebench.py | 5 ++++- results/figures/specsfs.gnuplot | 18 ++++++++++++++++++ 5 files changed, 71 insertions(+), 2 deletions(-) create mode 100755 microbench/run-synwrite.sh create mode 100755 microbench/setup/run-synwrite diff --git a/microbench/run-common.sh b/microbench/run-common.sh index b95f02a..f4e93a5 100644 --- a/microbench/run-common.sh +++ b/microbench/run-common.sh @@ -4,7 +4,7 @@ SCRIPT_PATH=/scratch/bluesky.git/microbench/setup -PARAMS="BLUESKY_RUN_NAME BLUESKY_CACHE_SIZE BLUESKY_TARGET BENCH_DURATION BENCH_FILESIZE BENCH_FILECOUNT BENCH_WRITERATIO BENCH_THREADS BENCH_OPS BENCH_INTERVALS BENCH_DIRSIZE BENCH_BLOCKSIZE NFS_BLOCKSIZE SPEC_CONF BLUESKY_OPT_FULL_SEGMENTS SYNREAD_OUTSTANDING SYNREAD_PROCS SYNREAD_SIZE SYNREAD_DURATION" +PARAMS="BLUESKY_RUN_NAME BLUESKY_CACHE_SIZE BLUESKY_TARGET BENCH_DURATION BENCH_FILESIZE BENCH_FILECOUNT BENCH_WRITERATIO BENCH_THREADS BENCH_OPS BENCH_INTERVALS BENCH_DIRSIZE BENCH_BLOCKSIZE NFS_BLOCKSIZE SPEC_CONF BLUESKY_OPT_FULL_SEGMENTS SYNREAD_OUTSTANDING SYNREAD_PROCS SYNREAD_SIZE SYNREAD_DURATION SYNWRITE_RATE" BLUESKY_RUN_NAME=$(date +%Y%m%d)-$$ BENCHER=vrable1.sysnet.ucsd.edu diff --git a/microbench/run-synwrite.sh b/microbench/run-synwrite.sh new file mode 100755 index 0000000..1ca5f72 --- /dev/null +++ b/microbench/run-synwrite.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +BASEDIR=$(dirname $(which $0)) +. $BASEDIR/run-common.sh + +BLUESKY_TARGET=s3:mvrable-readbench-west +BLUESKY_EXTRA_OPTS="BLUESKY_OPT_NO_CRYPTO=1" + +rates="1 2 4 8 16 32 48 100000" + +run_synbench() { + basename=$(date +%Y%m%d)-$1 + BLUESKY_RUN_NAME=$basename + + run_cmd $PROXY cleanup-proxy + run_cmd $PROXY run-proxy >$BLUESKY_RUN_NAME.proxy 2>&1 & + proxy_pid=$! + sleep 10 + + for SYNWRITE_RATE in $rates; do + run_cmd $BENCHER run-synwrite + sleep 60 + done + + run_cmd $PROXY stop-proxy + echo "Waiting for proxy to stop..." + wait $proxy_pid +} + +for BLUESKY_CACHE_SIZE in $((512 * 1024)); do + run_synbench "write-$(($BLUESKY_CACHE_SIZE / 1024))M" +done diff --git a/microbench/setup/run-synwrite b/microbench/setup/run-synwrite new file mode 100755 index 0000000..386aee4 --- /dev/null +++ b/microbench/setup/run-synwrite @@ -0,0 +1,16 @@ +#!/bin/bash +# +# Launch the synthetic write benchmark. + +SYNWRITE_RATE=10 + +# Export any environment variables specified on the command line +for e in "$@"; do + echo "$e" 1>&2 + if echo "$e" | grep = >/dev/null; then + eval "$e" + export ${e%=*} + fi +done + +/scratch/bluesky.git/nfs3/writebench.py $SYNWRITE_RATE >/scratch/synwrite/$BLUESKY_RUN_NAME.times diff --git a/microbench/writebench.py b/microbench/writebench.py index 4779955..d210033 100755 --- a/microbench/writebench.py +++ b/microbench/writebench.py @@ -26,7 +26,7 @@ def run_writebench(path, rate): start_time = time.time() last_time = start_time latencies = [] - while last_time < start_time + 30: + while last_time < start_time + 120: now = time.time() next_time = start_time + (1.0/rate) * count time.sleep(max(0.0, next_time - now)) @@ -34,6 +34,9 @@ def run_writebench(path, rate): latencies.append(write_file(path, count)) print latencies[-1] count += 1 + end_time = time.time() + duration = end_time - start_time + print "# %s MB/s (%d MB/%s seconds)" % (count / duration, count, duration) return latencies if __name__ == '__main__': diff --git a/results/figures/specsfs.gnuplot b/results/figures/specsfs.gnuplot index 20b6bb1..debc5d3 100644 --- a/results/figures/specsfs.gnuplot +++ b/results/figures/specsfs.gnuplot @@ -58,3 +58,21 @@ plot "../20110311/sfssum.20110312-native" using 1:3 with linespoints title "Loca "../20110311/sfssum.20110315-native-hi8" using 1:3 with linespoints title "Local (8 clients)", \ "../20110311/sfssum.20110311-s3-west" using 1:3 with linespoints title "BlueSky", \ "../20110311/sfssum.20110314-s3-west-hi8" using 1:3 with linespoints title "BlueSky (8 clients)" + + +# CIFS results +XMAX=1000 +set xrange [0:XMAX] +set x2range [0:XMAX*OPS_WSS_SCALE] +set xtics nomirror +set x2tics auto +set yrange [*:*] +set output "spec-cifs1.eps" +set ylabel "Achieved Operations per Second" +plot "../20110227a/sfssum.20110227-samba" with linespoints title "Samba", \ + "../20110317/sfssum.20110317-cifs" with linespoints title "BlueSky" + +set output "spec-cifs2.eps" +set ylabel "Operation Latency (ms)" +plot "../20110227a/sfssum.20110227-samba" using 1:3 with linespoints title "Samba", \ + "../20110317/sfssum.20110317-cifs" using 1:3 with linespoints title "BlueSky" -- 2.20.1