bb6907e043700f9ac581d013df3a73ffb6b12d00
[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     mkdir t$t
36     for i in $(seq 0 $(($BENCH_FILECOUNT - 1))); do
37         n1=$(($i / $BENCH_DIRSIZE))
38         n2=$(($i % $BENCH_DIRSIZE))
39         mkdir t$t/$n1
40         dd if=/dev/zero of=t$t/$n1/$n2 bs=$BENCH_FILESIZE count=1
41     done
42 done
43
44 find -type f -exec sha1sum '{}' \;
45
46 popd >/dev/null
47
48 umount -f $MNTDIR