#!/bin/bash # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # sysbench burnin - a wrapper shell script # by randymelder@gmail.com # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # mysql settings USER=sbtest PASS=sbtest HOST=localhost DB=test SOCKET=/var/lib/mysql/mysql.sock # number of test threads to run THREADS=4 # number of rows to insert in test table ROWS=1000000 # number of times to perform all tests ITERATIONS=8 # # # # # # # # # # DO NOT EDIT BELOW THIS LINE # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # function doPrepare { sysbench --test=oltp \ --oltp-table-size=$ROWS \ --mysql-user=$USER \ --mysql-password=$PASS \ --mysql-db=$DB \ --mysql-host=$HOST \ --mysql-socket=$SOCKET \ prepare } function doRun { sysbench --test=oltp \ --oltp-table-size=$ROWS \ --num-threads=$THREADS \ --mysql-user=$USER \ --mysql-password=$PASS \ --mysql-db=$DB \ --mysql-host=$HOST \ --mysql-socket=$SOCKET \ run } function doCleanup { sysbench --test=oltp \ --mysql-user=$USER \ --mysql-password=$PASS \ --mysql-db=$DB \ --mysql-host=$HOST \ --mysql-socket=$SOCKET \ cleanup } function doMySQLSetup { echo "Enter your mysql root password: " read -s ROOTPASS SQL="CREATE DATABASE IF NOT EXISTS $DB" mysql -u root -p$ROOTPASS -e "$SQL" SQL="GRANT ALL PRIVILEGES ON $DB.* TO $USER@$HOST IDENTIFIED BY '"$PASS"'" mysql -u root -p$ROOTPASS -e "$SQL" SQL="FLUSH PRIVILEGES" mysql -u root -p$ROOTPASS -e "$SQL" } if [ "$HOST" == "localhost" ]; then # get setup NOW=`date +"%Y%m%dT%H%M%S"` echo "$NOW [normal] Running MySQL setup tasks." doMySQLSetup fi NOW=`date +"%Y%m%dT%H%M%S"` echo "$NOW [normal] Running $ITERATIONS times through test sequences. " # loop the work for i in $ITERATIONS; do # prepare sysbench NOW=`date +"%Y%m%dT%H%M%S"` echo "$NOW [normal] Running sysbench prepare. Creating $ROWS rows. " doPrepare # run sysbench NOW=`date +"%Y%m%dT%H%M%S"` echo "$NOW [normal] Running sysbench run. Running $THREADS threads. " doRun # clean up NOW=`date +"%Y%m%dT%H%M%S"` echo "$NOW [normal] Running sysbench cleanup. " doCleanup done NOW=`date +"%Y%m%dT%H%M%S"` echo "$NOW [normal] Completed execution. " # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # http://randymelder.com/ # Use at your own risk! # Find Sysbench @ http://sysbench.sourceforge.net/ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #