#!/bin/bash export PATH=$PATH:/opt/sysbench/bin DEV="/dev/sdc1" DIR="/var/lib/mysql" CURRENT=$PWD MEMTOTAL=$(awk '/^MemTotal:/ { print $2" "$3 }' /proc/meminfo) function retry_umount { typeset dev="$1" if grep "^$dev" /proc/mounts then echo umount $dev while ! umount $dev do echo "Retry..." sleep 5 echo umount $dev done fi } # TEST service mysqld stop retry_umount $DEV if df | grep $DEV then echo "ERROR: $DEV in use" 1>&2 exit 1 fi #"ext2 nobhbar" \ for filesystem in \ "ext2 defaults" \ "ext3 data=ordered" \ "ext3 data=ordered,extents" \ "ext3 data=ordered,mballoc,extents" \ "ext3 data=ordered,mballoc,delalloc,extents" \ "ext3 data=writeback" \ "ext3 data=writeback,extents" \ "ext3 data=writeback,mballoc,extents" \ "ext3 data=writeback,mballoc,delalloc,extents" \ "reiserfs defaults" \ "xfs defaults" \ "jfs defaults" do FS=${filesystem%% *} OPT=${filesystem##* } LOGFILE="${CURRENT}/${FS}_${OPT}" rm -f "$LOGFILE" if [ "$FS" = "jfs" ] then CMD="mkfs -t $FS -q -L jfs_volume $DEV" elif [ "$FS" = "xfs" ] then CMD="mkfs -t $FS -f $DEV" elif [ "$FS" = "reiserfs" ] then CMD="mkfs -t $FS -f $DEV" else CMD="mkfs -t $FS $DEV" fi 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 ########################################################### chmod 0755 $DIR chown mysql:mysql $DIR mysql_install_db service mysqld start mysqladmin create sbtest #iostat -x 5 > iostat_${FS}_${OPT}& #XT1=$! #vmstat 5 > vmstat_${FS}_${OPT}& #XT2=$! sysbench --test=oltp --oltp-table-size=200000 --mysql-user=root prepare sysbench --num-threads=16 --max-requests=2000000 --test=oltp --mysql-user=root run | tee ${FS}_${OPT} sysbench --test=oltp --mysql-user=root cleanup #kill $XT1 $XT2 service mysqld stop ########################################################### retry_umount $DEV done