#!/bin/bash NB_LEVEL="$1" run() { typeset LINEID="$1" typeset LOGFILE="$2" typeset CMD="$3" echo "$CMD" # LINEID: tag to identify the test # %e: Elapsed real time (in seconds) # %S: Total number of CPU-seconds that the process spent in kernel mode /usr/bin/time -o "$LOGFILE" -a -f "$LINEID %e %S" $CMD } DEV="/dev/sdc1" DIR="/mnt/test" PWD=`pwd` freemem=$( awk '/MemFree/ {print $2} ' /proc/meminfo ) filename="Lowmemfile" CURRENT=$PWD umount $DEV if df | grep $DEV then echo "ERROR: $DEV in use" 1>&2 exit 1 fi # memory stress freemem=`expr $freemem \* 1024` ./LowMemory -F $filename -M $freemem # here starts the test for filesystem in \ "ext3 data=ordered" \ "ext3 data=writeback" \ "ext3 data=ordered,extents" \ "ext3 data=ordered,mballoc,extents" \ "ext3 data=ordered,mballoc,delalloc,extents" \ "ext3 data=writeback,extents" \ "ext3 data=writeback,mballoc,extents" \ "ext3 data=writeback,mballoc,delalloc,extents" do FS=${filesystem%% *} OPT=${filesystem##* } LOGFILE="${CURRENT}/${FS}_${OPT}" rm -f "$LOGFILE" CMD="mkfs -t $FS $DEV" echo $CMD if ! $CMD > /dev/null then echo "Failed !" exit 1 fi echo mount -t $FS -o $OPT $DEV $DIR if ! mount -t $FS -o $OPT $DEV $DIR then echo "Failed !" exit 1 fi # large files # write 10 files of 100MB on each directory run "write_large_files" "$LOGFILE" "$PWD/rectree_create.sh 0 $NB_LEVEL $DIR 10 100000000" run "large_files_deletion" "$LOGFILE" "$PWD/rectree_delete.sh 0 $NB_LEVEL $DIR 10" # large number of files # write 1000 files of 10MB on each directory run "write_large_number_of_files" "$LOGFILE" "$PWD/rectree_create.sh 0 $NB_LEVEL $DIR 1000 10000000" run "large_number_deletion " "$LOGFILE" "$PWD/rectree_delete.sh 0 $NB_LEVEL $DIR 1000" echo umount $DEV while ! umount $DEV do echo "Retry..." sleep 5 echo umount $DEV done done