Set up synthetic write benchmark.
authorMichael Vrable <mvrable@cs.ucsd.edu>
Thu, 17 Mar 2011 18:32:22 +0000 (11:32 -0700)
committerMichael Vrable <mvrable@cs.ucsd.edu>
Thu, 17 Mar 2011 18:32:22 +0000 (11:32 -0700)
microbench/run-common.sh
microbench/run-synwrite.sh [new file with mode: 0755]
microbench/setup/run-synwrite [new file with mode: 0755]
microbench/writebench.py
results/figures/specsfs.gnuplot

index b95f02a..f4e93a5 100644 (file)
@@ -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 (executable)
index 0000000..1ca5f72
--- /dev/null
@@ -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 (executable)
index 0000000..386aee4
--- /dev/null
@@ -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
index 4779955..d210033 100755 (executable)
@@ -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__':
index 20b6bb1..debc5d3 100644 (file)
@@ -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"