Whamcloud - gitweb
LU-17504 build: fix gcc-13 [-Werror=stringop-overread] error
[fs/lustre-release.git] / lustre / tests / performance-sanity.sh
index f7c2fa8..ba3833a 100644 (file)
@@ -1,4 +1,5 @@
 #!/bin/bash
+
 set -e
 
 TESTNAME=$(basename $0 .sh)
@@ -12,60 +13,82 @@ init_logging
 ALWAYS_EXCEPT="$PERFORMANCE_SANITY_EXCEPT "
 build_test_filter
 
-[ -x "$MDSRATE" ] || FAIL_ON_ERROR=true error "No mdsrate program. Aborting."
-which mpirun > /dev/null 2>&1 ||
-       FAIL_ON_ERROR=true error "No mpirun program. Aborting."
+check_and_setup_lustre
+
+env_verify()
+{
+       [[ -x "$MPIRUN" ]] || skip_env "no mpirun program found"
+       [[ -x "$MDTEST" ]] || skip_env "no mdtest program found"
+       get_mpiuser_id $MPI_USER
+       MPI_RUNAS=${MPI_RUNAS:-"runas -u $MPI_USER_UID -g $MPI_USER_GID"}
+       $GSS_KRB5 && refresh_krb5_tgt $MPI_USER_UID $MPI_USER_GID $MPI_RUNAS
+}
+
+test_1() {
+       env_verify
+       echo "Small files creation performance test"
+       # LU-2600/LU-4108 - Decrease load on zfs
+       if [[ "$SLOW" == no && "$mds1_FSTYPE" == zfs ]]; then
+               NUM_FILES=10000
+       fi
+       run_mdtest create-small
+}
+run_test 1 "small files create/open/delete"
 
-get_mpiuser_id $MPI_USER
-MPI_RUNAS=${MPI_RUNAS:-"runas -u $MPI_USER_UID -g $MPI_USER_GID"}
-$GSS_KRB5 && refresh_krb5_tgt $MPI_USER_UID $MPI_USER_GID $MPI_RUNAS
+test_2() {
+       env_verify
+       echo "Large files creation performance test"
+       run_mdtest create-large
+}
+run_test 2 "large files create/open/delete"
 
-# mdsrate-create-small
 test_3() {
-    echo "File creation performance tests for file objects"
-    bash mdsrate-create-small.sh
+       env_verify
+       NUM_DIRS=1
+       NUM_FILES=200000
+       echo "Single directory lookup rate for $NUM_FILES files"
+       run_mdtest lookup-single
 }
-run_test 3 "small file create/open/delete ======"
+run_test 3 "lookup rate 200k files in single directory"
 
-# mdsrate-create-large
 test_4() {
-       # LU-2600/LU-4108 - Decrease load on zfs
-       [ "$SLOW" = no -a "$mds1_FSTYPE" = zfs ] &&
-               NUM_FILES=10000
-       echo "Large file creation performance"
-       bash mdsrate-create-large.sh
+       env_verify
+       NUM_DIRS=100
+       NUM_FILES=200000
+       echo "Directory lookup rate $NUM_DIRS directories, $((NUM_FILES/NUM_DIRS)) files each"
+       run_mdtest lookup-multi
 }
-run_test 4 "large file create/open/delete"
+run_test 4 "lookup rate 200k files in 100 directories"
 
-# mdsrate-lookup-1dir
 test_5() {
-    echo "Single directory lookup retrieval rate"
-    bash mdsrate-lookup-1dir.sh
+       touch $DIR/$tfile
+       for((i=0; i < 20000; i++)) {
+               echo "W$((i * 10)), 5"
+       } | flocks_test 6 $DIR/$tfile
+       rm -r $DIR/$tfile
 }
-run_test 5 "lookup rate 10M file dir ======"
+run_test 5 "enqueue 20k no overlap flocks on same file"
 
-# mdsrate-lookup-10dir
 test_6() {
-    echo "Directory lookup retrieval rate 10 directories, 1 million files each"
-    bash mdsrate-lookup-10dirs.sh
+       touch $DIR/$tfile
+       for((i=0; i < 20000; i++)) {
+               [ $i -eq 0 ] && echo "W0,99999999" && continue
+               echo "R$((i * 10)), 5"
+       } | flocks_test 6 $DIR/$tfile
+       rm -r $DIR/$tfile
 }
-run_test 6 "lookup rate 10M file 10 dir ======"
+run_test 6 "split a flock 20k times"
 
-# mdsrate-stat-small
 test_7() {
-    echo "File attribute retrieval rate for small file creation"
-    bash mdsrate-stat-small.sh
-}
-run_test 7 "getattr small file ======"
-
-# mdsrate-stat-large
-test_8() {
-    echo "File attribute retrieval rate for large file creation"
-    bash mdsrate-stat-large.sh
+       touch $DIR/$tfile
+       for((i=0; i < 20001; i++)) {
+               echo "R$((i * 10)), 5"
+               [ $i -eq 20000 ] && echo "W0,99999999" && continue
+       } | flocks_test 6 $DIR/$tfile
+       rm -r $DIR/$tfile
 }
-run_test 8 "getattr large files ======"
+run_test 7 "merge 20k flocks"
 
-complete $SECONDS
+complete_test $SECONDS
 check_and_cleanup_lustre
-[ -f "$LOG" ] && cat $LOG || true
 exit_status