-
Elena Gryaznova authored
i=Adilger cmd3 performace tests[2-5,7-8] PERFORMANCE_SANITY test suite
Elena Gryaznova authoredi=Adilger cmd3 performace tests[2-5,7-8] PERFORMANCE_SANITY test suite
mdsrate-create-large.sh 3.56 KiB
#!/bin/bash
#
# This test was used in a set of CMD3 tests (cmd3-4 test).
LUSTRE=${LUSTRE:-`dirname $0`/..}
. $LUSTRE/tests/test-framework.sh
init_test_env $@
. ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh}
assert_env CLIENTS MDSRATE SINGLECLIENT MPIRUN
MACHINEFILE=${MACHINEFILE:-$(basename $0 .sh).machines}
TESTDIR=$MOUNT
# Requirements
TIME_PERIOD=${TIME_PERIOD:-600} # seconds
SINGLE_TARGET_RATE=$((1300 / OSTCOUNT)) # ops/sec
AGGREGATE_TARGET_RATE=$((7000 / OSTCOUNT)) # ops/sec
# Local test variables
TESTDIR_SINGLE="${TESTDIR}/single"
TESTDIR_MULTI="${TESTDIR}/multi"
LOG=${TESTSUITELOG:-$TMP/$(basename $0 .sh).log}
CLIENT=$SINGLECLIENT
NODES_TO_USE=${NODES_TO_USE:-$CLIENTS}
NUM_CLIENTS=$(get_node_count ${NODES_TO_USE//,/ })
[ ! -x ${MDSRATE} ] && error "${MDSRATE} not built."
log "===== $0 ====== "
check_and_setup_lustre
generate_machine_file $NODES_TO_USE $MACHINEFILE
$LFS setstripe $TESTDIR -c -1
get_stripe $TESTDIR
# Make sure we start with a clean slate
rm -f ${LOG} PI*
if [ -n "$NOSINGLE" ]; then
echo "NO Test for creates for a single client."
else
log "===== $0 ### 1 NODE CREATE ###"
echo "Running creates on 1 node(s)."
COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --create --time ${TIME_PERIOD}
--dir ${TESTDIR_SINGLE} --filefmt 'f%%d'"
echo "+ ${COMMAND}"
$MPIRUN -np 1 -machinefile ${MACHINEFILE} \
${MPIRUN_OPTIONS} ${COMMAND} | tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && cat $LOG
error "mpirun ... mdsrate ... failed, aborting"
fi
check_rate create ${SINGLE_TARGET_RATE} 1 ${LOG} || true
log "===== $0 ### 1 NODE UNLINK ###"
echo "Running unlinks on 1 node(s)."
let NUM_FILES=${SINGLE_TARGET_RATE}\*${TIME_PERIOD}
COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --unlink --time ${TIME_PERIOD}
--nfiles ${NUM_FILES} --dir ${TESTDIR_SINGLE} --filefmt 'f%%d'"
echo "+ ${COMMAND}"
$MPIRUN -np 1 -machinefile ${MACHINEFILE} \
${MPIRUN_OPTIONS} ${COMMAND} | tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && cat $LOG
error "mpirun ... mdsrate ... failed, aborting"
fi
check_rate unlink ${SINGLE_TARGET_RATE} 1 ${LOG} || true
fi
if [ -n "$NOMULTI" ]; then
echo "NO test for create on multiple nodes."
else
log "===== $0 ### $NUM_CLIENTS NODES CREATE ###"
echo "Running creates on ${NUM_CLIENTS} node(s)."
COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --create --time ${TIME_PERIOD}
--dir ${TESTDIR_MULTI} --filefmt 'f%%d'"
echo "+ ${COMMAND}"
$MPIRUN -np ${NUM_CLIENTS} -machinefile ${MACHINEFILE} \
${MPIRUN_OPTIONS} ${COMMAND} | tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && cat $LOG
error "mpirun ... mdsrate ... failed, aborting"
fi
check_rate create ${AGGREGATE_TARGET_RATE} ${NUM_CLIENTS} ${LOG} || true
echo "Running unlinks on ${NUM_CLIENTS} node(s)."
let NUM_FILES=${AGGREGATE_TARGET_RATE}\*${TIME_PERIOD}
COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --unlink --time ${TIME_PERIOD}
--nfiles ${NUM_FILES} --dir ${TESTDIR_MULTI} --filefmt 'f%%d'"
echo "+ ${COMMAND}"
$MPIRUN -np ${NUM_CLIENTS} -machinefile ${MACHINEFILE} \
${MPIRUN_OPTIONS} ${COMMAND} | tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && cat $LOG
error "mpirun ... mdsrate ... failed, aborting"
fi
check_rate unlink ${AGGREGATE_TARGET_RATE} ${NUM_CLIENTS} ${LOG} || true
fi
equals_msg `basename $0`: test complete, cleaning up
zconf_umount_clients $NODES_TO_USE $MOUNT
check_and_cleanup_lustre
#rm -f $LOG
exit 0