Whamcloud - gitweb
LU-11505 tests: customise run_*() functions
[fs/lustre-release.git] / lustre / tests / dom-performance.sh
index 5b1eec8..501a30f 100644 (file)
@@ -25,22 +25,33 @@ FAIL_ON_ERROR=false
 
 SAVED_DEBUG=$($LCTL get_param -n debug 2> /dev/null)
 
-check_and_setup_lustre
 
+. $LUSTRE/tests/functions.sh
 build_test_filter
+check_and_setup_lustre
+
+# if MACHINEFILE set and exists -- use it
+MACHINEFILE=${MACHINEFILE:-$TMP/$(basename $0 .sh)-$(hostname).machines}
+clients=${CLIENTS:-$HOSTNAME}
+generate_machine_file $clients $MACHINEFILE ||
+       error "Failed to generate machine file"
 
 DP_DIO=${DP_DIO:-"no"}
 
 DOM_SIZE=${DOM_SIZE:-"1M"}
 DP_OSC="mdc"
 
-rm -rf $DIR/*
-
 DP_NORM=$DIR/dp_norm
 DP_DOM=$DIR/dp_dom
 DP_DOM_DNE=$DIR/dp_dne
 DP_STATS=${DP_STATS:-"no"}
 
+if $DO_CLEANUP; then
+       rm -rf $DIR/*
+else
+       rm -rf $DP_NORM $DP_DOM $DP_DOM_DNE
+fi
+
 # total number of files
 DP_FNUM=${DP_FNUM:-16384}
 # number of threads
@@ -133,8 +144,7 @@ dp_run_cmd() {
 
 run_MDtest() {
        if ! which mdtest > /dev/null 2>&1 ; then
-               echo "Mdtest is not installed, skipping"
-               return 0
+               skip_env "Mdtest is not installed, skipping"
        fi
 
        local mdtest=$(which mdtest)
@@ -143,10 +153,12 @@ run_MDtest() {
        local th_num=$((DP_FNUM * 2 / DP_NUM))
        local bsizes="8192"
 
+       chmod 0777 $TDIR
+
        [ "$SLOW" = "yes" ] && bsizes="4096 32768"
 
        for bsize in $bsizes ; do
-               dp_run_cmd "mpirun -np $DP_NUM $mdtest -i 3 -I $th_num -F \
+               dp_run_cmd "mpi_run -np $DP_NUM $mdtest -i 3 -I $th_num -F \
                        -z 1 -b 1 -L -u -w $bsize -R -d $TDIR"
                if [ ${PIPESTATUS[0]} != 0 ]; then
                        error "MDtest failed, aborting"
@@ -158,38 +170,26 @@ run_MDtest() {
 }
 
 run_SmallIO() {
-       if [ ! -f createmany ] ; then
-               echo "Createmany is not installed, skipping"
-               return 0
-       fi
-
-       if [ ! -f smalliomany ] ; then
-               echo "Smalliomany is not installed, skipping"
-               return 0
-       fi
-
        local TDIR=${1:-$DIR}
        local count=$DP_FNUM
 
        local MIN=$((count * 16))
-       [ $MDSSIZE -le $MIN ] && count=$((MDSSIZE / 16))
+       local mdssize=$(mdssize_from_index $TDIR 0)
+       [ $mdssize -le $MIN ] && count=$((mdssize / 16))
 
-       dp_run_cmd "./createmany -o $TDIR/file- $count | grep 'total:'"
+       dp_run_cmd "createmany -o $TDIR/file- $count | grep 'total:'"
        if [ ${PIPESTATUS[0]} != 0 ]; then
                error "File creation failed, aborting"
        fi
 
-       if [ -f statmany ]; then
-               dp_run_cmd "./statmany -s $TDIR/file- $count $((count * 5)) |
-                       grep 'total:'"
-               if [ ${PIPESTATUS[0]} != 0 ]; then
-                       error "File stat failed, aborting"
-               fi
-
+       dp_run_cmd "statmany -s $TDIR/file- $count $((count * 5)) |
+               grep 'total:'"
+       if [ ${PIPESTATUS[0]} != 0 ]; then
+               error "File stat failed, aborting"
        fi
 
        for opc in w a r ; do
-               dp_run_cmd "./smalliomany -${opc} $TDIR/file- $count 300 |
+               dp_run_cmd "smalliomany -${opc} $TDIR/file- $count 300 |
                        grep 'total:'"
                if [ ${PIPESTATUS[0]} != 0 ]; then
                        error "SmallIO -${opc} failed, aborting"
@@ -197,7 +197,7 @@ run_SmallIO() {
 
        done
 
-       dp_run_cmd "./unlinkmany $TDIR/file- $count | grep 'total:'"
+       dp_run_cmd "unlinkmany $TDIR/file- $count | grep 'total:'"
        if [ ${PIPESTATUS[0]} != 0 ]; then
                error "SmallIO failed, aborting"
        fi
@@ -207,8 +207,7 @@ run_SmallIO() {
 
 run_IOR() {
        if ! which IOR > /dev/null 2>&1 ; then
-               echo "IOR is not installed, skipping"
-               return 0
+               skip_env "IOR is not installed, skipping"
        fi
 
        local IOR=$(which IOR)
@@ -220,23 +219,28 @@ run_IOR() {
        fi
 
        local TDIR=${1:-$MOUNT}
+
+       chmod 0777 $TDIR
+
        local bsizes="8"
        [ "$SLOW" = "yes" ] && bsizes="4 32"
 
        for bsize in $bsizes ; do
                segments=$((128 / bsize))
 
-               dp_run_cmd "mpirun -np $DP_NUM $IOR \
+               dp_run_cmd "mpi_run -np $DP_NUM $IOR \
                        -a POSIX -b ${bsize}K -t ${bsize}K -o $TDIR/ -k \
-                       -s $segments -w -r -i $iter -F -E -z -m -Z $direct"
+                       -s $segments -w -r -i $iter -F -E -z -m -Z $direct" |
+                       awk '($1 !~ /^(write|read|access)$/) || NF>12 {print}'
                if [ ${PIPESTATUS[0]} != 0 ]; then
                        error "IOR write test for ${bsize}K failed, aborting"
                fi
 
                # check READ performance only (no cache)
-               dp_run_cmd "mpirun -np $DP_NUM $IOR \
+               dp_run_cmd "mpi_run -np $DP_NUM $IOR \
                        -a POSIX -b ${bsize}K -t ${bsize}K -o $TDIR/ -X 42\
-                       -s $segments -r -i $iter -F -E -z -m -Z $direct"
+                       -s $segments -r -i $iter -F -E -z -m -Z $direct" |
+                       awk '($1 !~ /^(read|access|remove)$/) || NF>12 {print}'
                if [ ${PIPESTATUS[0]} != 0 ]; then
                        error "IOR read test for ${bsize}K failed, aborting"
                fi
@@ -248,8 +252,7 @@ run_IOR() {
 
 run_Dbench() {
        if ! which dbench > /dev/null 2>&1 ; then
-               echo "Dbench is not installed, skipping"
-               return 0
+               skip_env "Dbench is not installed, skipping"
        fi
 
        local TDIR=${1:-$MOUNT}
@@ -271,8 +274,7 @@ run_Dbench() {
 run_FIO() {
        # https://github.com/axboe/fio/archive/fio-2.8.zip
        if ! which fio > /dev/null 2>&1 ; then
-               echo "No FIO installed, skipping"
-               return 0
+               skip_env "No FIO installed, skipping"
        fi
 
        local fnum=128 # per thread
@@ -343,14 +345,22 @@ run_FIO() {
 }
 
 run_compbench() {
-       if ! which compilebench > /dev/null 2>&1 ; then
-               echo "Compilebench is not installed, skipping"
-               return 0
+       local compilebench
+       if [ x$cbench_DIR = x ]; then
+               compilebench=$(which compilebench 2> /dev/null)
+       else
+               cd $cbench_DIR
+               [ -x compilebench ] ||
+                       skip_env "compilebench is missing in $cbench_DIR"
+               compilebench=compilebench
        fi
 
+       [ x$compilebench != x ] ||
+               skip_env "Compilebench is not installed, skipping"
+
        local TDIR=${1:-$MOUNT}
 
-       dp_run_cmd "compilebench -D $TDIR -i 2 -r 2 --makej"
+       dp_run_cmd "$compilebench -D $TDIR -i 2 -r 2 --makej"
        if [ ${PIPESTATUS[0]} != 0 ]; then
                error "Compilebench failed, aborting"
        fi