LOOPCOUNT=3 WARMUPTIME=180 TESTTIME=60 DBNAME=test TABLENAME=sbtest TABLESIZE=1200000 DIST=uniform ENGINE=falcon TRX=yes #vmstat param SAMPLE_LENGTH=10 ITERATIONS=$(( ($TESTTIME/$SAMPLE_LENGTH) )) ITERATIONSW=$(( ($WARMUPTIME/$SAMPLE_LENGTH) )) RUN_NUMBER=-1 if [ -f ".run_number" ]; then read RUN_NUMBER < .run_number fi if [ $RUN_NUMBER -eq -1 ]; then RUN_NUMBER=0 fi # Update the run number for the next test. RUN_NUMBER=`expr $RUN_NUMBER + 1` echo $RUN_NUMBER > .run_number OUTFILE="results.$RUN_NUMBER.txt" OUTDIR="mpout.$RUN_NUMBER" mkdir $OUTDIR function RunSysBench() { EXECSTRING[1]="--test=oltp --oltp-table-size=$TABLESIZE --init-rng=on --mysql-engine-trx=$TRX \ --oltp-table-name=$TABLENAME \ --oltp-test-mode=complex --oltp-point-selects=1 --oltp-simple-ranges=0 --oltp-sum-ranges=0 \ --oltp-order-ranges=0 --oltp-distinct-ranges=0 --oltp-skip-trx=on --oltp-read-only=on \ --max-requests=0 --num-threads=$THREADS --oltp-dist-type=$DIST --init-rng=on --mysql-db=$DBNAME" EXECSTRING[2]="--test=oltp --oltp-table-size=$TABLESIZE --init-rng=on --mysql-engine-trx=$TRX \ --oltp-table-name=$TABLENAME \ --oltp-test-mode=complex --oltp-point-selects=0 --oltp-simple-ranges=1 --oltp-sum-ranges=0 \ --oltp-order-ranges=0 --oltp-distinct-ranges=0 --oltp-skip-trx=on --oltp-read-only=on \ --max-requests=0 --num-threads=$THREADS --oltp-dist-type=$DIST --init-rng=on --mysql-db=$DBNAME" EXECSTRING[3]="--test=oltp --oltp-table-size=$TABLESIZE --mysql-engine-trx=$TRX \ --oltp-table-name=$TABLENAME \ --oltp-test-mode=complex \ --oltp-read-only=on --oltp-skip-trx=on --oltp-dist-type=$DIST \ --max-requests=0 --num-threads=$THREADS --init-rng=on --mysql-db=$DBNAME" EXECSTRING[4]="--test=oltp --oltp-table-size=$TABLESIZE --mysql-engine-trx=$TRX \ --oltp-table-name=$TABLENAME --oltp-test-mode=nontrx --oltp-nontrx-mode=update_key --max-requests=0 \ --num-threads=$THREADS --oltp-dist-type=$DIST --mysql-db=$DBNAME" EXECSTRING[5]="--test=oltp --oltp-table-size=$TABLESIZE --mysql-engine-trx=$TRX \ --oltp-table-name=$TABLENAME --oltp-test-mode=nontrx --oltp-nontrx-mode=update_nokey --max-requests=0 \ --num-threads=$THREADS --oltp-dist-type=$DIST --mysql-db=$DBNAME" EXECSTRING[6]="--test=oltp --oltp-table-size=$TABLESIZE --mysql-engine-trx=$TRX \ --oltp-table-name=$TABLENAME --oltp-test-mode=nontrx --oltp-nontrx-mode=insert --max-requests=0 \ --num-threads=$THREADS --oltp-auto-inc=on --oltp-dist-type=$DIST --mysql-db=$DBNAME" EXECSTRING[7]="--test=oltp --oltp-table-size=$TABLESIZE --mysql-engine-trx=$TRX \ --oltp-table-name=$TABLENAME \ --oltp-test-mode=complex \ --oltp-read-only=off --oltp-dist-type=$DIST \ --max-requests=0 --num-threads=$THREADS --init-rng=on --mysql-db=$DBNAME" echo ${EXECSTRING[$3]}; ./sysbench ${EXECSTRING[$3]} --max-time=$1 run | tee -a $OUTFILE.$2 } function RunX(){ ITERATIONS=$(( ($TESTTIME/$SAMPLE_LENGTH) )) var0=0 while [ "$var0" -lt $LOOPCOUNT ] do var0=`expr $var0 + 1` echo "==== Run pagesize: $pagesize READONLY: $1 distrib: $2 database: $DBNAME FS:$THREADS ($var0)" | tee -a $OUTFILE.res VMOUTFILE="vmstat.$TNUM.$2.$DBNAME.$THREADS.$var0.txt" vmstat $SAMPLE_LENGTH $ITERATIONS > $OUTDIR/$VMOUTFILE & RunSysBench $TESTTIME res $3 done } function RunWarmup(){ ITERATIONSW=$(( ($WARMUPTIME/$SAMPLE_LENGTH) )) VMOUTFILE="vmstat.warmup.$1.$DBNAME.txt" vmstat $SAMPLE_LENGTH $ITERATIONSW > $OUTDIR/$VMOUTFILE & RunSysBench $WARMUPTIME warmup $3 } function RunExtX(){ ITERATIONS=$(( ($TESTTIME/$SAMPLE_LENGTH) )) var0=0 while [ "$var0" -lt $LOOPCOUNT ] do var0=`expr $var0 + 1` echo "==== run $TNUM: $1 Threads:$THREADS ($var0)" | tee -a $OUTFILE.res VMOUTFILE="vmstat.$TNUM.$2.$THREADS.$var0.txt" vmstat $SAMPLE_LENGTH $ITERATIONS > $OUTDIR/$VMOUTFILE & RunExtBench $TESTTIME res $1 done } function RunExtWarmup(){ ITERATIONSW=$(( ($WARMUPTIME/$SAMPLE_LENGTH) )) VMOUTFILE="vmstat.warmup.$1.txt" vmstat $SAMPLE_LENGTH $ITERATIONSW > $OUTDIR/$VMOUTFILE & RunExtBench $WARMUPTIME warmup $1 } function RunExtBench() { EXECSTRING="--rand-type=$DIST --oltp-table-size=$TABLESIZE --init-rng=on --mysql-engine-trx=$TRX \ --subtest=$3 --test=/home/zaitsev/benchmarks/bench/phptest.lua --oltp-table-name=$TABLENAME \ --max-requests=0 --num-threads=$THREADS --mysql-db=$DBNAME" echo $EXECSTRING; T1=`date +%s` T2=`date +%s` DIFF=$(( $T2-$T1 )) while [ "$DIFF" -lt "$1" ] do T1=`date +%s` ./sysbench $EXECSTRING --max-time=$1 run 2>&1 | tee -a $OUTFILE.$2 T2=`date +%s` DIFF=$(( $T2-$T1+10 )) if [ "$DIFF" -lt "$1" ] then echo "Crash detected" fi done } TESTS="READ_PK_POINT \ READ_KEY_POINT \ READ_KEY_POINT_NO_DATA \ READ_KEY_POINT_LIMIT \ READ_KEY_POINT_NO_DATA_LIMIT \ READ_PK_POINT_INDEX \ READ_PK_RANGE \ READ_PK_RANGE_INDEX \ READ_KEY_RANGE \ READ_KEY_RANGE_LIMIT \ READ_KEY_RANGE_NO_DATA \ READ_KEY_RANGE_NO_DATA_LIMIT \ READ_FTS" #TESTS="READ_PK_POINT" for TNUM in $TESTS # for TNUM in do for THREADS in 1 4 16 64 128 #256 512 # for THREADS in 64 128 256 512 # for THREADS in do # /benchmarks/ext3/mysql/bin/mysql sbtest -e "TRUNCATE TABLE sbtest" RunExtWarmup $TNUM RunExtX $TNUM done done