Whamcloud - gitweb
297142d1fbdf3c539c7ebf64c508337db88a1653
[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 . $(dirname $0)/functions.sh
16
17 assert_env MOUNT END_RUN_FILE LOAD_PID_FILE
18
19 trap signaled TERM
20
21 # recovery-*-scale scripts use this to signal the client loads to die
22 echo $$ >$LOAD_PID_FILE
23
24 TESTDIR=$MOUNT/d0.iozone-$(hostname)
25
26 CONTINUE=true
27 while [ ! -e "$END_RUN_FILE" ] && $CONTINUE; do
28     echoerr "$(date +'%F %H:%M:%S'): iozone run starting"
29     mkdir -p $TESTDIR
30     cd $TESTDIR
31     iozone -a -M -R -V 0xab -g 100M -q 512k -i0 -i1 -f $TESTDIR/iozone-file 1>$LOG &
32     load_pid=$!
33     wait $load_pid
34     if [ ${PIPESTATUS[0]} -eq 0 ]; then
35         echoerr "$(date +'%F %H:%M:%S'): iozone succeeded"
36         cd $TMP
37         rm -rf $TESTDIR
38         if [ -d $TESTDIR ]; then
39             echoerr "$(date +'%F %H:%M:%S'): failed to remove $TESTDIR"
40             echo $(hostname) >> $END_RUN_FILE
41             CONTINUE=false
42         fi
43         echoerr "$(date +'%F %H:%M:%S'): iozone run finished"
44     else
45         echoerr "$(date +'%F %H:%M:%S'): iozone failed"
46         if [ -z "$ERRORS_OK" ]; then
47             echo $(hostname) >> $END_RUN_FILE
48         fi
49         if [ $BREAK_ON_ERROR ]; then
50             # break
51             CONTINUE=false
52         fi
53     fi
54 done
55
56 echoerr "$(date +'%F %H:%M:%S'): iozone run exiting"