Work on automatically running benchmarks.
[bluesky.git] / microbench / run2.sh
1 #!/bin/bash
2
3 PARAMS="BLUESKY_CACHE_SIZE BLUESKY_TARGET BENCH_DURATION BENCH_FILESIZE BENCH_FILECOUNT BENCH_WRITERATIO BENCH_THREADS BENCH_OPS"
4
5 BENCHER=c09-44.sysnet.ucsd.edu
6 PROXY=c09-45.sysnet.ucsd.edu
7
8 get_params() {
9     for p in $PARAMS; do
10         if [ -n "${!p}" ]; then
11             echo "$p=${!p}"
12         fi
13     done
14 }
15
16 run_cmd() {
17     host="$1"; shift
18     cmd="$1"; shift
19     echo "EXECUTE($host):" "$cmd" "$@"
20     ssh -l root $host /scratch/bluesky.git/microbench/setup/$cmd "$@" $(get_params)
21 }
22
23 for size in 512; do
24     BENCH_DURATION=20
25     BENCH_WRITERATIO=0.0
26     BLUESKY_TARGET=s3
27     BLUESKY_CACHE_SIZE=$(($size * 1024))
28
29     PREFIX=$BLUESKY_TARGET-$BENCH_WRITERATIO
30
31     echo "SETTINGS:" $(get_params)
32     get_params >$PREFIX.settings
33
34     run_cmd $PROXY cleanup-proxy
35     run_cmd $PROXY run-proxy >$PREFIX.proxy 2>&1 &
36     proxy_pid=$!
37     sleep 10
38     run_cmd $BENCHER run-benchmark | tee $PREFIX.results
39     run_cmd $PROXY stop-proxy
40     echo "Waiting for proxy to stop..."
41     wait $proxy_pid
42 done