Whamcloud - gitweb
b=18696
[fs/lustre-release.git] / lustre / tests / run_iozone.sh
1 #!/bin/bash
2 set -x
3
4 TMP=${TMP:-/tmp}
5
6 TESTSUITELOG=${TESTSUITELOG:-$TMP/recovery-mds-scale}
7 LOG=${TESTSUITELOG}_$(basename $0)-$(hostname)
8 DEBUGLOG=${LOG}.debug
9
10 mkdir -p ${LOG%/*}
11
12 rm -f $LOG $DEBUGLOG
13 exec 2>$DEBUGLOG
14
15 if [ -z "$MOUNT" -o -z "$END_RUN_FILE" -o -z "$LOAD_PID_FILE" ]; then
16     echo "The following must be set: MOUNT END_RUN_FILE LOAD_PID_FILE"
17     exit 1
18 fi
19
20 echoerr () { echo "$@" 1>&2 ; }
21
22 signaled() {
23     echoerr "$(date +'%F %H:%M:%S'): client load was signaled to terminate"
24     kill -TERM -$PPID
25     sleep 5
26     kill -KILL -$PPID
27 }
28
29 trap signaled TERM
30
31 # recovery-mds-scale uses this to signal the client loads to die
32 echo $$ >$LOAD_PID_FILE
33
34 TESTDIR=$MOUNT/d0.iozone-$(hostname)
35
36 # needed to debug oom problem
37 #echo 1 > /proc/sys/vm/vm_gfp_debug
38 #killpids=""
39 #vmstat 1 1000000 >$TMP/iozone.vmstat.out &
40 #killpids="$killpids $!"
41 #$LUSTRE_TESTS/runvmstat > $TMP/iozone.runvmstat.out &
42 #killpids="$killpids $!"
43
44 CONTINUE=true
45 while [ ! -e "$END_RUN_FILE" ] && $CONTINUE; do
46     echoerr "$(date +'%F %H:%M:%S'): iozone run starting"
47     mkdir -p $TESTDIR
48     cd $TESTDIR
49     iozone -a -M -R -V 0xab -g 100M -q 512k -i0 -i1 -f $TESTDIR/iozone-file 1>$LOG &
50     load_pid=$!
51     wait $load_pid
52     if [ ${PIPESTATUS[0]} -eq 0 ]; then
53         echoerr "$(date +'%F %H:%M:%S'): iozone succeeded"
54         cd $TMP
55         rm -rf $TESTDIR
56         if [ -d $TESTDIR ]; then
57             echoerr "$(date +'%F %H:%M:%S'): failed to remove $TESTDIR"
58             echo $(hostname) >> $END_RUN_FILE
59             CONTINUE=false
60         fi
61         echoerr "$(date +'%F %H:%M:%S'): iozone run finished"
62     else
63         echoerr "$(date +'%F %H:%M:%S'): iozone failed"
64         if [ -z "$ERRORS_OK" ]; then
65             echo $(hostname) >> $END_RUN_FILE
66         fi
67         if [ $BREAK_ON_ERROR ]; then
68             # break
69             CONTINUE=false
70         fi
71     fi
72 done
73
74 echoerr "$(date +'%F %H:%M:%S'): iozone run exiting"
75 #kill $killpids
76 #sleep 5
77 #kill -9 $killpids