80bd635da39f21da3cbb8e051fc4b8ae7544ea20
[bluesky.git] / microbench / setup / run-benchmark
1 #!/bin/bash
2 #
3 # Start up the NFS server.
4
5
6 # Defaults
7 SERVER=c09-45.sysnet.ucsd.edu
8 MNTDIR=/mnt/bluesky
9
10 BENCH_FILESIZE=$((1 << 12))
11 BENCH_FILECOUNT=$((8))
12 BENCH_WRITERATIO=1.0
13 BENCH_THREADS=8
14 BENCH_DURATION=120
15 BENCH_OPS=100
16 BENCH_INTERVALS=4
17 BENCH_DIRSIZE=256
18 BENCH_LOCKEDMEM=$((4096 - 256))
19
20 lock_memory() {
21     MEM=$1
22     while [ $MEM -gt 512 ]; do
23         /scratch/bluesky.git/microbench/lockmem 512 &
24         MEM=$(($MEM - 512))
25     done
26     if [ $MEM -gt 0 ]; then
27         /scratch/bluesky.git/microbench/lockmem $MEM &
28     fi
29 }
30
31 # Export any environment variables specified on the command line
32 for e in "$@"; do
33     echo "$e" 1>&2
34     if echo "$e" | grep = >/dev/null; then
35         eval "$e"
36         export ${e%=*}
37     fi
38 done
39
40 # Prepare to run the benchmark
41 lock_memory $BENCH_LOCKEDMEM
42
43 mount -t nfs -o vers=3,tcp,rw,soft,intr $SERVER:/export $MNTDIR
44
45 pushd $MNTDIR >/dev/null
46
47 /scratch/bluesky.git/microbench/mixedbench \
48     $BENCH_FILESIZE \
49     $BENCH_FILECOUNT \
50     $BENCH_WRITERATIO \
51     $BENCH_THREADS \
52     $BENCH_DURATION \
53     $BENCH_OPS \
54     $BENCH_INTERVALS \
55     $BENCH_DIRSIZE
56
57 pkill -TERM lockmem
58
59 popd >/dev/null
60
61 umount -f $MNTDIR