3d2e350fd5ffb29b729fb7ca06c8c839ac280ed8
[bluesky.git] / microbench / setup / prepare-benchmark
1 #!/bin/bash
2 #
3 # Prepare a file system for a benchmark run by creating any needed files or
4 # directories.
5
6
7 # Defaults
8 SERVER=c09-45.sysnet.ucsd.edu
9 MNTDIR=/mnt/bluesky
10
11 BENCH_FILESIZE=$((1 << 12))
12 BENCH_FILECOUNT=$((8))
13 BENCH_WRITERATIO=1.0
14 BENCH_THREADS=8
15 BENCH_DURATION=120
16 BENCH_OPS=100
17 BENCH_INTERVALS=4
18 BENCH_DIRSIZE=256
19
20 # Export any environment variables specified on the command line
21 for e in "$@"; do
22     echo "$e" 1>&2
23     if echo "$e" | grep = >/dev/null; then
24         eval "$e"
25         export ${e%=*}
26     fi
27 done
28
29 # Prepare to run the benchmark
30 mount -t nfs -o vers=3,tcp,rw,soft,intr $SERVER:/export $MNTDIR
31
32 pushd $MNTDIR >/dev/null
33
34 for t in $(seq 0 $(($BENCH_THREADS - 1))); do
35     for i in $(seq 0 $(($BENCH_FILECOUNT - 1))); do
36         n1=$(($i / $BENCH_DIRSIZE))
37         n2=$(($i % $BENCH_DIRSIZE))
38         mkdir -p t$t/$n1
39         dd if=/dev/zero of=t$t/$n1/$n2 bs=$BENCH_FILESIZE count=1
40     done
41 done
42
43 find -type f -exec sha1sum '{}' \;
44
45 popd >/dev/null
46
47 umount -f $MNTDIR