Add proper per-file copyright notices/licenses and top-level license.
[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=vrable2.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 mkdir $(seq 0 $(($BENCH_FILECOUNT / $BENCH_DIRSIZE)))
35 for i in $(seq 0 $(($BENCH_FILECOUNT - 1))); do
36     n1=$(($i / $BENCH_DIRSIZE))
37     n2=$(($i % $BENCH_DIRSIZE))
38     dd if=/dev/zero of=$n1/$n2 bs=$BENCH_FILESIZE count=1
39 done
40
41 find -type f -exec sha1sum '{}' \;
42
43 popd >/dev/null
44
45 umount -f $MNTDIR